[FFmpeg-cvslog] cdg: skip packets that don't contain a cdg command.

Justin Ruggles git at videolan.org
Thu Nov 24 03:38:33 CET 2011


ffmpeg | branch: master | Justin Ruggles <justin.ruggles at gmail.com> | Mon Nov 21 21:14:42 2011 +0100| [5872c781222d5f61b69a511ea6b024d4cab0aaf6] | committer: Anton Khirnov

cdg: skip packets that don't contain a cdg command.

Signed-off-by: Anton Khirnov <anton at khirnov.net>

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

 libavformat/cdg.c         |    9 ++++-
 tests/ref/fate/cdgraphics |   88 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 96 insertions(+), 1 deletions(-)

diff --git a/libavformat/cdg.c b/libavformat/cdg.c
index b60ea37..b6caa51 100644
--- a/libavformat/cdg.c
+++ b/libavformat/cdg.c
@@ -22,6 +22,8 @@
 #include "avformat.h"
 
 #define CDG_PACKET_SIZE    24
+#define CDG_COMMAND        0x09
+#define CDG_MASK           0x3F
 
 static int read_header(AVFormatContext *s, AVFormatParameters *ap)
 {
@@ -49,7 +51,12 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt)
 {
     int ret;
 
-    ret = av_get_packet(s->pb, pkt, CDG_PACKET_SIZE);
+    while (1) {
+        ret = av_get_packet(s->pb, pkt, CDG_PACKET_SIZE);
+        if (ret < 1 || (pkt->data[0] & CDG_MASK) == CDG_COMMAND)
+            break;
+        av_free_packet(pkt);
+    }
 
     pkt->stream_index = 0;
     return ret;
diff --git a/tests/ref/fate/cdgraphics b/tests/ref/fate/cdgraphics
index 17489de..10873fd 100644
--- a/tests/ref/fate/cdgraphics
+++ b/tests/ref/fate/cdgraphics
@@ -210,3 +210,91 @@
 0, 62700, 194400, 0x1b75a275
 0, 63000, 194400, 0xedd1a572
 0, 63300, 194400, 0x55daad6a
+0, 63600, 194400, 0xcb93b067
+0, 63900, 194400, 0x5888ba5d
+0, 64200, 194400, 0x2c11c84f
+0, 64500, 194400, 0x0fbae334
+0, 64800, 194400, 0x773fed2a
+0, 65100, 194400, 0x2f87fc1b
+0, 65400, 194400, 0xe8120521
+0, 65700, 194400, 0x64ac0f17
+0, 66000, 194400, 0xba531c0a
+0, 66300, 194400, 0xf49433f2
+0, 66600, 194400, 0x79e234f1
+0, 66900, 194400, 0x043937ee
+0, 67200, 194400, 0x9e6141e4
+0, 67500, 194400, 0x34204fd6
+0, 67800, 194400, 0xa1dd60c5
+0, 68100, 194400, 0x12b36eb7
+0, 68400, 194400, 0x68987aab
+0, 68700, 194400, 0x3207889d
+0, 69000, 194400, 0x3bb59194
+0, 69300, 194400, 0x0a119f86
+0, 69600, 194400, 0x472bab7a
+0, 69900, 194400, 0x7364c85d
+0, 70200, 194400, 0xa812d84d
+0, 70500, 194400, 0xf384f530
+0, 70800, 194400, 0x1546052f
+0, 71100, 194400, 0xeb611a1a
+0, 71400, 194400, 0xc39d250f
+0, 71700, 194400, 0x7bd73301
+0, 72000, 194400, 0x10f73cf7
+0, 72300, 194400, 0x95dc55de
+0, 72600, 194400, 0x392e61d2
+0, 72900, 194400, 0x113c7bb8
+0, 73200, 194400, 0x17128fa4
+0, 73500, 194400, 0xf95e9b98
+0, 73800, 194400, 0xdc47aa89
+0, 74100, 194400, 0xea5dc073
+0, 74400, 194400, 0x8dfadc57
+0, 74700, 194400, 0xe5c3e84b
+0, 75000, 194400, 0x8952f43f
+0, 75300, 194400, 0xec9e0240
+0, 75600, 194400, 0x8f460c36
+0, 75900, 194400, 0xd43e182a
+0, 76200, 194400, 0xb00b2919
+0, 76500, 194400, 0xc9f6350d
+0, 76800, 194400, 0x87ca44fd
+0, 77100, 194400, 0xa6a250f1
+0, 77400, 194400, 0x34fa60e1
+0, 77700, 194400, 0xe1a372cf
+0, 78000, 194400, 0xc80785bc
+0, 78300, 194400, 0x43e297aa
+0, 78600, 194400, 0x7e8ea49d
+0, 78900, 194400, 0xd009b091
+0, 79200, 194400, 0x9126bc85
+0, 79500, 194400, 0x175ad36e
+0, 79800, 194400, 0xf9dae160
+0, 80100, 194400, 0x1b98f948
+0, 80400, 194400, 0xa6c5133d
+0, 80700, 194400, 0xf5d42729
+0, 81000, 194400, 0x8cfe311f
+0, 81300, 194400, 0x18733e12
+0, 81600, 194400, 0x24ac50ff
+0, 81900, 194400, 0x0d1c64eb
+0, 82200, 194400, 0xde947cd3
+0, 82500, 194400, 0x08268dc2
+0, 82800, 194400, 0xfec69fb0
+0, 83100, 194400, 0xba83aba4
+0, 83400, 194400, 0xfbe2bc93
+0, 83700, 194400, 0xe22fcc83
+0, 84000, 194400, 0x050fcf80
+0, 84300, 194400, 0xee1ed778
+0, 84600, 194400, 0xb44cda75
+0, 84900, 194400, 0xa29fe46b
+0, 85200, 194400, 0xa99bf55a
+0, 85500, 194400, 0x4f840d51
+0, 85800, 194400, 0x58941945
+0, 86100, 194400, 0x62cb2638
+0, 86400, 194400, 0x22ee312d
+0, 86700, 194400, 0xea8f3925
+0, 87000, 194400, 0xed294c12
+0, 87300, 194400, 0xafa75e00
+0, 87600, 194400, 0x19d45ffe
+0, 87900, 194400, 0x7fcf61fc
+0, 88200, 194400, 0x2c126df0
+0, 88500, 194400, 0x331379e4
+0, 88800, 194400, 0x99fe8cd1
+0, 89100, 194400, 0xa5ec98c5
+0, 89400, 194400, 0xac68a6b7
+0, 89700, 194400, 0x28e6b2ab



More information about the ffmpeg-cvslog mailing list