From 4e3cc4bdd8acedbcc703607ed0efbb64bb5c3cc4 Mon Sep 17 00:00:00 2001 From: Steven Liu Date: Tue, 14 Mar 2017 18:11:20 +0800 Subject: [PATCH] avformat/flvenc: flx flvflags no_metadata bug When use flvflags no_metadata , the FLV header will be cover by write tailer This commit fix the bug Signed-off-by: Steven Liu --- libavformat/flvenc.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/libavformat/flvenc.c b/libavformat/flvenc.c index d7506c56fb..899b07ea7b 100644 --- a/libavformat/flvenc.c +++ b/libavformat/flvenc.c @@ -848,20 +848,22 @@ end: avio_seek(pb, flv->datasize_offset, SEEK_SET); put_amf_double(pb, flv->datasize); } - if (!(flv->flags & FLV_NO_DURATION_FILESIZE)) { - /* update information */ - if (avio_seek(pb, flv->duration_offset, SEEK_SET) < 0) { - av_log(s, AV_LOG_WARNING, "Failed to update header with correct duration.\n"); - } else { - put_amf_double(pb, flv->duration / (double)1000); - } - if (avio_seek(pb, flv->filesize_offset, SEEK_SET) < 0) { - av_log(s, AV_LOG_WARNING, "Failed to update header with correct filesize.\n"); - } else { - put_amf_double(pb, file_size); + if (!(flv->flags & FLV_NO_METADATA)) { + if (!(flv->flags & FLV_NO_DURATION_FILESIZE)) { + /* update information */ + if (avio_seek(pb, flv->duration_offset, SEEK_SET) < 0) { + av_log(s, AV_LOG_WARNING, "Failed to update header with correct duration.\n"); + } else { + put_amf_double(pb, flv->duration / (double)1000); + } + if (avio_seek(pb, flv->filesize_offset, SEEK_SET) < 0) { + av_log(s, AV_LOG_WARNING, "Failed to update header with correct filesize.\n"); + } else { + put_amf_double(pb, file_size); + } } } - avio_seek(pb, file_size, SEEK_SET); + return 0; }