From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 9422B456B1 for ; Mon, 20 Mar 2023 23:35:49 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BB52068C60F; Tue, 21 Mar 2023 01:34:32 +0200 (EET) Received: from mail-lf1-f53.google.com (mail-lf1-f53.google.com [209.85.167.53]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3AEEB68C5C5 for ; Tue, 21 Mar 2023 01:34:20 +0200 (EET) Received: by mail-lf1-f53.google.com with SMTP id k37so4058353lfv.0 for ; Mon, 20 Mar 2023 16:34:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679355259; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=wqEiHWAPy1p0l6YclL/pipsyDtoQXMAEc9PWHorDbbU=; b=EtAKX/qoGpvvqQJmmyNREX8d2nTzN1dYkqSzwh/u2NCAMixi6eVBXDvka5Ha7vkFdX KpmF81HV6o6b601ED9r4zSEcV8oFXp+I6/VI7+KV+uc5KbNnVdocNEpuf/R+lxlMJ0AT PQsMtB+7iJy9fdK1Cr4mbgPPa4dmwJPDZfm1nzM9ZFk5hL4dajUt3XSkC9f3u7q7dZL1 keqO3S7qrbzXd2JB+V3dOFjK2IVEhBZ/anxJyC4zDVeI0UUhA44TnKKUgPLaIwbAPVC0 HN2W0v65x+piS8MIwk+wFymK2XvooyTb0T9+fTQ3J2IQGvq+7KVe7rt9/BuIjpAg1qfA atEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679355259; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wqEiHWAPy1p0l6YclL/pipsyDtoQXMAEc9PWHorDbbU=; b=YjajNDgCS2nCDWvUENfjBWZq6GHQXsY/eg3DFHl0IZAfn2lm9/UYGk95huHlPxsbl1 sjrLbVGcatvw84OCroJBj+wlcQobbOwl+nh+ALVaXePcVxQO14D699rLbi3reARhlrej 3byGAWo2WfrJ9FDUXNFrFAxz6SCRW9eOqKhmPYW1S8m6iOgkx0G/IRVe9d3j+xndjWlw mCpy870+q8FWrJOhC47Rt9/G811dFsXLywa01+XkkCCqQTA4EBYvjcidVai6ZvK40aXk RIlMiSn6Bdd/+1wgj97WFUGwUYPcdUk6lz2ZyDbKUL56WFEhZgQL5Fp/U4BwuzHPdVc0 TVPA== X-Gm-Message-State: AO0yUKUsG3mmC3N3wjEUf3lU4OnHBDTB73BQxRKQALxSjTQDC0bpYcT3 A+Zq6QkQQfRvbDn41ZDwf3PI1SzeLX8= X-Google-Smtp-Source: AK7set/nBj3bPg9lvi9SlriUO0UUmFoXZ3tB3qhJFOYGckZbvJECCIYgZTQaAfB2V15l++Sb+2MVXg== X-Received: by 2002:ac2:5e88:0:b0:4dd:d687:4ea7 with SMTP id b8-20020ac25e88000000b004ddd6874ea7mr217353lfq.36.1679355259369; Mon, 20 Mar 2023 16:34:19 -0700 (PDT) Received: from localhost.localdomain (91-153-198-187.elisa-laajakaista.fi. [91.153.198.187]) by smtp.gmail.com with ESMTPSA id j19-20020a19f513000000b004e84b79de9bsm1900701lfb.254.2023.03.20.16.34.19 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Mar 2023 16:34:19 -0700 (PDT) From: =?UTF-8?q?Jan=20Ekstr=C3=B6m?= To: ffmpeg-devel@ffmpeg.org Date: Tue, 21 Mar 2023 01:34:04 +0200 Message-Id: <20230320233408.134255-11-jeebjp@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230320233408.134255-1-jeebjp@gmail.com> References: <20230320233408.134255-1-jeebjp@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v0 10/14] avcodec: add function for setting avctx side data X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: --- libavcodec/avcodec.c | 30 ++++++++++++++++++++++++++++++ libavcodec/avcodec.h | 12 ++++++++++++ 2 files changed, 42 insertions(+) diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c index 3faabe77d1..9ffff28d70 100644 --- a/libavcodec/avcodec.c +++ b/libavcodec/avcodec.c @@ -29,6 +29,7 @@ #include "libavutil/bprint.h" #include "libavutil/channel_layout.h" #include "libavutil/fifo.h" +#include "libavutil/frame.h" #include "libavutil/imgutils.h" #include "libavutil/mem.h" #include "libavutil/opt.h" @@ -719,3 +720,32 @@ int attribute_align_arg avcodec_receive_frame(AVCodecContext *avctx, AVFrame *fr return ff_decode_receive_frame(avctx, frame); return ff_encode_receive_frame(avctx, frame); } + +int avcodec_configure_side_data(AVCodecContext *avctx, + const AVFrameSideDataSet set) +{ + if (!avctx || !avctx->internal || !av_codec_is_encoder(avctx->codec)) + return AVERROR(EINVAL); + + { + AVCodecInternal *avci = avctx->internal; + AVFrameSideDataSet *dst = &avci->side_data_set; + + for (int i = 0; i < set.nb_side_data; i++) { + const AVFrameSideData *sd_src = set.side_data[i]; + AVFrameSideData *sd_dst = + av_new_side_data_to_set(dst, sd_src->type, + sd_src->size); + if (!sd_dst) { + av_side_data_set_wipe(dst); + return AVERROR(ENOMEM); + } + + memcpy(sd_dst->data, sd_src->data, sd_src->size); + + av_dict_copy(&sd_dst->metadata, sd_src->metadata, 0); + } + + return 0; + } +} diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 30f1d312f4..8f535a0cc8 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -3223,6 +3223,18 @@ void av_fast_padded_mallocz(void *ptr, unsigned int *size, size_t min_size); */ int avcodec_is_open(AVCodecContext *s); +/** + * Configure a side data set to an encoder AVCodecContext. With multiple + * calls new side data gets added in addition to the existing set of side data. + * + * @param avctx codec context to which to add side data + * @param set set of side data to add + * +* @return negative error code on failure, >=0 on success. + */ +int avcodec_configure_side_data(AVCodecContext *avctx, + const AVFrameSideDataSet set); + /** * @} */ -- 2.39.2 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".