Browse Source

demux VC1 in mpegts

Originally committed as revision 7902 to svn://svn.ffmpeg.org/ffmpeg/trunk
Nico Sabbi 18 years ago
parent
commit
cf10ee184f
2 changed files with 7 additions and 1 deletions
  1. 6 1
      libavformat/mpegts.c
  2. 1 0
      libavformat/mpegts.h

+ 6 - 1
libavformat/mpegts.c

@@ -503,6 +503,7 @@ static void pmt_cb(void *opaque, const uint8_t *section, int section_len)
         case STREAM_TYPE_VIDEO_MPEG2:
         case STREAM_TYPE_VIDEO_MPEG2:
         case STREAM_TYPE_VIDEO_MPEG4:
         case STREAM_TYPE_VIDEO_MPEG4:
         case STREAM_TYPE_VIDEO_H264:
         case STREAM_TYPE_VIDEO_H264:
+        case STREAM_TYPE_VIDEO_VC1:
         case STREAM_TYPE_AUDIO_AAC:
         case STREAM_TYPE_AUDIO_AAC:
         case STREAM_TYPE_AUDIO_AC3:
         case STREAM_TYPE_AUDIO_AC3:
         case STREAM_TYPE_AUDIO_DTS:
         case STREAM_TYPE_AUDIO_DTS:
@@ -813,7 +814,7 @@ static void mpegts_push_data(void *opaque,
                     code = pes->header[3] | 0x100;
                     code = pes->header[3] | 0x100;
                     if (!((code >= 0x1c0 && code <= 0x1df) ||
                     if (!((code >= 0x1c0 && code <= 0x1df) ||
                           (code >= 0x1e0 && code <= 0x1ef) ||
                           (code >= 0x1e0 && code <= 0x1ef) ||
-                          (code == 0x1bd)))
+                          (code == 0x1bd) || (code == 0x1fd)))
                         goto skip;
                         goto skip;
                     if (!pes->st) {
                     if (!pes->st) {
                         /* allocate stream */
                         /* allocate stream */
@@ -921,6 +922,10 @@ static AVStream* new_pes_av_stream(PESContext *pes, uint32_t code)
         codec_type = CODEC_TYPE_VIDEO;
         codec_type = CODEC_TYPE_VIDEO;
         codec_id = CODEC_ID_H264;
         codec_id = CODEC_ID_H264;
         break;
         break;
+    case STREAM_TYPE_VIDEO_VC1:
+        codec_type = CODEC_TYPE_VIDEO;
+        codec_id = CODEC_ID_VC1;
+        break;
     case STREAM_TYPE_AUDIO_AAC:
     case STREAM_TYPE_AUDIO_AAC:
         codec_type = CODEC_TYPE_AUDIO;
         codec_type = CODEC_TYPE_AUDIO;
         codec_id = CODEC_ID_AAC;
         codec_id = CODEC_ID_AAC;

+ 1 - 0
libavformat/mpegts.h

@@ -46,6 +46,7 @@
 #define STREAM_TYPE_AUDIO_AAC       0x0f
 #define STREAM_TYPE_AUDIO_AAC       0x0f
 #define STREAM_TYPE_VIDEO_MPEG4     0x10
 #define STREAM_TYPE_VIDEO_MPEG4     0x10
 #define STREAM_TYPE_VIDEO_H264      0x1b
 #define STREAM_TYPE_VIDEO_H264      0x1b
+#define STREAM_TYPE_VIDEO_VC1       0xea
 
 
 #define STREAM_TYPE_AUDIO_AC3       0x81
 #define STREAM_TYPE_AUDIO_AC3       0x81
 #define STREAM_TYPE_AUDIO_DTS       0x8a
 #define STREAM_TYPE_AUDIO_DTS       0x8a