]> git.sesse.net Git - ffmpeg/commitdiff
DFA: fix "skip frame" TSW1 encoding.
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sun, 22 Jan 2012 11:41:12 +0000 (12:41 +0100)
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sat, 28 Jan 2012 20:59:01 +0000 (21:59 +0100)
Previously the decoder would raise an error.
The end result is the same, the time stamps only change
because regression tests create time stamps incorrectly.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
libavcodec/dfa.c
tests/ref/fate/dfa4

index bce6260bf3005056397c3409b3e7e241a0e4f432..97c0954422c8033d2c2e9dc756096bff92f9c028 100644 (file)
@@ -67,6 +67,8 @@ static int decode_tsw1(uint8_t *frame, int width, int height,
 
     segments = bytestream_get_le32(&src);
     offset   = bytestream_get_le32(&src);
+    if (segments == 0 && offset == frame_end - frame)
+        return 0; // skip frame
     if (frame_end - frame <= offset)
         return -1;
     frame += offset;
index fbf00b658ce31b73cc26fbaeae8e87ed94b3bcb9..b6d5ed9053644e4c31674b8400270d77b0dbed25 100644 (file)
@@ -1,13 +1,14 @@
-0, 0, 921600, 0xd9e060e3
-0, 12780, 921600, 0x15e28dc7
-0, 25560, 921600, 0x78e8bfbc
-0, 38340, 921600, 0xe9407075
-0, 51120, 921600, 0xab818b8a
+0, 0, 921600, 0x00000000
+0, 12780, 921600, 0xd9e060e3
+0, 25560, 921600, 0x15e28dc7
+0, 38340, 921600, 0x78e8bfbc
+0, 51120, 921600, 0xe9407075
 0, 63900, 921600, 0xab818b8a
 0, 76680, 921600, 0xab818b8a
 0, 89460, 921600, 0xab818b8a
 0, 102240, 921600, 0xab818b8a
 0, 115020, 921600, 0xab818b8a
-0, 127800, 921600, 0xad5ad11c
-0, 140580, 921600, 0xe6e50f8c
-0, 153360, 921600, 0x9f127099
+0, 127800, 921600, 0xab818b8a
+0, 140580, 921600, 0xad5ad11c
+0, 153360, 921600, 0xe6e50f8c
+0, 166140, 921600, 0x9f127099