comparison raw.c @ 6433:7c98c16c97c5 libavformat

move m4v demuxer to its own file
author aurel
date Sun, 29 Aug 2010 21:23:30 +0000
parents 7ae181b3ca00
children 67433b0c29d5
comparison
equal deleted inserted replaced
6432:7ae181b3ca00 6433:7c98c16c97c5
239 239
240 return 0; 240 return 0;
241 } 241 }
242 #endif 242 #endif
243 243
244 #if CONFIG_M4V_DEMUXER
245 #define VISUAL_OBJECT_START_CODE 0x000001b5
246 #define VOP_START_CODE 0x000001b6
247
248 static int mpeg4video_probe(AVProbeData *probe_packet)
249 {
250 uint32_t temp_buffer= -1;
251 int VO=0, VOL=0, VOP = 0, VISO = 0, res=0;
252 int i;
253
254 for(i=0; i<probe_packet->buf_size; i++){
255 temp_buffer = (temp_buffer<<8) + probe_packet->buf[i];
256 if ((temp_buffer & 0xffffff00) != 0x100)
257 continue;
258
259 if (temp_buffer == VOP_START_CODE) VOP++;
260 else if (temp_buffer == VISUAL_OBJECT_START_CODE) VISO++;
261 else if (temp_buffer < 0x120) VO++;
262 else if (temp_buffer < 0x130) VOL++;
263 else if ( !(0x1AF < temp_buffer && temp_buffer < 0x1B7)
264 && !(0x1B9 < temp_buffer && temp_buffer < 0x1C4)) res++;
265 }
266
267 if ( VOP >= VISO && VOP >= VOL && VO >= VOL && VOL > 0 && res==0)
268 return AVPROBE_SCORE_MAX/2;
269 return 0;
270 }
271 #endif
272
273 #if CONFIG_H264_DEMUXER 244 #if CONFIG_H264_DEMUXER
274 static int h264_probe(AVProbeData *p) 245 static int h264_probe(AVProbeData *p)
275 { 246 {
276 uint32_t code= -1; 247 uint32_t code= -1;
277 int sps=0, pps=0, idr=0, res=0, sli=0; 248 int sps=0, pps=0, idr=0, res=0, sli=0;
733 ff_raw_write_packet, 704 ff_raw_write_packet,
734 .flags= AVFMT_NOTIMESTAMPS, 705 .flags= AVFMT_NOTIMESTAMPS,
735 }; 706 };
736 #endif 707 #endif
737 708
738 #if CONFIG_M4V_DEMUXER
739 AVInputFormat m4v_demuxer = {
740 "m4v",
741 NULL_IF_CONFIG_SMALL("raw MPEG-4 video format"),
742 0,
743 mpeg4video_probe, /** probing for MPEG-4 data */
744 ff_raw_video_read_header,
745 ff_raw_read_partial_packet,
746 .flags= AVFMT_GENERIC_INDEX,
747 .extensions = "m4v",
748 .value = CODEC_ID_MPEG4,
749 };
750 #endif
751
752 #if CONFIG_M4V_MUXER 709 #if CONFIG_M4V_MUXER
753 AVOutputFormat m4v_muxer = { 710 AVOutputFormat m4v_muxer = {
754 "m4v", 711 "m4v",
755 NULL_IF_CONFIG_SMALL("raw MPEG-4 video format"), 712 NULL_IF_CONFIG_SMALL("raw MPEG-4 video format"),
756 NULL, 713 NULL,