[FFmpeg-devel] [PATCH 1/4] avcodec/dovi_rpuenc: Avoid intermediate codec par in ff_dovi_configure()
James Almer
jamrial at gmail.com
Fri May 30 20:57:35 EEST 2025
On 5/30/2025 1:44 PM, Andreas Rheinhardt wrote:
> Patches attached.
>
> - Andreas
For #11617, something simpler like the following should be enough
> diff --git a/libavcodec/dovi_rpuenc.c b/libavcodec/dovi_rpuenc.c
> index 2e1f8be08e..bbc66fe2e8 100644
> --- a/libavcodec/dovi_rpuenc.c
> +++ b/libavcodec/dovi_rpuenc.c
> @@ -242,6 +242,7 @@ int ff_dovi_configure(DOVIContext *s, AVCodecContext *avctx)
> {
> int ret;
> const AVFrameSideData *sd;
> + const AVPacketSideData *packet_sd;
> const AVDOVIMetadata *metadata = NULL;
> AVCodecParameters *codecpar = avcodec_parameters_alloc();
> if (!codecpar)
> @@ -263,7 +264,20 @@ int ff_dovi_configure(DOVIContext *s, AVCodecContext *avctx)
> if (ret < 0)
> goto fail;
>
> - ret = avcodec_parameters_to_context(avctx, codecpar);
> + packet_sd = av_packet_side_data_get(codecpar->coded_side_data,
> + codecpar->nb_coded_side_data,
> + AV_PKT_DATA_DOVI_CONF);
> + if (packet_sd) {
> + AVPacketSideData *dovi = av_packet_side_data_new(&avctx->coded_side_data,
> + &avctx->nb_coded_side_data,
> + AV_PKT_DATA_DOVI_CONF,
> + packet_sd->size, 0);
> + if (!dovi) {
> + ret = AVERROR(ENOMEM);
> + goto fail;
> + }
> + memcpy(dovi->data, packet_sd->data, dovi->size);
> + }
>
> fail:
> avcodec_parameters_free(&codecpar);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 495 bytes
Desc: OpenPGP digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20250530/ddb36281/attachment.sig>
More information about the ffmpeg-devel
mailing list