mirror of https://git.ffmpeg.org/ffmpeg.git
avformat/hlsenc: fix hls_write_trailer() on hls_start() failure
Close segment I/O context and append segment in hls_write_trailer() only when segment I/O context is allocated. Signed-off-by: Christian Suloway <csuloway@globaleagleent.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
402a61c919
commit
92a596f13b
|
@ -449,7 +449,7 @@ static int hls_write_packet(AVFormatContext *s, AVPacket *pkt)
|
|||
av_opt_set(hls->avf->priv_data, "mpegts_flags", "resend_headers", 0);
|
||||
hls->number++;
|
||||
} else {
|
||||
avio_close(oc->pb);
|
||||
avio_closep(&oc->pb);
|
||||
|
||||
ret = hls_start(s);
|
||||
}
|
||||
|
@ -474,10 +474,12 @@ static int hls_write_trailer(struct AVFormatContext *s)
|
|||
AVFormatContext *oc = hls->avf;
|
||||
|
||||
av_write_trailer(oc);
|
||||
hls->size = avio_tell(hls->avf->pb) - hls->start_pos;
|
||||
avio_closep(&oc->pb);
|
||||
if (oc->pb) {
|
||||
hls->size = avio_tell(hls->avf->pb) - hls->start_pos;
|
||||
avio_closep(&oc->pb);
|
||||
hls_append_segment(hls, hls->duration, hls->start_pos, hls->size);
|
||||
}
|
||||
av_free(hls->basename);
|
||||
hls_append_segment(hls, hls->duration, hls->start_pos, hls->size);
|
||||
avformat_free_context(oc);
|
||||
hls->avf = NULL;
|
||||
hls_window(s, 1);
|
||||
|
|
Loading…
Reference in New Issue