[FFmpeg-cvslog] avformat/ffmenc: set bitexact mode for old API without accessing the encoder

Michael Niedermayer git at videolan.org
Fri Dec 2 20:42:07 EET 2016


ffmpeg | branch: master | Michael Niedermayer <michael at niedermayer.cc> | Thu Dec  1 16:58:37 2016 +0100| [e8215b77ff46aac12e9545153946ad306a18521c] | committer: Michael Niedermayer

avformat/ffmenc: set bitexact mode for old API without accessing the encoder

Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e8215b77ff46aac12e9545153946ad306a18521c
---

 libavformat/ffmenc.c | 12 +++++++++++-
 tests/ref/lavf/ffm   |  2 +-
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/libavformat/ffmenc.c b/libavformat/ffmenc.c
index 221f0a2..7ed4320 100644
--- a/libavformat/ffmenc.c
+++ b/libavformat/ffmenc.c
@@ -223,6 +223,7 @@ static int ffm_write_header(AVFormatContext *s)
 
     /* list of streams */
     for(i=0;i<s->nb_streams;i++) {
+        int flags = 0;
         st = s->streams[i];
         avpriv_set_pts_info(st, 64, 1, 1000000);
         if(avio_open_dyn_buf(&pb) < 0)
@@ -234,7 +235,16 @@ static int ffm_write_header(AVFormatContext *s)
         avio_wb32(pb, codecpar->codec_id);
         avio_w8(pb, codecpar->codec_type);
         avio_wb32(pb, codecpar->bit_rate);
-        avio_wb32(pb, codecpar->extradata_size ? AV_CODEC_FLAG_GLOBAL_HEADER : 0);
+        if (codecpar->extradata_size)
+            flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
+
+        // If the user is not providing us with a configuration we have to fill it in as we cannot access the encoder
+        if (!st->recommended_encoder_configuration) {
+            if (s->flags & AVFMT_FLAG_BITEXACT)
+                flags |= AV_CODEC_FLAG_BITEXACT;
+        }
+
+        avio_wb32(pb, flags);
         avio_wb32(pb, 0); // flags2
         avio_wb32(pb, 0); // debug
         if (codecpar->extradata_size) {
diff --git a/tests/ref/lavf/ffm b/tests/ref/lavf/ffm
index 9d9d07f..7a51d9b 100644
--- a/tests/ref/lavf/ffm
+++ b/tests/ref/lavf/ffm
@@ -1,3 +1,3 @@
-15a9929d1cb7129dcaffeccf3cb2fda9 *./tests/data/lavf/lavf.ffm
+03f2673a39a9494157eb4be9af537f84 *./tests/data/lavf/lavf.ffm
 376832 ./tests/data/lavf/lavf.ffm
 ./tests/data/lavf/lavf.ffm CRC=0x000e23ae



More information about the ffmpeg-cvslog mailing list