[FFmpeg-cvslog] Merge commit 'a79aafd0b4d37eda6f15dc68e6509d4e815290c9'

Matthieu Bouron git at videolan.org
Thu Jun 23 22:30:14 CEST 2016


ffmpeg | branch: master | Matthieu Bouron <matthieu.bouron at stupeflix.com> | Thu Jun 23 22:20:10 2016 +0200| [c60d328e676770596c40931567feee8efc7ef670] | committer: Matthieu Bouron

Merge commit 'a79aafd0b4d37eda6f15dc68e6509d4e815290c9'

* commit 'a79aafd0b4d37eda6f15dc68e6509d4e815290c9':
  movenc: Add a test for VFR with b-frames, with a duration change at a fragment end

Merged-by: Matthieu Bouron <matthieu.bouron at stupeflix.com>

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

 libavformat/tests/movenc.c |   35 ++++++++++++++++++++++++++++++++++-
 tests/ref/fate/movenc      |    8 ++++++++
 2 files changed, 42 insertions(+), 1 deletion(-)

diff --git a/libavformat/tests/movenc.c b/libavformat/tests/movenc.c
index e994912..41cd4fc 100644
--- a/libavformat/tests/movenc.c
+++ b/libavformat/tests/movenc.c
@@ -70,6 +70,8 @@ int skip_write;
 int skip_write_audio;
 int clear_duration;
 int force_iobuf_size;
+int do_interleave;
+int fake_pkt_duration;
 
 int num_warnings;
 
@@ -283,6 +285,8 @@ static void mux_frames(int n)
             }
             if (!bframes)
                 pkt.pts = pkt.dts;
+            if (fake_pkt_duration)
+                pkt.duration = fake_pkt_duration;
             frames++;
         }
 
@@ -295,7 +299,10 @@ static void mux_frames(int n)
             continue;
         if (skip_write_audio && pkt.stream_index == 1)
             continue;
-        av_write_frame(ctx, &pkt);
+        if (do_interleave)
+            av_interleaved_write_frame(ctx, &pkt);
+        else
+            av_write_frame(ctx, &pkt);
     }
 }
 
@@ -713,6 +720,32 @@ int main(int argc, char **argv)
     close_out();
     force_iobuf_size = 0;
 
+    // Test VFR content with bframes with interleaving.
+    // Here, using av_interleaved_write_frame allows the muxer to get the
+    // fragment end durations right. We always set the packet duration to
+    // the expected, but we simulate dropped frames at one point.
+    do_interleave = 1;
+    init_out("vfr-noduration-interleave");
+    av_dict_set(&opts, "movflags", "frag_keyframe+delay_moov", 0);
+    av_dict_set(&opts, "frag_duration", "650000", 0);
+    init_fps(1, 1, 30);
+    mux_frames(gop_size/2);
+    // Pretend that the packet duration is the normal, even if
+    // we actually skip a bunch of frames. (I.e., simulate that
+    // we don't know of the framedrop in advance.)
+    fake_pkt_duration = duration;
+    duration *= 10;
+    mux_frames(1);
+    fake_pkt_duration = 0;
+    duration /= 10;
+    mux_frames(gop_size/2 - 1);
+    mux_gops(1);
+    finish();
+    close_out();
+    clear_duration = 0;
+    do_interleave = 0;
+
+
     av_free(md5);
 
     return check_faults > 0 ? 1 : 0;
diff --git a/tests/ref/fate/movenc b/tests/ref/fate/movenc
index 003b7a7..d3a86bc 100644
--- a/tests/ref/fate/movenc
+++ b/tests/ref/fate/movenc
@@ -127,3 +127,11 @@ write_data len 1500, time nopts, type unknown atom -
 write_data len 1004, time nopts, type unknown atom -
 write_data len 148, time nopts, type trailer atom -
 3c2c3f98c8a047f0ecefff07570fd457 9299 large_frag
+write_data len 1231, time nopts, type header atom ftyp
+write_data len 684, time -33333, type sync atom moof
+write_data len 504, time 800000, type boundary atom moof
+write_data len 420, time 1266667, type boundary atom moof
+write_data len 668, time 1566667, type sync atom moof
+write_data len 440, time 2233333, type boundary atom moof
+write_data len 262, time nopts, type trailer atom -
+edd19deae2b70afcf2cd744b89b7013d 4209 vfr-noduration-interleave


======================================================================

diff --cc tests/ref/fate/movenc
index 003b7a7,a0a1700..d3a86bc
--- a/tests/ref/fate/movenc
+++ b/tests/ref/fate/movenc
@@@ -1,129 -1,135 +1,137 @@@
  write_data len 36, time nopts, type header atom ftyp
 -write_data len 1807, time nopts, type header atom -
 -write_data len 496, time 1000000, type sync atom moof
 +write_data len 2335, time nopts, type header atom -
 +write_data len 788, time 1000000, type sync atom moof
  write_data len 110, time nopts, type trailer atom -
 -07cee26b35b140ae50268c3083e2d880 2449 non-empty-moov
 +214242e9c7c93171d2f47f5b47776559 3269 non-empty-moov
  write_data len 36, time nopts, type header atom ftyp
 -write_data len 2135, time nopts, type header atom -
 -write_data len 616, time 966667, type sync atom moof
 +write_data len 2667, time nopts, type header atom -
 +write_data len 908, time 966667, type sync atom moof
  write_data len 110, time nopts, type trailer atom -
 -c3c47c2c9566cb410e0832c37f4f8527 2897 non-empty-moov-elst
 +44467d568a3cc38d414fd8ed4b2a968f 3721 non-empty-moov-elst
  write_data len 36, time nopts, type header atom ftyp
 -write_data len 2055, time nopts, type header atom -
 -write_data len 616, time 1000000, type sync atom moof
 +write_data len 2575, time nopts, type header atom -
 +write_data len 908, time 1000000, type sync atom moof
  write_data len 110, time nopts, type trailer atom -
 -abc910edf1fc2a205658353dfdfc9a5f 2817 non-empty-moov-no-elst
 +de22b98a3885f9b4b83cdd48ff46aeb9 3629 non-empty-moov-no-elst
  write_data len 20, time nopts, type header atom ftyp
 -write_data len 1195, time nopts, type header atom -
 -write_data len 608, time 0, type sync atom moof
 -write_data len 652, time nopts, type unknown atom -
 -write_data len 608, time 1013106, type sync atom moof
 -write_data len 640, time nopts, type unknown atom -
 +write_data len 1171, time nopts, type header atom -
 +write_data len 728, time 0, type sync atom moof
 +write_data len 828, time nopts, type unknown atom -
 +write_data len 728, time 1013106, type sync atom moof
 +write_data len 812, time nopts, type unknown atom -
  write_data len 148, time nopts, type trailer atom -
 -e8e0346bf20bfcb448695bd905946f78 3871 ismv
 +1f37c1a8e01651e8bebcd66f00b6a226 4435 ismv
  write_data len 36, time nopts, type header atom ftyp
 -write_data len 1147, time nopts, type header atom -
 -write_data len 500, time 0, type sync atom moof
 -write_data len 496, time 1000000, type sync atom moof
 +write_data len 1123, time nopts, type header atom -
 +write_data len 796, time 0, type sync atom moof
 +write_data len 788, time 1000000, type sync atom moof
  write_data len 148, time nopts, type trailer atom -
 -89ea214e1d1079556164664eea9a7884 2327 empty-moov
 +ed8506ebfce4c41732205ae26a4759fd 2891 empty-moov
  write_data len 36, time nopts, type header atom ftyp
 -write_data len 1147, time nopts, type header atom -
 -write_data len 780, time 0, type sync atom moof
 -write_data len 616, time 1000000, type sync atom moof
 +write_data len 1123, time nopts, type header atom -
 +write_data len 1068, time 0, type sync atom moof
 +write_data len 908, time 1000000, type sync atom moof
  write_data len 148, time nopts, type trailer atom -
 -cf9eec38fe557203a37a44c8adafb1fe 2727 empty-moov-no-elst
 +1844ee6d19fd1e6daf2655632cf26310 3283 empty-moov-no-elst
  write_data len 36, time nopts, type header atom ftyp
 -write_data len 1147, time nopts, type header atom -
 -write_data len 612, time -33333, type sync atom moof
 -write_data len 616, time 966667, type sync atom moof
 +write_data len 1123, time nopts, type header atom -
 +write_data len 900, time -33333, type sync atom moof
 +write_data len 908, time 966667, type sync atom moof
  write_data len 148, time nopts, type trailer atom -
 -42eca5843d98aa9a9b3275de201700b8 2559 empty-moov-no-elst-no-adjust
 -write_data len 1183, time nopts, type header atom ftyp
 -write_data len 500, time 0, type sync atom moof
 -write_data len 496, time 1000000, type sync atom moof
 +139b27dbe2a80c2dc088d0c755f26033 3115 empty-moov-no-elst-no-adjust
 +write_data len 1159, time nopts, type header atom ftyp
 +write_data len 796, time 0, type sync atom moof
 +write_data len 788, time 1000000, type sync atom moof
  write_data len 148, time nopts, type trailer atom -
 -89ea214e1d1079556164664eea9a7884 2327 delay-moov
 -write_data len 1255, time nopts, type header atom ftyp
 -write_data len 620, time -33333, type sync atom moof
 -write_data len 616, time 966667, type sync atom moof
 +ed8506ebfce4c41732205ae26a4759fd 2891 delay-moov
 +write_data len 1231, time nopts, type header atom ftyp
 +write_data len 916, time -33333, type sync atom moof
 +write_data len 908, time 966667, type sync atom moof
  write_data len 148, time nopts, type trailer atom -
 -8fd78a5a91d73a735da53ac02f844177 2639 delay-moov-elst
 -write_data len 1183, time nopts, type header atom ftyp
 -write_data len 596, time 0, type sync atom moof
 +3ece148745cd64b4428530a4d1080a2d 3203 delay-moov-elst
 +write_data len 1195, time nopts, type header atom ftyp
 +write_data len 836, time 0, type sync atom moof
  write_data len 67, time nopts, type trailer atom -
 -848d2fe2f27882960b8e10315460bc23 1846 delay-moov-empty-track
 -write_data len 1183, time nopts, type header atom ftyp
 -write_data len 240, time 0, type sync atom moof
 -write_data len 240, time 1000000, type sync atom moof
 +9562946a369e6fb570fb2fd7aa2fe728 2098 delay-moov-empty-track
 +write_data len 1195, time nopts, type header atom ftyp
 +write_data len 360, time 0, type sync atom moof
 +write_data len 360, time 1000000, type sync atom moof
  write_data len 86, time nopts, type trailer atom -
 -cbf60ba66c47b8506c1a724d43f12cdc 1749 delay-moov-empty-track-flush
 +4c7832b81836331c6c37155dc31d95be 2001 delay-moov-empty-track-flush
  write_data len 36, time nopts, type header atom ftyp
 -write_data len 1147, time nopts, type header atom -
 -c0b13fd47ca4c6de13c03155c38c231c 1183 empty-moov-header
 -write_data len 500, time 0, type sync atom moof
 -write_data len 496, time 1000000, type sync atom moof
 -f12baf7c4269695817337192c7069328 996 empty-moov-content
 +write_data len 1123, time nopts, type header atom -
 +b7e3c768b9094ebe2fda44979a7f8985 1159 empty-moov-header
 +write_data len 796, time 0, type sync atom moof
 +write_data len 788, time 1000000, type sync atom moof
 +a0165f4a26a409212b0946e981bdefb9 1584 empty-moov-content
  write_data len 148, time nopts, type trailer atom -
 -write_data len 1183, time nopts, type header atom ftyp
 -c0b13fd47ca4c6de13c03155c38c231c 1183 delay-moov-header
 -write_data len 500, time 0, type sync atom moof
 -write_data len 496, time 1000000, type sync atom moof
 -f12baf7c4269695817337192c7069328 996 delay-moov-content
 +write_data len 1159, time nopts, type header atom ftyp
 +b7e3c768b9094ebe2fda44979a7f8985 1159 delay-moov-header
 +write_data len 796, time 0, type sync atom moof
 +write_data len 788, time 1000000, type sync atom moof
 +a0165f4a26a409212b0946e981bdefb9 1584 delay-moov-content
  write_data len 148, time nopts, type trailer atom -
  write_data len 24, time nopts, type header atom -
 -write_data len 1147, time nopts, type header atom -
 -write_data len 588, time 0, type sync atom sidx
 -write_data len 584, time 1000000, type sync atom sidx
 -76e1081bbab7541eadcaf4b19d37eff6 584 empty-moov-second-frag
 +write_data len 1123, time nopts, type header atom -
 +write_data len 884, time 0, type sync atom sidx
 +write_data len 876, time 1000000, type sync atom sidx
 +272a474cfd2a68cc5f05b426b14a2b7d 876 empty-moov-second-frag
  write_data len 148, time nopts, type trailer atom -
  write_data len 24, time nopts, type header atom -
 -write_data len 1147, time nopts, type header atom -
 -write_data len 584, time 1000000, type sync atom sidx
 -76e1081bbab7541eadcaf4b19d37eff6 584 empty-moov-second-frag-discont
 +write_data len 1123, time nopts, type header atom -
 +write_data len 876, time 1000000, type sync atom sidx
 +272a474cfd2a68cc5f05b426b14a2b7d 876 empty-moov-second-frag-discont
  write_data len 110, time nopts, type trailer atom -
 -write_data len 1171, time nopts, type header atom -
 -write_data len 584, time 1000000, type sync atom sidx
 -76e1081bbab7541eadcaf4b19d37eff6 584 delay-moov-second-frag-discont
 +write_data len 1219, time nopts, type header atom -
 +write_data len 876, time 1000000, type sync atom sidx
 +272a474cfd2a68cc5f05b426b14a2b7d 876 delay-moov-second-frag-discont
  write_data len 110, time nopts, type trailer atom -
 -write_data len 1207, time nopts, type header atom ftyp
 -fdc08ccfb9ca1a7a63a8e82a99e28e83 1207 delay-moov-elst-init
 -write_data len 700, time -33333, type sync atom sidx
 -write_data len 704, time 966667, type sync atom sidx
 -41afdc44b0e376fae49a730afe0c53c2 704 delay-moov-elst-second-frag
 +write_data len 1219, time nopts, type header atom ftyp
 +6ec3698bcc86013e0016e3d47d230363 1219 delay-moov-elst-init
 +write_data len 988, time -33333, type sync atom sidx
 +write_data len 996, time 966667, type sync atom sidx
 +fcae8f40e015b59aabc8d4a99a759ca1 996 delay-moov-elst-second-frag
  write_data len 148, time nopts, type trailer atom -
 -write_data len 1207, time nopts, type header atom ftyp
 -fdc08ccfb9ca1a7a63a8e82a99e28e83 1207 delay-moov-elst-init-discont
 -write_data len 704, time 966667, type sync atom sidx
 -41afdc44b0e376fae49a730afe0c53c2 704 delay-moov-elst-second-frag-discont
 +write_data len 1219, time nopts, type header atom ftyp
 +6ec3698bcc86013e0016e3d47d230363 1219 delay-moov-elst-init-discont
 +write_data len 996, time 966667, type sync atom sidx
 +fcae8f40e015b59aabc8d4a99a759ca1 996 delay-moov-elst-second-frag-discont
  write_data len 110, time nopts, type trailer atom -
 -write_data len 1243, time nopts, type header atom ftyp
 -57c113cd2baf7b231355eee6980fb6b5 1243 delay-moov-elst-signal-init
 -write_data len 708, time -33333, type sync atom sidx
 -write_data len 704, time 966667, type sync atom sidx
 -13b8487a4f004ec9f1db543aee1e5e18 704 delay-moov-elst-signal-second-frag
 +write_data len 1219, time nopts, type header atom ftyp
 +c3681590a292cb9ca19a5a982e530166 1219 delay-moov-elst-signal-init
 +write_data len 1004, time -33333, type sync atom sidx
 +write_data len 996, time 966667, type sync atom sidx
 +aa5462cc0d2144f72154d9c309edb57d 996 delay-moov-elst-signal-second-frag
  write_data len 148, time nopts, type trailer atom -
 -write_data len 1243, time nopts, type header atom ftyp
 -57c113cd2baf7b231355eee6980fb6b5 1243 delay-moov-elst-signal-init-discont
 -write_data len 704, time 966667, type sync atom sidx
 -13b8487a4f004ec9f1db543aee1e5e18 704 delay-moov-elst-signal-second-frag-discont
 +write_data len 1219, time nopts, type header atom ftyp
 +c3681590a292cb9ca19a5a982e530166 1219 delay-moov-elst-signal-init-discont
 +write_data len 996, time 966667, type sync atom sidx
 +aa5462cc0d2144f72154d9c309edb57d 996 delay-moov-elst-signal-second-frag-discont
  write_data len 110, time nopts, type trailer atom -
 -write_data len 1243, time nopts, type header atom ftyp
 -write_data len 1552, time -333333, type sync atom sidx
 -write_data len 704, time 5166667, type sync atom sidx
 +write_data len 1219, time nopts, type header atom ftyp
 +write_data len 2572, time -333333, type sync atom sidx
 +write_data len 996, time 5166667, type sync atom sidx
  write_data len 148, time nopts, type trailer atom -
 -5e676152714f9478b5f74ce67cd7ed60 3647 vfr
 -write_data len 1243, time nopts, type header atom ftyp
 -write_data len 1552, time -333333, type sync atom sidx
 -write_data len 704, time 5166667, type sync atom sidx
 +f12d4a0e054abcc508cc0d28cb320e57 4935 vfr
 +write_data len 1219, time nopts, type header atom ftyp
 +write_data len 2572, time -333333, type sync atom sidx
 +write_data len 996, time 5166667, type sync atom sidx
  write_data len 148, time nopts, type trailer atom -
 -5e676152714f9478b5f74ce67cd7ed60 3647 vfr-noduration
 -write_data len 1255, time nopts, type header atom ftyp
 +f12d4a0e054abcc508cc0d28cb320e57 4935 vfr-noduration
 +write_data len 1231, time nopts, type header atom ftyp
  write_data len 1500, time -333333, type sync atom moof
 -write_data len 620, time nopts, type unknown atom -
 +write_data len 1500, time nopts, type unknown atom -
 +write_data len 916, time nopts, type unknown atom -
  write_data len 1500, time 9666667, type sync atom moof
 -write_data len 664, time nopts, type unknown atom -
 +write_data len 1500, time nopts, type unknown atom -
 +write_data len 1004, time nopts, type unknown atom -
  write_data len 148, time nopts, type trailer atom -
 -03766894d839e5fcb1edb88498d812f7 5687 large_frag
 -write_data len 1255, time nopts, type header atom ftyp
 -write_data len 508, time -33333, type sync atom moof
 -write_data len 372, time 800000, type boundary atom moof
 -write_data len 328, time 1266667, type boundary atom moof
 -write_data len 476, time 1566667, type sync atom moof
 -write_data len 340, time 2233333, type boundary atom moof
 +3c2c3f98c8a047f0ecefff07570fd457 9299 large_frag
++write_data len 1231, time nopts, type header atom ftyp
++write_data len 684, time -33333, type sync atom moof
++write_data len 504, time 800000, type boundary atom moof
++write_data len 420, time 1266667, type boundary atom moof
++write_data len 668, time 1566667, type sync atom moof
++write_data len 440, time 2233333, type boundary atom moof
+ write_data len 262, time nopts, type trailer atom -
 -a4280bdc23af2c4334ec2da3fa946d3a 3541 vfr-noduration-interleave
++edd19deae2b70afcf2cd744b89b7013d 4209 vfr-noduration-interleave



More information about the ffmpeg-cvslog mailing list