[FFmpeg-devel] [PATCH] Fix SPDIF detection score

Denis Shulyaka shulyaka at gmail.com
Wed Jun 16 02:07:50 EEST 2021


Sorry for not giving the proper description! Here it is:
The spdif is based on blocks with fixed length, each block starts with a
sync word. It matters how many sync words we find during probe and whether
we find them in expected place. The SPDIF_MAX_OFFSET constant is the
maximum supported block side. When we find a sync word, we shift the upper
boundary of the search area (probe_end) by SPDIF_MAX_OFFSET, however this
boundary is exclusive (the condition in the loop is "strictly less"), and
when the actual block size matches the max supported block size, then the
second sync word appears to be outside of the search area by 1 byte. As a
result, we find only one sync word and return an incorrect score
(AVPROBE_SCORE_EXTENSION / 4 instead of AVPROBE_SCORE_MAX). The fix gives 1
more byte to the search area to allow finding the subsequent sync word.
To reproduce the issue you would need a sample with SPDIF_MAX_OFFSET
(16384) block size (probably AAC with samples = 4096). I do not have such
sample as I found this issue while working on a new codec support.

ср, 16 июн. 2021 г., 01:18 Hendrik Leppkes <h.leppkes at gmail.com>:

> On Tue, Jun 15, 2021 at 12:52 PM Denis Shulyaka <shulyaka at gmail.com>
> wrote:
> >
> > Hi! How do I ask for a review? I am new here.
> >
>
> A short explanation of what the problem is and why this change fixes
> it would help us to understand and evaluate the patch - and generally
> makes for better patches, as any future reader will be able to look up
> where the +1 came from and why it should be there. :)
>
> - Hendrik
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
>


More information about the ffmpeg-devel mailing list