On Mon, 8 May 2017 16:25:43 -0400 Vadim Kalinsky <geb...@gmail.com> wrote:
> Hey, > > Trying to fix a bug #6113, I stumbled upon some strange logic in > libavformat/img2dec.c:jpeg_probe. It accepts first 2048 bytes of jpeg stream, > and tries to read it with some state machine. If it doesn't look like jpeg > stream, it returns 0 ("it's definitely not a jpeg"). > > After it read through the buffer, it does this: > > if (state == EOI) > return AVPROBE_SCORE_EXTENSION + 1; > if (state == SOS) > return AVPROBE_SCORE_EXTENSION / 2; > > return AVPROBE_SCORE_EXTENSION / 8; > > > That doesn't make sense to me. All we read so far made sense for jpeg reader, > it definitely looks like a jpeg image, but for some reason our confidence is > AVPROBE_SCORE_EXTENSION _DIVIDED_ by 2 or 8 (in other words, "it would look > more jpeg if it had .jpg extension). These are all heuristics mostly a certain developer tuned and who decided it'd make sense. The problem with probing is that it uses a score system, which means ambiguous formats get distinguished by the rather arbitrary score across all the other probers, which makes this messy. I'd say just send a patch. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel