summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavformat/mp3.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/libavformat/mp3.c b/libavformat/mp3.c
index 04ff0b2ba3..f7ba7b65cd 100644
--- a/libavformat/mp3.c
+++ b/libavformat/mp3.c
@@ -244,7 +244,7 @@ static void id3_create_tag(AVFormatContext *s, uint8_t *buf)
static int mp3_read_probe(AVProbeData *p)
{
- int max_frames;
+ int max_frames, first_frames;
int fsize, frames;
uint32_t header;
uint8_t *buf, *buf2, *end;
@@ -271,10 +271,12 @@ static int mp3_read_probe(AVProbeData *p)
buf2 += fsize;
}
max_frames = FFMAX(max_frames, frames);
+ if(buf == p->buf)
+ first_frames= frames;
}
- if (max_frames>=3) return AVPROBE_SCORE_MAX/2+1;
- else if(max_frames==2) return AVPROBE_SCORE_MAX/4;
- else if(max_frames==1) return 1;
+ if (first_frames>=3) return AVPROBE_SCORE_MAX/2+1;
+ else if(max_frames>=3) return AVPROBE_SCORE_MAX/4;
+ else if(max_frames>=1) return 1;
else return 0;
}