Mercurial > libavformat.hg
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, |