[FFmpeg-devel] [PATCH v1 1/1] libavformat/amr.c: remove mode range check

Hendrik Leppkes h.leppkes at gmail.com
Sat Sep 4 11:00:41 EEST 2021


On Sat, Sep 4, 2021 at 9:10 AM sunzhenliang <hisunzhenliang at outlook.com> wrote:
>
> Those comfort noise frames and empty frames should be
> considered the correct frame. And amr.c/amr_read_packet()
> also takes them as correct frames too.
>
> Signed-off-by: sunzhenliang <hisunzhenliang at outlook.com>
> ---
>  libavformat/amr.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/libavformat/amr.c b/libavformat/amr.c
> index 836b276fd5..540d8033d8 100644
> --- a/libavformat/amr.c
> +++ b/libavformat/amr.c
> @@ -178,7 +178,7 @@ static int amrnb_probe(const AVProbeData *p)
>
>      while (i < p->buf_size) {
>          mode = b[i] >> 3 & 0x0F;
> -        if (mode < 9 && (b[i] & 0x4) == 0x4) {
> +        if ((b[i] & 0x4) == 0x4) {
>              int last = b[i];
>              int size = amrnb_packed_size[mode];
>              while (size--) {
> @@ -234,7 +234,7 @@ static int amrwb_probe(const AVProbeData *p)
>
>      while (i < p->buf_size) {
>          mode = b[i] >> 3 & 0x0F;
> -        if (mode < 10 && (b[i] & 0x4) == 0x4) {
> +        if ((b[i] & 0x4) == 0x4) {
>              int last = b[i];
>              int size = amrwb_packed_size[mode];
>              while (size--) {

This is just probing, and expecting to find a significant amount of
non-empty/non-noise frames seems like something you would want in
probing.
Does this actually fix detection of any samples?

It seems like this has the potential of quite substantially reducing
the number of checked bits and thus invalid detections.

- Hendrik


More information about the ffmpeg-devel mailing list