mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-04-14 00:58:38 +02:00
Detect IDR less H.264 correctly.
Fixes maybeH264_dumpvideo Originally committed as revision 14424 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
e791eb1ed4
commit
01037451f9
@ -350,7 +350,7 @@ static int mpeg4video_probe(AVProbeData *probe_packet)
|
|||||||
static int h264_probe(AVProbeData *p)
|
static int h264_probe(AVProbeData *p)
|
||||||
{
|
{
|
||||||
uint32_t code= -1;
|
uint32_t code= -1;
|
||||||
int sps=0, pps=0, idr=0, res=0;
|
int sps=0, pps=0, idr=0, res=0, sli=0;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for(i=0; i<p->buf_size; i++){
|
for(i=0; i<p->buf_size; i++){
|
||||||
@ -376,6 +376,7 @@ static int h264_probe(AVProbeData *p)
|
|||||||
res++;
|
res++;
|
||||||
|
|
||||||
switch(type){
|
switch(type){
|
||||||
|
case 1: sli++; break;
|
||||||
case 5: idr++; break;
|
case 5: idr++; break;
|
||||||
case 7:
|
case 7:
|
||||||
if(p->buf[i+2]&0x0F)
|
if(p->buf[i+2]&0x0F)
|
||||||
@ -386,7 +387,7 @@ static int h264_probe(AVProbeData *p)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(sps && pps && idr && res<(sps+pps+idr))
|
if(sps && pps && (idr||sli>3) && res<(sps+pps+idr))
|
||||||
return AVPROBE_SCORE_MAX/2+1; // +1 for .mpg
|
return AVPROBE_SCORE_MAX/2+1; // +1 for .mpg
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user