[libav-devel] [PATCH 06/18] mpegvideo_probe: count video and audio pes separately.
Måns Rullgård
mans at mansr.com
Thu Nov 24 14:36:25 CET 2011
Luca Barbato <lu_zero at gentoo.org> writes:
> On 24/11/11 11:26, Anton Khirnov wrote:
>> From: Michael Niedermayer<michaelni at gmx.at>
>>
>> Signed-off-by: Anton Khirnov<anton at khirnov.net>
>> ---
>> libavformat/mpegvideodec.c | 8 ++++----
>> 1 files changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/libavformat/mpegvideodec.c b/libavformat/mpegvideodec.c
>> index 9fea117..7d44cc8 100644
>> --- a/libavformat/mpegvideodec.c
>> +++ b/libavformat/mpegvideodec.c
>> @@ -34,7 +34,7 @@
>> static int mpegvideo_probe(AVProbeData *p)
>> {
>> uint32_t code= -1;
>> - int pic=0, seq=0, slice=0, pspack=0, pes=0;
>> + int pic = 0, seq = 0, slice = 0, pspack = 0, vpes = 0, apes = 0;
>> int i;
>>
>> for(i=0; i<p->buf_size; i++){
>> @@ -46,11 +46,11 @@ static int mpegvideo_probe(AVProbeData *p)
>> case SLICE_START_CODE: slice++; break;
>> case PACK_START_CODE: pspack++; break;
>> }
>> - if ((code& 0x1f0) == VIDEO_ID) pes++;
>> - else if((code& 0x1e0) == AUDIO_ID) pes++;
>> + if ((code& 0x1f0) == VIDEO_ID) vpes++;
>> + else if((code& 0x1e0) == AUDIO_ID) apes++;
>> }
>> }
>> - if(seq&& seq*9<=pic*10&& pic*9<=slice*10&& !pspack&& !pes)
>> + if(seq&& seq*9<=pic*10&& pic*9<=slice*10&& !pspack&& !apes&& !vpes)
>> return pic>1 ? AVPROBE_SCORE_MAX/2+1 : AVPROBE_SCORE_MAX/4; // +1 for .mpg
>> return 0;
>> }
>
> Why? Is audio mandatory?
This function is supposed to detect raw MPEG1/2 video. As such, it
needs to drop the score if PES headers are seen. For that purpose,
separating audio and video is pointless.
--
Måns Rullgård
mans at mansr.com
More information about the libav-devel
mailing list