[FFmpeg-devel] [PATCH v3 1/2] libavformat/oggparseflac: Decode metadata packets. Fixes: #10364

Romain Beauxis toots at rastageeks.org
Mon May 15 00:43:53 EEST 2023


Le dim. 14 mai 2023 à 16:40, <toots at rastageeks.org> a écrit :
>
> From: Romain Beauxis <toots at rastageeks.org>
>
> This is the third version on a series of patches improving ffmpeg support for
> ogg chained streams.
>
> Reproduction steps for the issue fixed with patch are included in this bug
> report: https://trac.ffmpeg.org/ticket/10363

Sorry correct link is: https://trac.ffmpeg.org/ticket/10364

>
> ---
>  libavformat/oggparseflac.c | 20 ++++++++++++++++++++
>  1 file changed, 20 insertions(+)
>
> diff --git a/libavformat/oggparseflac.c b/libavformat/oggparseflac.c
> index eef6e09927..1dd292483d 100644
> --- a/libavformat/oggparseflac.c
> +++ b/libavformat/oggparseflac.c
> @@ -126,10 +126,30 @@ fail:
>      return ret;
>  }
>
> +static int flac_packet(AVFormatContext *s, int idx)
> +{
> +    struct ogg *ogg = s->priv_data;
> +    struct ogg_stream *os = ogg->streams + idx;
> +    int ret;
> +
> +    if (os->psize > 4 && (*(os->buf + os->pstart) & 0x7F) == FLAC_METADATA_TYPE_VORBIS_COMMENT) {
> +        AVStream *st = s->streams[idx];
> +        av_dict_free(&st->metadata);
> +        ret = ff_vorbis_stream_comment(s, st, os->buf + os->pstart + 4,
> +                                       os->psize - 4);
> +
> +        if (ret < 0) return ret;
> +    }
> +
> +    return 0;
> +}
> +
> +
>  const struct ogg_codec ff_flac_codec = {
>      .magic = "\177FLAC",
>      .magicsize = 5,
>      .header = flac_header,
> +    .packet = flac_packet,
>      .nb_header = 2,
>  };
>
> --
> 2.37.1 (Apple Git-137.1)
>


More information about the ffmpeg-devel mailing list