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 3190543216 for ; Fri, 21 Jul 2023 21:31:20 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7A61468C638; Sat, 22 Jul 2023 00:31:09 +0300 (EEST) Received: from mail-qk1-f181.google.com (mail-qk1-f181.google.com [209.85.222.181]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4E3D868BA8D for ; Sat, 22 Jul 2023 00:31:02 +0300 (EEST) Received: by mail-qk1-f181.google.com with SMTP id af79cd13be357-76ad8892d49so171780185a.1 for ; Fri, 21 Jul 2023 14:31:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ltnglobal-com.20221208.gappssmtp.com; s=20221208; t=1689975061; x=1690579861; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=cgwJo8lrgybHdg/86SG6hXfodKe0QgRAPYHHpn84UKk=; b=lEmDiNdGt7dawZZvSC3eMOby68iE0L7zsTg59Q+H/zDpJ63U/cu8dhDKs257TLJalv Pjb0darNISK/BGSEI8pqoDgStUFUmxmf1NKNkmzqXWISyyewbMgy0l4tigMLUIjC8+3A AR5UNZbkB05OevZRhJLDk4PBml4y09MeSuBJ23uubYErCRxEag33y+dgNsc0TIrzhNJ9 yfNPmdrTJM/lsvWhZmjKcYSb1xyhf4Z+Tn+mAH8jYBcmrfw3dGxCcWcxXV7pQ4P+vN3f YvsJSm82IqQJSsyO9uOuvPsFz3sopMDqe+/snq97gbtkZDgztrwniyZdLrzaLgN9VYLH 6ikg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689975061; x=1690579861; h=references:in-reply-to:message-id:date:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=cgwJo8lrgybHdg/86SG6hXfodKe0QgRAPYHHpn84UKk=; b=cGwGAj2KFtLMFJrHfBZR8dUVEoOjC6n95R7WuLk5/eB50EkIvfsAuhRZKtRPYNH4P7 E4Hq6lb43A8lTzCKID0gPjK9OZQctcfRcYZkiip2RgFcmr/COO2tNggvPrqYZuBytt6q mHjqLlp9Mxy/mEsT9Ltfi56sRwM1MY5ypoinrSNDMGC+1eXzfQBICIx4NMFA0J7TrS0Y BusLFK81Chc5ZhpJ/g/Rc7btonYWZAyzRfS1+rqq56fjdtDzvLvCnihNHmoiU5y/16Ds aaAOFrFtx7rml8O1gbYlZt5lW2xlN5TZ6WS/KKT1pEQmXZ6nofDb2YQ31Ixdbj0eTSJI Cxcw== X-Gm-Message-State: ABy/qLYT+zEbAffLDwecW9b8wWfVne71iOfgT9qqBeftGZ3ycv/W56UU ERFefc7Ow0hLwlXfx/5objaOxeg2J/DcTWLxvJs= X-Google-Smtp-Source: APBJJlHk38tXvgwm7GRGinCe/jMSx7xelUiFVuXveceph7XhVxOrQgt7V9Hr7Ig1CdDvOT8rOPMswg== X-Received: by 2002:a05:620a:44d4:b0:767:f1e8:d38c with SMTP id y20-20020a05620a44d400b00767f1e8d38cmr1630549qkp.15.1689975060929; Fri, 21 Jul 2023 14:31:00 -0700 (PDT) Received: from ltnt-nyc-580testdevin.livetimenet.com (pool-71-105-132-214.nycmny.fios.verizon.net. [71.105.132.214]) by smtp.gmail.com with ESMTPSA id z21-20020ae9c115000000b0076738337cd1sm1406333qki.1.2023.07.21.14.31.00 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 21 Jul 2023 14:31:00 -0700 (PDT) From: Devin Heitmueller X-Google-Original-From: Devin Heitmueller To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 Jul 2023 17:30:55 -0400 Message-Id: <1689975057-22226-2-git-send-email-dheitmueller@ltnglobal.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1689975057-22226-1-git-send-email-dheitmueller@ltnglobal.com> References: <1689975057-22226-1-git-send-email-dheitmueller@ltnglobal.com> Subject: [FFmpeg-devel] [RFC][PATCH 1/3] v210enc: Refactor side data passthrough 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 Cc: Devin Heitmueller MIME-Version: 1.0 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: As the number of side-data items we pass through increases, refactor the values into a table in the same manner as done in decode.c. In the future it might make sense to make this a shared function which can be reused by other encoders. But for now keep it local. Signed-off-by: Devin Heitmueller --- libavcodec/v210enc.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/libavcodec/v210enc.c b/libavcodec/v210enc.c index 2a30ed7..110d7eb 100644 --- a/libavcodec/v210enc.c +++ b/libavcodec/v210enc.c @@ -74,6 +74,13 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, AVFrameSideData *side_data; int ret; uint8_t *dst; + static const struct { + enum AVPacketSideDataType packet; + enum AVFrameSideDataType frame; + } sd[] = { + { AV_PKT_DATA_A53_CC, AV_FRAME_DATA_A53_CC }, + { AV_PKT_DATA_AFD, AV_FRAME_DATA_AFD }, + }; ret = ff_get_encode_buffer(avctx, pkt, avctx->height * stride, 0); if (ret < 0) { @@ -87,20 +94,14 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, else if(pic->format == AV_PIX_FMT_YUV422P) v210_enc_8(avctx, dst, pic); - side_data = av_frame_get_side_data(pic, AV_FRAME_DATA_A53_CC); - if (side_data && side_data->size) { - uint8_t *buf = av_packet_new_side_data(pkt, AV_PKT_DATA_A53_CC, side_data->size); - if (!buf) - return AVERROR(ENOMEM); - memcpy(buf, side_data->data, side_data->size); - } - - side_data = av_frame_get_side_data(pic, AV_FRAME_DATA_AFD); - if (side_data && side_data->size) { - uint8_t *buf = av_packet_new_side_data(pkt, AV_PKT_DATA_AFD, side_data->size); - if (!buf) - return AVERROR(ENOMEM); - memcpy(buf, side_data->data, side_data->size); + for (int i = 0; i < FF_ARRAY_ELEMS(sd); i++) { + side_data = av_frame_get_side_data(pic, sd[i].frame); + if (side_data && side_data->size) { + uint8_t *buf = av_packet_new_side_data(pkt, sd[i].packet, side_data->size); + if (!buf) + return AVERROR(ENOMEM); + memcpy(buf, side_data->data, side_data->size); + } } *got_packet = 1; -- 1.8.3.1 _______________________________________________ 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".