[FFmpeg-cvslog] DFA: fix "skip frame" TSW1 encoding.

Reimar Döffinger git at videolan.org
Sat Jan 28 22:01:29 CET 2012


ffmpeg | branch: master | Reimar Döffinger <Reimar.Doeffinger at gmx.de> | Sun Jan 22 12:41:12 2012 +0100| [0b378e8aa99e24f5d1b128abaaf1572542ce86f1] | committer: Reimar Döffinger

DFA: fix "skip frame" TSW1 encoding.

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 at gmx.de>

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

 libavcodec/dfa.c    |    2 ++
 tests/ref/fate/dfa4 |   17 +++++++++--------
 2 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/libavcodec/dfa.c b/libavcodec/dfa.c
index bce6260..97c0954 100644
--- a/libavcodec/dfa.c
+++ b/libavcodec/dfa.c
@@ -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;
diff --git a/tests/ref/fate/dfa4 b/tests/ref/fate/dfa4
index fbf00b6..b6d5ed9 100644
--- a/tests/ref/fate/dfa4
+++ b/tests/ref/fate/dfa4
@@ -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



More information about the ffmpeg-cvslog mailing list