Browse Source

detect MPEG PES streams as MPEG PS; the PS demuxer will cope

Originally committed as revision 5540 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/v0.5
Måns Rullgård 19 years ago
parent
commit
19e0e403f3
1 changed files with 4 additions and 1 deletions
  1. +4
    -1
      libavformat/mpeg.c

+ 4
- 1
libavformat/mpeg.c View File

@@ -1263,7 +1263,7 @@ static int mpeg_mux_end(AVFormatContext *ctx)
static int mpegps_probe(AVProbeData *p) static int mpegps_probe(AVProbeData *p)
{ {
uint32_t code= -1; uint32_t code= -1;
int sys=0, pspack=0, priv1=0, vid=0;
int sys=0, pspack=0, priv1=0, vid=0, audio=0;
int i; int i;


for(i=0; i<p->buf_size; i++){ for(i=0; i<p->buf_size; i++){
@@ -1274,6 +1274,7 @@ static int mpegps_probe(AVProbeData *p)
case PRIVATE_STREAM_1: priv1++; break; case PRIVATE_STREAM_1: priv1++; break;
case PACK_START_CODE: pspack++; break; case PACK_START_CODE: pspack++; break;
case (VIDEO_ID + 0x100): vid++; break; case (VIDEO_ID + 0x100): vid++; break;
case (AUDIO_ID + 0x100): audio++; break;
} }
} }
} }
@@ -1281,6 +1282,8 @@ static int mpegps_probe(AVProbeData *p)
return AVPROBE_SCORE_MAX/2+2; // +1 for .mpg return AVPROBE_SCORE_MAX/2+2; // +1 for .mpg
if((priv1 || vid) && (priv1+vid)*9 <= pspack*10) if((priv1 || vid) && (priv1+vid)*9 <= pspack*10)
return AVPROBE_SCORE_MAX/2+2; // +1 for .mpg return AVPROBE_SCORE_MAX/2+2; // +1 for .mpg
if((!!vid ^ !!audio) && !sys && !pspack) /* PES stream */
return AVPROBE_SCORE_MAX/2;
return 0; return 0;
} }




Loading…
Cancel
Save