|
|
@@ -1260,6 +1260,20 @@ static int mpeg_mux_end(AVFormatContext *ctx) |
|
|
|
|
|
|
|
#define MAX_SYNC_SIZE 100000 |
|
|
|
|
|
|
|
static int cdxa_probe(AVProbeData *p) |
|
|
|
{ |
|
|
|
/* check file header */ |
|
|
|
if (p->buf_size <= 32) |
|
|
|
return 0; |
|
|
|
if (p->buf[0] == 'R' && p->buf[1] == 'I' && |
|
|
|
p->buf[2] == 'F' && p->buf[3] == 'F' && |
|
|
|
p->buf[8] == 'C' && p->buf[9] == 'D' && |
|
|
|
p->buf[10] == 'X' && p->buf[11] == 'A') |
|
|
|
return AVPROBE_SCORE_MAX; |
|
|
|
else |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
static int mpegps_probe(AVProbeData *p) |
|
|
|
{ |
|
|
|
uint32_t code= -1; |
|
|
@@ -1267,6 +1281,10 @@ static int mpegps_probe(AVProbeData *p) |
|
|
|
int i; |
|
|
|
int score=0; |
|
|
|
|
|
|
|
score = cdxa_probe(p); |
|
|
|
if (score > 0) return score; |
|
|
|
|
|
|
|
/* Search for MPEG stream */ |
|
|
|
for(i=0; i<p->buf_size; i++){ |
|
|
|
code = (code<<8) + p->buf[i]; |
|
|
|
if ((code & 0xffffff00) == 0x100) { |
|
|
|