From patchwork Mon Sep 4 15:03:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 43530 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4f16:b0:149:dfde:5c0a with SMTP id gi22csp1272926pzb; Mon, 4 Sep 2023 08:05:00 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFclyXlHwZK+N9X4DBORUfhXYzdIxvUbB1iNDTqJnRPocaljcZA1Z4c3oDSpusOhD75Skbp X-Received: by 2002:a05:6512:3e1c:b0:500:af69:5556 with SMTP id i28-20020a0565123e1c00b00500af695556mr8954268lfv.29.1693839899815; Mon, 04 Sep 2023 08:04:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1693839899; cv=none; d=google.com; s=arc-20160816; b=BwNzntPptwYI4eVMCpezHJVpftC58K4sq/ICM6pW2M7i6X7cpen7a0E6cxyTmMPUNi eV25H9TkofskBfTy5lp2zvwcSGApXUXHvFQPKzPscUtXhe+GKiuooKJWMHo12yeY1glB SCmnZn3hFDdh/NpMl/63uu1bAgp9zL5Tq4ay3bkefVfQx7f6ujLnV8+XQCaC9/T0Mf7x QMroo38G/0a3nYuzZzwomzjB+0luKeLv9cWTG8iYr52rQLnMTIV2R98MF/VPtgDDBAoh G+6haXQwJI8zMGnRZN6myWjvA913FWsL45OAkRdonmzajjj/9Ikl5zJp7XA7y21jhni1 HGVA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=FncTg/BTACBpasFEWi0Howzx//rLl1tFRrGieYZ0YmA=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=ZcuKfaCfnFcMMZgIwrGA8XpK+1JiQZMHSsXH7lSpVXjmMS/ssDFsyQjz2lue5FnZ1w WowFekg+ev6Wp1nAoea1quILrAu6OBlwaaWIITcBNZt4+SzIDZjqu1Gwd7EesrhDXpFo hN2CuXVDkLcdPDo1uO5fravEF4lJuLdzoqlurEijgpS1E4AmeZg0P1V10CYrGqcNcedC 71VZ3FSqkBx0vXr8ReJpUFdTk2CIuvPacYumQB+VNjhrZrFyowZIja8zMA3Xbr/g5szJ opRhfleb36A79HatLSiYogXLvFWZy466RUFNy7TekZa5i+G+fwfdW25NsmFsfn1+d0Dp 7q9Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=fSeWNUAJ; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id c18-20020aa7d612000000b00525641e460bsi6573741edr.190.2023.09.04.08.04.42; Mon, 04 Sep 2023 08:04:59 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=fSeWNUAJ; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 481F468C6E5; Mon, 4 Sep 2023 18:04:30 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oi1-f173.google.com (mail-oi1-f173.google.com [209.85.167.173]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E470B68C6CB for ; Mon, 4 Sep 2023 18:04:21 +0300 (EEST) Received: by mail-oi1-f173.google.com with SMTP id 5614622812f47-3a9b41ffe11so1086945b6e.2 for ; Mon, 04 Sep 2023 08:04:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1693839860; x=1694444660; darn=ffmpeg.org; 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=BL2uyZC51rv+9vhvIC8PAqLd/JH9UU8Vphj7MqGNoTo=; b=fSeWNUAJ9QJRhaIO2hz/++BTnwfmRFgIgsgePnv1eyv6xWFsT+gS2JwVCFCQcSfe4K /usT8eO37p4co/rjAbU3uVAt+1t7mrKDWKmTSs+TCEqn5MdnyYeyolFFJGeCo6E+cRuH gZYArLvX7oTXtQKW1zf6EPyTp9ih7ejuJgiCkG3EsltGk2Z5c1MiE4qWRTO7RgBwSGFA lhN0ovx3eZOkjH0iB7YugjVEsEZLhwYHrvH5SHx9qUEDFg7drc3UAGNP5k1YErkHnV87 1YmFAq2v4VfCwsfoiwe5PApBjDCWz+H1kh8EqAOrYwTbIE/UTrLZVzIeq8OrKu1cuuuf pbMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693839860; x=1694444660; 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=BL2uyZC51rv+9vhvIC8PAqLd/JH9UU8Vphj7MqGNoTo=; b=f/axbqx6JPzxCn55NYOzZvSw4U3mgDlzisStXpI1XocOd8y/ZRDVsUh4YabjqcuyIF za6RA/IF+uHEMHiYefXu7CTmY/N5ZQ9xctLaqIsOr4LW89W96hGPBZhAtsZ5NG6Dbi+H Ln8LZIqosjCNHq8bDbYhE+LroLzGLS8ff3GPIKS8sPgs69EIUjuLStTP52pMNvuzr04Y RyL6tiFUn5Ftf4GIUFrGjfgCeYx7dcFPTRD4cLnwPvGUAhV+e/1pswkAlU9WLx1Jp3lc n2yDv7N5uFC2F2I+CfhqHJyurnAUWQV8vA04jUnEulQcYN22rm+EkscYosLEWisJ/H/S ICKg== X-Gm-Message-State: AOJu0YwX8gpxNYaTHyrLZe39VOghOfvUljJs3QSVgWYa+QSc5o4cKVG5 awXWdL0nb+FzCK8JJDUHZlxXOjhOjVc= X-Received: by 2002:a05:6808:bc2:b0:3a4:1c16:b1bc with SMTP id o2-20020a0568080bc200b003a41c16b1bcmr13628789oik.12.1693839859882; Mon, 04 Sep 2023 08:04:19 -0700 (PDT) Received: from localhost.localdomain (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id z14-20020a54458e000000b003a9cd23980esm4946286oib.8.2023.09.04.08.04.18 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Sep 2023 08:04:19 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Mon, 4 Sep 2023 12:03:54 -0300 Message-ID: <20230904150411.56777-2-jamrial@gmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20230904150411.56777-1-jamrial@gmail.com> References: <20230904150411.56777-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 01/17] avcodec/avcodec: add side data to AVCodecContext 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: qviXIJYnORHp Signed-off-by: James Almer --- libavcodec/avcodec.c | 2 + libavcodec/avcodec.h | 8 ++++ libavcodec/avpacket.c | 99 +++++++++++++++++++++++++++++++++++++++++++ libavcodec/packet.h | 68 +++++++++++++++++++++++++++++ 4 files changed, 177 insertions(+) diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c index 131834b6de..7e1ef99234 100644 --- a/libavcodec/avcodec.c +++ b/libavcodec/avcodec.c @@ -475,6 +475,8 @@ av_cold int avcodec_close(AVCodecContext *avctx) av_freep(&avctx->internal); } + av_packet_side_data_set_free(&avctx->packet_side_data); + for (i = 0; i < avctx->nb_coded_side_data; i++) av_freep(&avctx->coded_side_data[i].data); av_freep(&avctx->coded_side_data); diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 649411ac79..dda8a2412b 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -2100,6 +2100,14 @@ typedef struct AVCodecContext { * an error. */ int64_t frame_num; + + /** + * Additional data associated with the entire stream. + * + * - decoding: set by user + * - encoding: unused + */ + AVPacketSideDataSet packet_side_data; } AVCodecContext; /** diff --git a/libavcodec/avpacket.c b/libavcodec/avpacket.c index 5fef65e97a..5b133c5d8a 100644 --- a/libavcodec/avpacket.c +++ b/libavcodec/avpacket.c @@ -645,3 +645,102 @@ int ff_side_data_set_prft(AVPacket *pkt, int64_t timestamp) return 0; } + +AVPacketSideData *av_packet_side_data_set_get(const AVPacketSideDataSet *set, + enum AVPacketSideDataType type) +{ + for (int i = 0; i < set->nb_sd; i++) + if (set->sd[i]->type == type) + return set->sd[i]; + + return NULL; +} + +static AVPacketSideData *add_side_data_to_set(AVPacketSideDataSet *set, + enum AVPacketSideDataType type, + uint8_t *data, size_t size) +{ + AVPacketSideData *sd, **tmp; + + for (int i = 0; i < set->nb_sd; i++) { + sd = set->sd[i]; + if (sd->type != type) + continue; + + av_freep(&sd->data); + sd->data = data; + sd->size = size; + return sd; + } + + if (set->nb_sd + 1U > INT_MAX) + return NULL; + + tmp = av_realloc_array(set->sd, set->nb_sd + 1, sizeof(*tmp)); + if (!tmp) + return NULL; + + set->sd = tmp; + + sd = av_mallocz(sizeof(*sd)); + if (!sd) + return NULL; + + sd->type = type; + sd->data = data; + sd->size = size; + + set->sd[set->nb_sd++] = sd; + + return sd; +} + +AVPacketSideData *av_packet_side_data_set_add(AVPacketSideDataSet *set, + enum AVPacketSideDataType type, + uint8_t *data, size_t size, + int flags) +{ + return add_side_data_to_set(set, type, data, size); +} + +AVPacketSideData *av_packet_side_data_set_new(AVPacketSideDataSet *set, + enum AVPacketSideDataType type, + size_t size, int flags) +{ + AVPacketSideData *sd = NULL; + uint8_t *data = av_malloc(size); + + if (!data) + return NULL; + + sd = add_side_data_to_set(set, type, data, size); + if (!sd) + av_freep(&data); + + return sd; +} + +void av_packet_side_data_set_remove(AVPacketSideDataSet *set, + enum AVPacketSideDataType type) +{ + for (int i = set->nb_sd - 1; i >= 0; i--) { + AVPacketSideData *sd = set->sd[i]; + if (sd->type != type) + continue; + av_free(set->sd[i]->data); + av_free(set->sd[i]); + set->sd[i] = set->sd[--set->nb_sd]; + break; + } +} + +void av_packet_side_data_set_free(AVPacketSideDataSet *set) +{ + for (int i = 0; i < set->nb_sd; i++) { + av_free(set->sd[i]->data); + av_free(set->sd[i]); + } + set->nb_sd = 0; + + av_freep(&set->sd); +} diff --git a/libavcodec/packet.h b/libavcodec/packet.h index f28e7e7011..63b402d7ea 100644 --- a/libavcodec/packet.h +++ b/libavcodec/packet.h @@ -318,6 +318,14 @@ typedef struct AVPacketSideData { enum AVPacketSideDataType type; } AVPacketSideData; +/** + * Structure to hold a set of AVPacketSideDataSet + */ +typedef struct AVPacketSideDataSet { + AVPacketSideData **sd; + int nb_sd; +} AVPacketSideDataSet; + /** * This structure stores compressed data. It is typically exported by demuxers * and then passed as input to decoders, or received as output from encoders and @@ -724,6 +732,66 @@ int av_packet_make_writable(AVPacket *pkt); */ void av_packet_rescale_ts(AVPacket *pkt, AVRational tb_src, AVRational tb_dst); +/** + * Allocate a new side data entry into to a set. + * + * @param set a set to which the side data should be added + * @param type side data type + * @param size side data size + * @param flags currently unused + * @return pointer to freshly allocated side data entry on success, or NULL + * otherwise. + */ +AVPacketSideData *av_packet_side_data_set_new(AVPacketSideDataSet *set, + enum AVPacketSideDataType type, + size_t size, int flags); + +/** + * Wrap an existing array as a packet side data into a set. + * + * @param set a set to which the side data should be added + * @param type side data type + * @param data a data array. It must be allocated with the av_malloc() family + * of functions. The ownership of the data is transferred to the + * set on success + * @param size size of the data array + * @param flags currently unused + * @return pointer to freshly allocated side data entry on success, or NULL + * otherwise. On failure, the set is unchanged and the data remains + * owned by the caller. + */ +AVPacketSideData *av_packet_side_data_set_add(AVPacketSideDataSet *set, + enum AVPacketSideDataType type, + uint8_t *data, size_t size, + int flags); + +/** + * Remove side data of the given type from a set. + * + * @param set a set from which the side data should be removed + * @param type side information type + */ +void av_packet_side_data_set_remove(AVPacketSideDataSet *set, + enum AVPacketSideDataType type); + +/** + * Get side information from set. + * + * @param set a set from which the side data should be fetched + * @param type desired side information type + * + * @return pointer to side data if present or NULL otherwise + */ +AVPacketSideData *av_packet_side_data_set_get(const AVPacketSideDataSet *set, + enum AVPacketSideDataType type); + +/** + * Convenience function to free all the side data stored in a set. + * + * @param set the set to free + */ +void av_packet_side_data_set_free(AVPacketSideDataSet *set); + /** * @} */ From patchwork Mon Sep 4 15:03:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 43531 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4f16:b0:149:dfde:5c0a with SMTP id gi22csp1273008pzb; Mon, 4 Sep 2023 08:05:05 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGnOgylmz28dPJz8sNMj1cKC9CfHltcgSUIqFk723JvLoCeW0RaQNLNwKEcODRqMaCBXsv6 X-Received: by 2002:a05:6512:692:b0:500:8fb1:7a51 with SMTP id t18-20020a056512069200b005008fb17a51mr8192693lfe.14.1693839904143; Mon, 04 Sep 2023 08:05:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1693839904; cv=none; d=google.com; s=arc-20160816; b=YmANo3NBHSHPdL02XZFTw9n8G9zAbnxAjuKASX3KIFib/MgmMsLcT8L/X9HaC5ix1N tObEo1FNjffnC9yenl8OdbbLSIV7Ur/S0cdDBNlqQgYViPSmsAz0OETtR8vx66WQfJyT TdyjC+fpvyzwH/bwlZrwR3tTMypNvOSnIJRXdDSQ90zSuN1fRdzwzFoeCSFE7MBUZnaO jfF9oLyGTMewnu+glUnLh34N/P2WNBPaHCMxxMXA1L84dqZloP+lxhEoRtAimKUomFRs FRp5SdU1wet0HPcOyzomr2eqWMoLrwCl2wqCdqFM5/W4qq75weajeSRTbanvW1TljHRQ K74g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=hGC/QINIoXycu6YeXzLd02ddUFCu3zLQEcjx3fhZTH0=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=cLtHkMiq2tdjuIhGkeDhgneEO8H6GGYbea3l7SkuUQMRsrjPYiSKjEyHAosf0NprJ3 rxFxAvlWgIYAXUSoKds/pzyu0pA2PuUc2mWQ08aNn2p+5TUKv4Dxzf+OPp70FYGctxIY kEFMcds1JEf15X7TaQL673hYf1wciEKamT6PcxDcPfZb5sd03XQdKRXvaLQCrvY+Q9wT DiIOmzpKubOIcNtSvoyouyvT7qu/4q6AqCU1jFiJT3+CL1XS3GYX+CQHE0B0nwvpCuuK VUGtKP7z8QBpUcism6iHMkqAInall612xA1Ighn2tgg8Q9NJcIG0rltOIq+y98MRTOeb fsrg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=UnAR70TF; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id c25-20020aa7c759000000b0052318dbe3b0si6130558eds.345.2023.09.04.08.04.52; Mon, 04 Sep 2023 08:05:04 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=UnAR70TF; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5724A68C7A6; Mon, 4 Sep 2023 18:04:31 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oa1-f47.google.com (mail-oa1-f47.google.com [209.85.160.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 053D768C2DC for ; Mon, 4 Sep 2023 18:04:23 +0300 (EEST) Received: by mail-oa1-f47.google.com with SMTP id 586e51a60fabf-1ba5cda3530so1259210fac.3 for ; Mon, 04 Sep 2023 08:04:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1693839861; x=1694444661; darn=ffmpeg.org; 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=8imFGWktDw7krlAkP1wYOf7tVXWH/LLRlXFGxKjq8b8=; b=UnAR70TFuFo/QGY7N8NSyvnqTfjxl71FcUQJNviJ+QN5dlcXJy1HA0Qe3dXrcLnu4z XX3fMDFapHAm4IoKfBzXdTUioMjp82tR18KuukfK3YYVdayltZlaSQqb/lk4ilotvsS3 K8ooRksbh8ijGp00ZMbGe+sLMNsQyYvzrlVCBF1v6OOeeMpiPtfhI5BW83rRHATnlMcZ 5+INDsvnaBAq5U3v/mTO+O/Hn3w4LXzb0QjTA95okxYTSq0yieWeU3awakjYqVbyjBf/ gVMhoatFz1+Izr592EPCi/QlvMdRLQ60G5wR1yKS9ypDJ1/UhQ1AECeqLciyUPW1BgmO XRxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693839861; x=1694444661; 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=8imFGWktDw7krlAkP1wYOf7tVXWH/LLRlXFGxKjq8b8=; b=PfJ8SdiwbE5w2ryNkMMN0TCNCe1lr7FNY969kbla0vyZLEIRN7G/BiT4xq/wEm65kl yH5M5JYF8jJbnz+mIOhEqUzhIKq2WnEq78rVfIRU7eZf0frAjNjNUbVA98Fa0I/70dTf 9DrMdvoEJdwUsYZm87gfXSQMhSHayHz1qw6SLeXrtfmWe43xaKYjqXc3bazksfyjIcze N+uBmHD5UPHQKR/kuwx6Ozy7d8FWr65hwA+VtDuiUCklx2nFoAZeDf+kylxo0/F1NGo9 3ogDlQIeAZ/7Kdhd2C1zAo7nDnh5/hXqOnmc50fpyYWAEr32/7w+AcI05YK5TgYvj32X RKXg== X-Gm-Message-State: AOJu0Yx4In9o9y01O3R6vxr+tweanGVeVaNJS0FNBAhZuqrmlexsWRo3 v+G+QXmbX3QX9dIUZwp8yryDFOJPCwc= X-Received: by 2002:a05:6808:200f:b0:3a3:1424:7258 with SMTP id q15-20020a056808200f00b003a314247258mr14069068oiw.3.1693839861119; Mon, 04 Sep 2023 08:04:21 -0700 (PDT) Received: from localhost.localdomain (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id z14-20020a54458e000000b003a9cd23980esm4946286oib.8.2023.09.04.08.04.20 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Sep 2023 08:04:20 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Mon, 4 Sep 2023 12:03:55 -0300 Message-ID: <20230904150411.56777-3-jamrial@gmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20230904150411.56777-1-jamrial@gmail.com> References: <20230904150411.56777-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 02/17] avcodec/codec_par: add side data to AVCodecParameters 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: aYA0SRc8kBTg Signed-off-by: James Almer --- libavcodec/codec_par.c | 43 ++++++++++++++++++++++++++++++++++++++++++ libavcodec/codec_par.h | 6 ++++++ 2 files changed, 49 insertions(+) diff --git a/libavcodec/codec_par.c b/libavcodec/codec_par.c index a38a475dc7..a932323759 100644 --- a/libavcodec/codec_par.c +++ b/libavcodec/codec_par.c @@ -27,11 +27,13 @@ #include "libavutil/mem.h" #include "avcodec.h" #include "codec_par.h" +#include "packet.h" static void codec_parameters_reset(AVCodecParameters *par) { av_freep(&par->extradata); av_channel_layout_uninit(&par->ch_layout); + av_packet_side_data_set_free(&par->side_data); memset(par, 0, sizeof(*par)); @@ -72,6 +74,37 @@ void avcodec_parameters_free(AVCodecParameters **ppar) av_freep(ppar); } +static int codec_parameters_copy_side_data(AVPacketSideDataSet *dst, + const AVPacketSideDataSet *src) +{ + if (!src->nb_sd) + return 0; + + dst->nb_sd = 0; + dst->sd = av_calloc(src->nb_sd, sizeof(*dst->sd)); + if (!dst->sd) + return AVERROR(ENOMEM); + + for (int i = 0; i < src->nb_sd; i++) { + AVPacketSideData *sd = av_mallocz(sizeof(*sd)); + + if (!sd) + return AVERROR(ENOMEM); + + sd->data = av_memdup(src->sd[i]->data, src->sd[i]->size); + if (!sd->data) { + return AVERROR(ENOMEM); + av_free(sd); + } + + sd->type = src->sd[i]->type; + sd->size = src->sd[i]->size; + dst->sd[dst->nb_sd++] = sd; + } + + return 0; +} + int avcodec_parameters_copy(AVCodecParameters *dst, const AVCodecParameters *src) { int ret; @@ -89,6 +122,9 @@ int avcodec_parameters_copy(AVCodecParameters *dst, const AVCodecParameters *src memcpy(dst->extradata, src->extradata, src->extradata_size); dst->extradata_size = src->extradata_size; } + ret = codec_parameters_copy_side_data(&dst->side_data, &src->side_data); + if (ret < 0) + return ret; ret = av_channel_layout_copy(&dst->ch_layout, &src->ch_layout); if (ret < 0) @@ -177,6 +213,9 @@ FF_ENABLE_DEPRECATION_WARNINGS memcpy(par->extradata, codec->extradata, codec->extradata_size); par->extradata_size = codec->extradata_size; } + ret = codec_parameters_copy_side_data(&par->side_data, &codec->packet_side_data); + if (ret < 0) + return ret; return 0; } @@ -261,6 +300,10 @@ FF_ENABLE_DEPRECATION_WARNINGS memcpy(codec->extradata, par->extradata, par->extradata_size); codec->extradata_size = par->extradata_size; } + av_packet_side_data_set_free(&codec->packet_side_data); + ret = codec_parameters_copy_side_data(&codec->packet_side_data, &par->side_data); + if (ret < 0) + return ret; return 0; } diff --git a/libavcodec/codec_par.h b/libavcodec/codec_par.h index add90fdb1e..169e595b7c 100644 --- a/libavcodec/codec_par.h +++ b/libavcodec/codec_par.h @@ -29,6 +29,7 @@ #include "libavutil/pixfmt.h" #include "codec_id.h" +#include "packet.h" /** * @addtogroup lavc_core @@ -223,6 +224,11 @@ typedef struct AVCodecParameters { * when no higher-level timing information is available. */ AVRational framerate; + + /** + * Additional data associated with the entire stream. + */ + AVPacketSideDataSet side_data; } AVCodecParameters; /** From patchwork Mon Sep 4 15:03:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 43532 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4f16:b0:149:dfde:5c0a with SMTP id gi22csp1273017pzb; Mon, 4 Sep 2023 08:05:06 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFHopix+3Ti7A141SsvFky5T945UIUzVyV6NBxpio5MALfX7Vt6Vu4wRuzPK9bKTzvMyXXL X-Received: by 2002:a05:6512:114d:b0:500:b5db:990c with SMTP id m13-20020a056512114d00b00500b5db990cmr9240053lfg.57.1693839905637; Mon, 04 Sep 2023 08:05:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1693839905; cv=none; d=google.com; s=arc-20160816; b=eFp/4Hj/8dZ/ltcSwPiDj9g5O0+XeGkf/rQ55pM8ggkavXgJmcZSbqXd5K3zWWQPpY ZU4PSLL50GYccZTytQ1Dp3iCAIXeP5GLG/4IWOwmjRcEEvL9iiGNECBPMGtBN9zYwMmI /7VJmxiFazs019gpvJGu9U8QTMhM4sVq77QCaZr9ds19z16DJxLCiMbhnxM1VhX9pBtl Ign68PKP/S/7IqFdcaRujacCrTQpTDeY9Yg0dBrx6gky4slMJX6Ur3+mgFON7jFdLfym X+35BNyE196qsbUWPZl/PqC1dJ6C9Bc/iyWcNGO/EYkdn2DmowHCx7m5WoelJUkTeZMU p0ZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=pTT0LS1VRp+9PloeKlDQIy5AIfnk6ouvTAR7p4xFHmQ=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=XMxq20ycmQl6bFn1IkUvTLZiprtie0LJIZd9xMhOnYs4stjZDv+e+OAqPBeq0Nbs69 Dv83jkzkXfudrRtbvPQ0u4r/JLjxf1/TN49eNWHhZV6Y7TH02zmARHH1zoVYKsR64hV0 hueDmUkeQfRIMOElt0JbEu8dwF4e8f8cWAAV/MyiVoEZ1LMTdapQly7QY0DTflasPkO3 yFqnxljzA5FllsfFeXoQZfQ+eRzF+HgfOZbcZAHRwgb1gBFZQ1ojAI1vqd11f170ijAp /yJYhbaNks932tkwo6D6+9pIhQhgA3/0JAgnVZoj472SrBsxQpqym8SZ7qfngzxwcvVk zwZw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=qs7aZqby; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id t12-20020a05640203cc00b00523372ace05si6331719edw.530.2023.09.04.08.05.03; Mon, 04 Sep 2023 08:05:05 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=qs7aZqby; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6F33968C7BA; Mon, 4 Sep 2023 18:04:32 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oi1-f180.google.com (mail-oi1-f180.google.com [209.85.167.180]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A595C68C778 for ; Mon, 4 Sep 2023 18:04:25 +0300 (EEST) Received: by mail-oi1-f180.google.com with SMTP id 5614622812f47-3ab2436b57dso1183072b6e.0 for ; Mon, 04 Sep 2023 08:04:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1693839864; x=1694444664; darn=ffmpeg.org; 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=nuYui66UkHECAZvdd4utiHboH2gwzyfGk4050Sv/MtY=; b=qs7aZqbyUvTdkbMzw7adA1pyUBHTvoxSLu4XuSTpHBDo2a1BA7O1ZvIdRoZbOo/AZj dc7UzN3Lw+0Kp0QTHP5SZ5V93vFDy8CPOzW8Yn+bz6cO8MzosDJRHEZ1J9v0i542FvnM rO2I8VEC3JINwasi/05nVSYWToq8OqnxZsj+GSr/lEQNPEJBMAiLI5B0KU6OuEUoz3D6 Wpdp4fpjAUD7iNyLxpQ9aUQhbe/JqLw7JDA/LxyDd6rWcJD8dF4lCCxVJj6TFV/B0iiI +PfqpgNZyoVsH8GzoUPvRNhLPCRMoByuAZS4sBssvuAc38mEAyL5hDzvfscFMVkb/gOu aZww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693839864; x=1694444664; 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=nuYui66UkHECAZvdd4utiHboH2gwzyfGk4050Sv/MtY=; b=kW3i7FgkG5ecuGxRt2wV/WRc7am+MSSMwoJkIQ7oDVp+dvh67718zGGTVlgObfY2De YwHdEWoccTHdPwESLaR4xluZBjce0K7EkkVK3SPHjdTje/BWTLZjKSZ0UnOxo1ZBryZI Vu/Vw5KRqqQDL+f62h+dKKXwA7hDmKVK89KOSk2iFcgBrCJIu2JPUNgo6WJp1IaAMh8o VKt9jTne/fnr2IwdeglfPX5QKJbsAKkhCLlJip29HxASjBGJAuKzoJwgqu6p6AS9EPRm cXc5tYnSSUYnfK0d9Kk8G/fiOn/A1w6/yHl+zVw/y0sd+V5IJEQegtycKOT5wyhOAIhz qhxA== X-Gm-Message-State: AOJu0YzjkCSaqXMBVNvXFRxW4sUu2d7WHe6rOo72wuqypYFsZytc77pz eugvnC2KrUiwDvCMss4g2KO6pHlNGZA= X-Received: by 2002:a05:6808:2106:b0:3a7:5cc1:69b0 with SMTP id r6-20020a056808210600b003a75cc169b0mr13080255oiw.7.1693839862558; Mon, 04 Sep 2023 08:04:22 -0700 (PDT) Received: from localhost.localdomain (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id z14-20020a54458e000000b003a9cd23980esm4946286oib.8.2023.09.04.08.04.21 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Sep 2023 08:04:22 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Mon, 4 Sep 2023 12:03:56 -0300 Message-ID: <20230904150411.56777-4-jamrial@gmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20230904150411.56777-1-jamrial@gmail.com> References: <20230904150411.56777-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 03/17] avformat/avformat: use the side data from AVStream.codecpar 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: spN6XNkHpsNC Signed-off-by: James Almer --- libavdevice/android_camera.c | 9 ++-- libavformat/avformat.c | 42 ++++--------------- libavformat/avformat.h | 28 +++++++++++++ libavformat/concatdec.c | 1 - libavformat/dashdec.c | 11 ----- libavformat/demux.c | 40 +++++++++++++++--- libavformat/demux_utils.c | 4 ++ libavformat/dovi_isom.c | 8 ++-- libavformat/dump.c | 6 +-- libavformat/hls.c | 11 ----- libavformat/hlsenc.c | 11 ++--- libavformat/internal.h | 4 ++ libavformat/matroskadec.c | 45 ++++++++++---------- libavformat/matroskaenc.c | 48 ++++++++++++--------- libavformat/mov.c | 81 ++++++++++++++++++------------------ libavformat/movenc.c | 73 +++++++++++++++----------------- libavformat/mp3enc.c | 8 ++-- libavformat/mpegenc.c | 18 +++++--- libavformat/mpegts.c | 8 ++-- libavformat/mux.c | 19 +++++++++ libavformat/mxfdec.c | 22 +++++----- libavformat/mxfenc.c | 8 ++-- libavformat/options.c | 2 + libavformat/replaygain.c | 9 ++-- libavformat/seek.c | 2 + libavformat/version_major.h | 1 + 26 files changed, 283 insertions(+), 236 deletions(-) diff --git a/libavdevice/android_camera.c b/libavdevice/android_camera.c index 1934999c18..012b40aa37 100644 --- a/libavdevice/android_camera.c +++ b/libavdevice/android_camera.c @@ -638,7 +638,7 @@ static int wait_for_image_format(AVFormatContext *avctx) static int add_display_matrix(AVFormatContext *avctx, AVStream *st) { AndroidCameraCtx *ctx = avctx->priv_data; - uint8_t *side_data; + AVPacketSideData *side_data; int32_t display_matrix[9]; av_display_rotation_set(display_matrix, ctx->sensor_orientation); @@ -647,14 +647,15 @@ static int add_display_matrix(AVFormatContext *avctx, AVStream *st) av_display_matrix_flip(display_matrix, 1, 0); } - side_data = av_stream_new_side_data(st, - AV_PKT_DATA_DISPLAYMATRIX, sizeof(display_matrix)); + side_data = av_packet_side_data_set_new(&st->codecpar->side_data, + AV_PKT_DATA_DISPLAYMATRIX, + sizeof(display_matrix), 0); if (!side_data) { return AVERROR(ENOMEM); } - memcpy(side_data, display_matrix, sizeof(display_matrix)); + memcpy(side_data->data, display_matrix, sizeof(display_matrix)); return 0; } diff --git a/libavformat/avformat.c b/libavformat/avformat.c index 356b4de931..3afc5afd7f 100644 --- a/libavformat/avformat.c +++ b/libavformat/avformat.c @@ -46,9 +46,13 @@ void ff_free_stream(AVStream **pst) if (!st) return; +#if FF_API_AVSTREAM_SIDE_DATA +FF_DISABLE_DEPRECATION_WARNINGS for (int i = 0; i < st->nb_side_data; i++) av_freep(&st->side_data[i].data); av_freep(&st->side_data); +FF_ENABLE_DEPRECATION_WARNINGS +#endif if (st->attached_pic.data) av_packet_unref(&st->attached_pic); @@ -138,6 +142,8 @@ void avformat_free_context(AVFormatContext *s) av_free(s); } +#if FF_API_AVSTREAM_SIDE_DATA +FF_DISABLE_DEPRECATION_WARNINGS uint8_t *av_stream_get_side_data(const AVStream *st, enum AVPacketSideDataType type, size_t *size) { @@ -205,36 +211,8 @@ uint8_t *av_stream_new_side_data(AVStream *st, enum AVPacketSideDataType type, return data; } - -int ff_stream_side_data_copy(AVStream *dst, const AVStream *src) -{ - /* Free existing side data*/ - for (int i = 0; i < dst->nb_side_data; i++) - av_free(dst->side_data[i].data); - av_freep(&dst->side_data); - dst->nb_side_data = 0; - - /* Copy side data if present */ - if (src->nb_side_data) { - dst->side_data = av_calloc(src->nb_side_data, - sizeof(*dst->side_data)); - if (!dst->side_data) - return AVERROR(ENOMEM); - dst->nb_side_data = src->nb_side_data; - - for (int i = 0; i < src->nb_side_data; i++) { - uint8_t *data = av_memdup(src->side_data[i].data, - src->side_data[i].size); - if (!data) - return AVERROR(ENOMEM); - dst->side_data[i].type = src->side_data[i].type; - dst->side_data[i].size = src->side_data[i].size; - dst->side_data[i].data = data; - } - } - - return 0; -} +FF_ENABLE_DEPRECATION_WARNINGS +#endif /** * Copy all stream parameters from source to destination stream, with the @@ -270,10 +248,6 @@ static int stream_params_copy(AVStream *dst, const AVStream *src) if (ret < 0) return ret; - ret = ff_stream_side_data_copy(dst, src); - if (ret < 0) - return ret; - av_packet_unref(&dst->attached_pic); if (src->attached_pic.data) { ret = av_packet_ref(&dst->attached_pic, &src->attached_pic); diff --git a/libavformat/avformat.h b/libavformat/avformat.h index 1916aa2dc5..22769c3ba0 100644 --- a/libavformat/avformat.h +++ b/libavformat/avformat.h @@ -164,6 +164,12 @@ * decoding functions avcodec_send_packet() or avcodec_decode_subtitle2() if the * caller wishes to decode the data. * + * There may be no overlap between AVCodecParameters.side_data and side data in + * packets. I.e. a given side data is either exported by the demuxer in + * AVCodecParameters, then it never appears in the packets, or the side data is + * exported through the packets (always in the first packet where the value + * becomes known or changes), then it does not appear in AVCodecParameters. + * * AVPacket.pts, AVPacket.dts and AVPacket.duration timing information will be * set if known. They may also be unset (i.e. AV_NOPTS_VALUE for * pts/dts, 0 for duration) if the stream does not provide them. The timing @@ -209,6 +215,11 @@ * AVCodecParameters, rather than using @ref avcodec_parameters_copy() during * remuxing: there is no guarantee that the codec context values remain valid * for both input and output format contexts. + * - There may be no overlap between AVCodecParameters.side_data and side data in + * packets. I.e. a given side data is either set by the caller in + * AVCodecParameters, then it never appears in the packets, or the side data is + * sent through the packets (always in the first packet where the value becomes + * known or changes), then it does not appear in AVCodecParameters. * - The caller may fill in additional information, such as @ref * AVFormatContext.metadata "global" or @ref AVStream.metadata "per-stream" * metadata, @ref AVFormatContext.chapters "chapters", @ref @@ -937,6 +948,7 @@ typedef struct AVStream { */ AVPacket attached_pic; +#if FF_API_AVSTREAM_SIDE_DATA /** * An array of side data that applies to the whole stream (i.e. the * container does not allow it to change between packets). @@ -953,13 +965,20 @@ typedef struct AVStream { * * Freed by libavformat in avformat_free_context(). * + * @deprecated use AVStream's codecpar.side_data + * * @see av_format_inject_global_side_data() */ + attribute_deprecated AVPacketSideData *side_data; /** * The number of elements in the AVStream.side_data array. + * + * @deprecated use AVStream's codecpar.side_data */ + attribute_deprecated int nb_side_data; +#endif /** * Flags indicating events happening on the stream, a combination of @@ -1715,11 +1734,14 @@ typedef struct AVFormatContext { int (*io_close2)(struct AVFormatContext *s, AVIOContext *pb); } AVFormatContext; +#if FF_API_AVSTREAM_SIDE_DATA /** * This function will cause global side data to be injected in the next packet * of each stream as well as after any subsequent seek. */ +attribute_deprecated void av_format_inject_global_side_data(AVFormatContext *s); +#endif /** * Returns the method used to set ctx->duration. @@ -1856,7 +1878,9 @@ AVStream *avformat_new_stream(AVFormatContext *s, const AVCodec *c); * * @return zero on success, a negative AVERROR code on failure. On failure, * the stream is unchanged and the data remains owned by the caller. + * @deprecated use av_packet_side_data_set_add() and stream->codecpar->side_data */ +attribute_deprecated int av_stream_add_side_data(AVStream *st, enum AVPacketSideDataType type, uint8_t *data, size_t size); @@ -1868,7 +1892,9 @@ int av_stream_add_side_data(AVStream *st, enum AVPacketSideDataType type, * @param size side information size * * @return pointer to fresh allocated data or NULL otherwise + * @deprecated use av_packet_side_data_set_new() and stream->codecpar->side_data */ +attribute_deprecated uint8_t *av_stream_new_side_data(AVStream *stream, enum AVPacketSideDataType type, size_t size); /** @@ -1880,7 +1906,9 @@ uint8_t *av_stream_new_side_data(AVStream *stream, * or to zero if the desired side data is not present. * * @return pointer to data if present or NULL otherwise + * @deprecated use av_packet_side_data_set_get() and stream->codecpar->side_data */ +attribute_deprecated uint8_t *av_stream_get_side_data(const AVStream *stream, enum AVPacketSideDataType type, size_t *size); diff --git a/libavformat/concatdec.c b/libavformat/concatdec.c index 5d4f67d0ac..2aeb4f1dfd 100644 --- a/libavformat/concatdec.c +++ b/libavformat/concatdec.c @@ -194,7 +194,6 @@ static int copy_stream_props(AVStream *st, AVStream *source_st) avpriv_set_pts_info(st, 64, source_st->time_base.num, source_st->time_base.den); av_dict_copy(&st->metadata, source_st->metadata, 0); - ff_stream_side_data_copy(st, source_st); return 0; } diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c index 29d4680c68..2441087606 100644 --- a/libavformat/dashdec.c +++ b/libavformat/dashdec.c @@ -1952,17 +1952,6 @@ static int open_demux_for_component(AVFormatContext *s, struct representation *p // copy disposition st->disposition = ist->disposition; - - // copy side data - for (int i = 0; i < ist->nb_side_data; i++) { - const AVPacketSideData *sd_src = &ist->side_data[i]; - uint8_t *dst_data; - - dst_data = av_stream_new_side_data(st, sd_src->type, sd_src->size); - if (!dst_data) - return AVERROR(ENOMEM); - memcpy(dst_data, sd_src->data, sd_src->size); - } } return 0; diff --git a/libavformat/demux.c b/libavformat/demux.c index b218f64574..553933a2b0 100644 --- a/libavformat/demux.c +++ b/libavformat/demux.c @@ -1409,9 +1409,10 @@ FF_ENABLE_DEPRECATION_WARNINGS sti->skip_samples = 0; } +#if FF_API_AVSTREAM_SIDE_DATA if (sti->inject_global_side_data) { - for (int i = 0; i < st->nb_side_data; i++) { - const AVPacketSideData *const src_sd = &st->side_data[i]; + for (int i = 0; i < st->codecpar->side_data.nb_sd; i++) { + const AVPacketSideData *const src_sd = st->codecpar->side_data.sd[i]; uint8_t *dst_data; if (av_packet_get_side_data(pkt, src_sd->type, NULL)) @@ -1427,6 +1428,7 @@ FF_ENABLE_DEPRECATION_WARNINGS } sti->inject_global_side_data = 0; } +#endif } if (!si->metafree) { @@ -2435,11 +2437,11 @@ static int add_coded_side_data(AVStream *st, AVCodecContext *avctx) { for (int i = 0; i < avctx->nb_coded_side_data; i++) { const AVPacketSideData *const sd_src = &avctx->coded_side_data[i]; - uint8_t *dst_data; - dst_data = av_stream_new_side_data(st, sd_src->type, sd_src->size); - if (!dst_data) + AVPacketSideData *sd_dst = av_packet_side_data_set_new(&st->codecpar->side_data, + sd_src->type, sd_src->size, 0); + if (!sd_dst) return AVERROR(ENOMEM); - memcpy(dst_data, sd_src->data, sd_src->size); + memcpy(sd_dst->data, sd_src->data, sd_src->size); } return 0; } @@ -2976,6 +2978,32 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options) goto find_stream_info_err; } +#if FF_API_AVSTREAM_SIDE_DATA +FF_DISABLE_DEPRECATION_WARNINGS + if (st->codecpar->side_data.nb_sd > 0) { + av_assert0(!st->side_data && !st->nb_side_data); + st->side_data = av_calloc(st->codecpar->side_data.nb_sd, + sizeof(*st->side_data)); + if (!st->side_data) { + ret = AVERROR(ENOMEM); + goto find_stream_info_err; + } + + for (int i = 0; i < st->codecpar->side_data.nb_sd; i++) { + uint8_t *data = av_memdup(st->codecpar->side_data.sd[i]->data, + st->codecpar->side_data.sd[i]->size); + if (!data) { + ret = AVERROR(ENOMEM); + goto find_stream_info_err; + } + st->side_data[i].type = st->codecpar->side_data.sd[i]->type; + st->side_data[i].size = st->codecpar->side_data.sd[i]->size; + st->side_data[i].data = data; + st->nb_side_data++; + } + } +FF_ENABLE_DEPRECATION_WARNINGS +#endif sti->avctx_inited = 0; } diff --git a/libavformat/demux_utils.c b/libavformat/demux_utils.c index 56cc6e15d8..2946e82295 100644 --- a/libavformat/demux_utils.c +++ b/libavformat/demux_utils.c @@ -80,6 +80,8 @@ AVChapter *avpriv_new_chapter(AVFormatContext *s, int64_t id, AVRational time_ba return chapter; } +#if FF_API_AVSTREAM_SIDE_DATA +FF_DISABLE_DEPRECATION_WARNINGS void av_format_inject_global_side_data(AVFormatContext *s) { FFFormatContext *const si = ffformatcontext(s); @@ -89,6 +91,8 @@ void av_format_inject_global_side_data(AVFormatContext *s) ffstream(st)->inject_global_side_data = 1; } } +FF_ENABLE_DEPRECATION_WARNINGS +#endif int avformat_queue_attached_pictures(AVFormatContext *s) { diff --git a/libavformat/dovi_isom.c b/libavformat/dovi_isom.c index c8fdf566e4..8d03d0e632 100644 --- a/libavformat/dovi_isom.c +++ b/libavformat/dovi_isom.c @@ -34,7 +34,6 @@ int ff_isom_parse_dvcc_dvvc(void *logctx, AVStream *st, uint32_t buf; AVDOVIDecoderConfigurationRecord *dovi; size_t dovi_size; - int ret; if (size > (1 << 30) || size < 4) return AVERROR_INVALIDDATA; @@ -64,11 +63,10 @@ int ff_isom_parse_dvcc_dvvc(void *logctx, AVStream *st, dovi->dv_bl_signal_compatibility_id = 0; } - ret = av_stream_add_side_data(st, AV_PKT_DATA_DOVI_CONF, - (uint8_t *)dovi, dovi_size); - if (ret < 0) { + if (!av_packet_side_data_set_add(&st->codecpar->side_data, AV_PKT_DATA_DOVI_CONF, + (uint8_t *)dovi, dovi_size, 0)) { av_free(dovi); - return ret; + return AVERROR(ENOMEM); } av_log(logctx, AV_LOG_TRACE, "DOVI in dvcC/dvvC/dvwC box, version: %d.%d, profile: %d, level: %d, " diff --git a/libavformat/dump.c b/libavformat/dump.c index d31e4c2ec6..d6f32f0c68 100644 --- a/libavformat/dump.c +++ b/libavformat/dump.c @@ -431,11 +431,11 @@ static void dump_sidedata(void *ctx, const AVStream *st, const char *indent) { int i; - if (st->nb_side_data) + if (st->codecpar->side_data.nb_sd) av_log(ctx, AV_LOG_INFO, "%sSide data:\n", indent); - for (i = 0; i < st->nb_side_data; i++) { - const AVPacketSideData *sd = &st->side_data[i]; + for (i = 0; i < st->codecpar->side_data.nb_sd; i++) { + const AVPacketSideData *sd = st->codecpar->side_data.sd[i]; av_log(ctx, AV_LOG_INFO, "%s ", indent); switch (sd->type) { diff --git a/libavformat/hls.c b/libavformat/hls.c index c625e30291..8f80cf64f4 100644 --- a/libavformat/hls.c +++ b/libavformat/hls.c @@ -1851,17 +1851,6 @@ static int set_stream_info_from_input_stream(AVStream *st, struct playlist *pls, av_dict_copy(&st->metadata, ist->metadata, 0); - // copy side data - for (int i = 0; i < ist->nb_side_data; i++) { - const AVPacketSideData *sd_src = &ist->side_data[i]; - uint8_t *dst_data; - - dst_data = av_stream_new_side_data(st, sd_src->type, sd_src->size); - if (!dst_data) - return AVERROR(ENOMEM); - memcpy(dst_data, sd_src->data, sd_src->size); - } - ffstream(st)->need_context_update = 1; return 0; diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c index 27d97f5f72..fcc875e236 100644 --- a/libavformat/hlsenc.c +++ b/libavformat/hlsenc.c @@ -1351,16 +1351,17 @@ static const char* get_relative_url(const char *master_url, const char *media_ur static int64_t get_stream_bit_rate(AVStream *stream) { - AVCPBProperties *props = (AVCPBProperties*)av_stream_get_side_data( - stream, - AV_PKT_DATA_CPB_PROPERTIES, - NULL + AVPacketSideData *sd = av_packet_side_data_set_get( + &stream->codecpar->side_data, + AV_PKT_DATA_CPB_PROPERTIES ); if (stream->codecpar->bit_rate) return stream->codecpar->bit_rate; - else if (props) + else if (sd) { + AVCPBProperties *props = (AVCPBProperties*)sd->data; return props->max_bitrate; + } return 0; } diff --git a/libavformat/internal.h b/libavformat/internal.h index 53e70ccb53..399ec16ded 100644 --- a/libavformat/internal.h +++ b/libavformat/internal.h @@ -147,7 +147,9 @@ typedef struct FFFormatContext { int missing_ts_warning; #endif +#if FF_API_AVSTREAM_SIDE_DATA int inject_global_side_data; +#endif int avoid_negative_ts_use_pts; @@ -354,10 +356,12 @@ typedef struct FFStream { uint8_t dts_ordered; uint8_t dts_misordered; +#if FF_API_AVSTREAM_SIDE_DATA /** * Internal data to inject global side data */ int inject_global_side_data; +#endif /** * display aspect ratio (0 if unknown) diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index fda77b0b89..20eb75bb6d 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -2175,7 +2175,6 @@ static int mkv_stereo3d_conv(AVStream *st, MatroskaVideoStereoModeType stereo_mo STEREOMODE_STEREO3D_MAPPING(STEREO_MODE_CONV, NOTHING) }; AVStereo3D *stereo; - int ret; stereo = av_stereo3d_alloc(); if (!stereo) @@ -2184,11 +2183,10 @@ static int mkv_stereo3d_conv(AVStream *st, MatroskaVideoStereoModeType stereo_mo stereo->type = stereo_mode_conv[stereo_mode].type; stereo->flags = stereo_mode_conv[stereo_mode].flags; - ret = av_stream_add_side_data(st, AV_PKT_DATA_STEREO3D, (uint8_t *)stereo, - sizeof(*stereo)); - if (ret < 0) { + if (!av_packet_side_data_set_add(&st->codecpar->side_data, AV_PKT_DATA_STEREO3D, + (uint8_t *)stereo, sizeof(*stereo), 0)) { av_freep(&stereo); - return ret; + return AVERROR(ENOMEM); } return 0; @@ -2235,28 +2233,26 @@ static int mkv_parse_video_color(AVStream *st, const MatroskaTrack *track) { } if (color->max_cll && color->max_fall) { size_t size = 0; - int ret; AVContentLightMetadata *metadata = av_content_light_metadata_alloc(&size); if (!metadata) return AVERROR(ENOMEM); - ret = av_stream_add_side_data(st, AV_PKT_DATA_CONTENT_LIGHT_LEVEL, - (uint8_t *)metadata, size); - if (ret < 0) { + if (!av_packet_side_data_set_add(&st->codecpar->side_data, AV_PKT_DATA_CONTENT_LIGHT_LEVEL, + (uint8_t *)metadata, size, 0)) { av_freep(&metadata); - return ret; + return AVERROR(ENOMEM); } metadata->MaxCLL = color->max_cll; metadata->MaxFALL = color->max_fall; } if (has_mastering_primaries || has_mastering_luminance) { - AVMasteringDisplayMetadata *metadata = - (AVMasteringDisplayMetadata*) av_stream_new_side_data( - st, AV_PKT_DATA_MASTERING_DISPLAY_METADATA, - sizeof(AVMasteringDisplayMetadata)); - if (!metadata) { + AVMasteringDisplayMetadata *metadata; + AVPacketSideData *sd = av_packet_side_data_set_new(&st->codecpar->side_data, + AV_PKT_DATA_MASTERING_DISPLAY_METADATA, + sizeof(AVMasteringDisplayMetadata), 0); + if (!sd) return AVERROR(ENOMEM); - } + metadata = (AVMasteringDisplayMetadata*)sd->data; memset(metadata, 0, sizeof(AVMasteringDisplayMetadata)); if (has_mastering_primaries) { metadata->display_primaries[0][0] = av_d2q(mastering_meta->r_x, INT_MAX); @@ -2282,6 +2278,7 @@ static int mkv_create_display_matrix(AVStream *st, const MatroskaTrackVideoProjection *proj, void *logctx) { + AVPacketSideData *sd; double pitch = proj->pitch, yaw = proj->yaw, roll = proj->roll; int32_t *matrix; int hflip; @@ -2298,10 +2295,12 @@ static int mkv_create_display_matrix(AVStream *st, st->index, yaw, pitch, roll); return 0; } - matrix = (int32_t*)av_stream_new_side_data(st, AV_PKT_DATA_DISPLAYMATRIX, - 9 * sizeof(*matrix)); - if (!matrix) + sd = av_packet_side_data_set_new(&st->codecpar->side_data, + AV_PKT_DATA_DISPLAYMATRIX, + 9 * sizeof(*matrix), 0); + if (!sd) return AVERROR(ENOMEM); + matrix = (int32_t*)sd->data; hflip = yaw != 0.0; /* ProjectionPoseRoll is in the counter-clockwise direction @@ -2326,7 +2325,6 @@ static int mkv_parse_video_projection(AVStream *st, const MatroskaTrack *track, size_t spherical_size; uint32_t l = 0, t = 0, r = 0, b = 0; uint32_t padding = 0; - int ret; if (mkv_projection->private.size && priv_data[0] != 0) { av_log(logctx, AV_LOG_WARNING, "Unknown spherical metadata\n"); @@ -2402,11 +2400,10 @@ static int mkv_parse_video_projection(AVStream *st, const MatroskaTrack *track, spherical->bound_right = r; spherical->bound_bottom = b; - ret = av_stream_add_side_data(st, AV_PKT_DATA_SPHERICAL, (uint8_t *)spherical, - spherical_size); - if (ret < 0) { + if (!av_packet_side_data_set_add(&st->codecpar->side_data, AV_PKT_DATA_SPHERICAL, + (uint8_t *)spherical, spherical_size, 0)) { av_freep(&spherical); - return ret; + return AVERROR(ENOMEM); } return 0; diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index bf2ca7106b..b188b74e82 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -1327,7 +1327,7 @@ fail: static void mkv_write_video_color(EbmlWriter *writer, const AVStream *st, const AVCodecParameters *par) { - const void *side_data; + const AVPacketSideData *side_data; ebml_writer_open_master(writer, MATROSKA_ID_VIDEOCOLOR); @@ -1361,20 +1361,18 @@ static void mkv_write_video_color(EbmlWriter *writer, const AVStream *st, (ypos >> 7) + 1); } - side_data = av_stream_get_side_data(st, AV_PKT_DATA_CONTENT_LIGHT_LEVEL, - NULL); + side_data = av_packet_side_data_set_get(&st->codecpar->side_data, AV_PKT_DATA_CONTENT_LIGHT_LEVEL); if (side_data) { - const AVContentLightMetadata *metadata = side_data; + const AVContentLightMetadata *metadata = (AVContentLightMetadata *)side_data->data; ebml_writer_add_uint(writer, MATROSKA_ID_VIDEOCOLORMAXCLL, metadata->MaxCLL); ebml_writer_add_uint(writer, MATROSKA_ID_VIDEOCOLORMAXFALL, metadata->MaxFALL); } - side_data = av_stream_get_side_data(st, AV_PKT_DATA_MASTERING_DISPLAY_METADATA, - NULL); + side_data = av_packet_side_data_set_get(&st->codecpar->side_data, AV_PKT_DATA_MASTERING_DISPLAY_METADATA); if (side_data) { - const AVMasteringDisplayMetadata *metadata = side_data; + const AVMasteringDisplayMetadata *metadata = (AVMasteringDisplayMetadata *)side_data->data; ebml_writer_open_master(writer, MATROSKA_ID_VIDEOCOLORMASTERINGMETA); if (metadata->has_primaries) { ebml_writer_add_float(writer, MATROSKA_ID_VIDEOCOLOR_RX, @@ -1410,12 +1408,15 @@ static void mkv_write_video_color(EbmlWriter *writer, const AVStream *st, static void mkv_handle_rotation(void *logctx, const AVStream *st, double *yaw, double *roll) { - const int32_t *matrix = - (const int32_t*)av_stream_get_side_data(st, AV_PKT_DATA_DISPLAYMATRIX, NULL); + const int32_t *matrix; + const AVPacketSideData *side_data = + av_packet_side_data_set_get(&st->codecpar->side_data, AV_PKT_DATA_DISPLAYMATRIX); - if (!matrix) + if (!side_data) return; + matrix = (int32_t *)side_data->data; + /* Check whether this is an affine transformation */ if (matrix[2] || matrix[5]) goto ignore; @@ -1462,13 +1463,13 @@ static int mkv_handle_spherical(void *logctx, EbmlWriter *writer, const AVStream *st, uint8_t private[], double *yaw, double *pitch, double *roll) { - const AVSphericalMapping *spherical = - (const AVSphericalMapping *)av_stream_get_side_data(st, AV_PKT_DATA_SPHERICAL, - NULL); + AVPacketSideData *sd = av_packet_side_data_set_get(&st->codecpar->side_data, AV_PKT_DATA_SPHERICAL); + const AVSphericalMapping *spherical; - if (!spherical) + if (!sd) return 0; + spherical = (const AVSphericalMapping *)sd->data; if (spherical->projection != AV_SPHERICAL_EQUIRECTANGULAR && spherical->projection != AV_SPHERICAL_EQUIRECTANGULAR_TILE && spherical->projection != AV_SPHERICAL_CUBEMAP) { @@ -1628,6 +1629,7 @@ static int mkv_write_stereo_mode(AVFormatContext *s, EbmlWriter *writer, format = stereo_mode; } } else { + AVPacketSideData *sd; const AVStereo3D *stereo; /* The following macro presumes all MATROSKA_VIDEO_STEREOMODE_TYPE_* * values to be in the range 0..254. */ @@ -1639,11 +1641,12 @@ static int mkv_write_stereo_mode(AVFormatContext *s, EbmlWriter *writer, }; int fmt; - stereo = (const AVStereo3D*)av_stream_get_side_data(st, AV_PKT_DATA_STEREO3D, - NULL); - if (!stereo) + sd = av_packet_side_data_set_get(&st->codecpar->side_data, AV_PKT_DATA_STEREO3D); + if (!sd) return 0; + stereo = (const AVStereo3D*)sd->data; + /* A garbage AVStereo3D or something with no Matroska analogon. */ if ((unsigned)stereo->type >= FF_ARRAY_ELEMS(conversion_table)) return 0; @@ -1681,6 +1684,7 @@ static void mkv_write_blockadditionmapping(AVFormatContext *s, const MatroskaMux { #if CONFIG_MATROSKA_MUXER const AVDOVIDecoderConfigurationRecord *dovi; + const AVPacketSideData *sd; if (IS_SEEKABLE(s->pb, mkv)) { track->blockadditionmapping_offset = avio_tell(pb); @@ -1697,9 +1701,13 @@ static void mkv_write_blockadditionmapping(AVFormatContext *s, const MatroskaMux } } - dovi = (const AVDOVIDecoderConfigurationRecord *) - av_stream_get_side_data(st, AV_PKT_DATA_DOVI_CONF, NULL); - if (dovi && dovi->dv_profile <= 10) { + sd = av_packet_side_data_set_get(&st->codecpar->side_data, AV_PKT_DATA_DOVI_CONF); + + if (!sd) + return; + + dovi = (const AVDOVIDecoderConfigurationRecord *)sd->data; + if (dovi->dv_profile <= 10) { ebml_master mapping; uint8_t buf[ISOM_DVCC_DVVC_SIZE]; uint32_t type; diff --git a/libavformat/mov.c b/libavformat/mov.c index be9975f297..a08b6c77ee 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -799,6 +799,7 @@ static int mov_read_esds(MOVContext *c, AVIOContext *pb, MOVAtom atom) static int mov_read_dac3(MOVContext *c, AVIOContext *pb, MOVAtom atom) { AVStream *st; + AVPacketSideData *sd; enum AVAudioServiceType *ast; int ac3info, acmod, lfeon, bsmod; uint64_t mask; @@ -807,11 +808,13 @@ static int mov_read_dac3(MOVContext *c, AVIOContext *pb, MOVAtom atom) return 0; st = c->fc->streams[c->fc->nb_streams-1]; - ast = (enum AVAudioServiceType*)av_stream_new_side_data(st, AV_PKT_DATA_AUDIO_SERVICE_TYPE, - sizeof(*ast)); - if (!ast) + sd = av_packet_side_data_set_new(&st->codecpar->side_data, + AV_PKT_DATA_AUDIO_SERVICE_TYPE, + sizeof(*ast), 0); + if (!sd) return AVERROR(ENOMEM); + ast = (enum AVAudioServiceType*)sd->data; ac3info = avio_rb24(pb); bsmod = (ac3info >> 14) & 0x7; acmod = (ac3info >> 11) & 0x7; @@ -833,6 +836,7 @@ static int mov_read_dac3(MOVContext *c, AVIOContext *pb, MOVAtom atom) static int mov_read_dec3(MOVContext *c, AVIOContext *pb, MOVAtom atom) { AVStream *st; + AVPacketSideData *sd; enum AVAudioServiceType *ast; int eac3info, acmod, lfeon, bsmod; uint64_t mask; @@ -841,11 +845,14 @@ static int mov_read_dec3(MOVContext *c, AVIOContext *pb, MOVAtom atom) return 0; st = c->fc->streams[c->fc->nb_streams-1]; - ast = (enum AVAudioServiceType*)av_stream_new_side_data(st, AV_PKT_DATA_AUDIO_SERVICE_TYPE, - sizeof(*ast)); - if (!ast) + sd = av_packet_side_data_set_new(&st->codecpar->side_data, + AV_PKT_DATA_AUDIO_SERVICE_TYPE, + sizeof(*ast), 0); + if (!sd) return AVERROR(ENOMEM); + ast = (enum AVAudioServiceType*)sd->data; + /* No need to parse fields for additional independent substreams and its * associated dependent substreams since libavcodec's E-AC-3 decoder * does not support them yet. */ @@ -1747,7 +1754,6 @@ static int mov_read_pcmc(MOVContext *c, AVIOContext *pb, MOVAtom atom) static int mov_read_colr(MOVContext *c, AVIOContext *pb, MOVAtom atom) { AVStream *st; - uint8_t *icc_profile; char color_parameter_type[5] = { 0 }; uint16_t color_primaries, color_trc, color_matrix; int ret; @@ -1768,10 +1774,12 @@ static int mov_read_colr(MOVContext *c, AVIOContext *pb, MOVAtom atom) } if (!strncmp(color_parameter_type, "prof", 4)) { - icc_profile = av_stream_new_side_data(st, AV_PKT_DATA_ICC_PROFILE, atom.size - 4); - if (!icc_profile) + AVPacketSideData *sd = av_packet_side_data_set_new(&st->codecpar->side_data, + AV_PKT_DATA_ICC_PROFILE, + atom.size - 4, 0); + if (!sd) return AVERROR(ENOMEM); - ret = ffio_read_size(pb, icc_profile, atom.size - 4); + ret = ffio_read_size(pb, sd->data, atom.size - 4); if (ret < 0) return ret; } else { @@ -6838,8 +6846,9 @@ static int mov_read_pssh(MOVContext *c, AVIOContext *pb, MOVAtom atom) AVEncryptionInitInfo *info, *old_init_info; uint8_t **key_ids; AVStream *st; - uint8_t *side_data, *extra_data, *old_side_data; - size_t side_data_size, old_side_data_size; + AVPacketSideData *old_side_data; + uint8_t *side_data, *extra_data; + size_t side_data_size; int ret = 0; unsigned int version, kid_count, extra_data_size, alloc_size = 0; @@ -6917,9 +6926,9 @@ static int mov_read_pssh(MOVContext *c, AVIOContext *pb, MOVAtom atom) info->data_size = extra_data_size; // If there is existing initialization data, append to the list. - old_side_data = av_stream_get_side_data(st, AV_PKT_DATA_ENCRYPTION_INIT_INFO, &old_side_data_size); + old_side_data = av_packet_side_data_set_get(&st->codecpar->side_data, AV_PKT_DATA_ENCRYPTION_INIT_INFO); if (old_side_data) { - old_init_info = av_encryption_init_info_get_side_data(old_side_data, old_side_data_size); + old_init_info = av_encryption_init_info_get_side_data(old_side_data->data, old_side_data->size); if (old_init_info) { // Append to the end of the list. for (AVEncryptionInitInfo *cur = old_init_info;; cur = cur->next) { @@ -6941,9 +6950,8 @@ static int mov_read_pssh(MOVContext *c, AVIOContext *pb, MOVAtom atom) ret = AVERROR(ENOMEM); goto finish; } - ret = av_stream_add_side_data(st, AV_PKT_DATA_ENCRYPTION_INIT_INFO, - side_data, side_data_size); - if (ret < 0) + if (!av_packet_side_data_set_add(&st->codecpar->side_data, AV_PKT_DATA_ENCRYPTION_INIT_INFO, + side_data, side_data_size, 0)) av_free(side_data); finish: @@ -8720,46 +8728,37 @@ static int mov_read_header(AVFormatContext *s) break; case AVMEDIA_TYPE_VIDEO: if (sc->display_matrix) { - err = av_stream_add_side_data(st, AV_PKT_DATA_DISPLAYMATRIX, (uint8_t*)sc->display_matrix, - sizeof(int32_t) * 9); - if (err < 0) - return err; + if (!av_packet_side_data_set_add(&st->codecpar->side_data, AV_PKT_DATA_DISPLAYMATRIX, + (uint8_t*)sc->display_matrix, sizeof(int32_t) * 9, 0)) + return AVERROR(ENOMEM); sc->display_matrix = NULL; } if (sc->stereo3d) { - err = av_stream_add_side_data(st, AV_PKT_DATA_STEREO3D, - (uint8_t *)sc->stereo3d, - sizeof(*sc->stereo3d)); - if (err < 0) - return err; + if (!av_packet_side_data_set_add(&st->codecpar->side_data, AV_PKT_DATA_STEREO3D, + (uint8_t *)sc->stereo3d, sizeof(*sc->stereo3d), 0)) + return AVERROR(ENOMEM); sc->stereo3d = NULL; } if (sc->spherical) { - err = av_stream_add_side_data(st, AV_PKT_DATA_SPHERICAL, - (uint8_t *)sc->spherical, - sc->spherical_size); - if (err < 0) - return err; + if (!av_packet_side_data_set_add(&st->codecpar->side_data, AV_PKT_DATA_SPHERICAL, + (uint8_t *)sc->spherical, sc->spherical_size, 0)) + return AVERROR(ENOMEM); sc->spherical = NULL; } if (sc->mastering) { - err = av_stream_add_side_data(st, AV_PKT_DATA_MASTERING_DISPLAY_METADATA, - (uint8_t *)sc->mastering, - sizeof(*sc->mastering)); - if (err < 0) - return err; + if (!av_packet_side_data_set_add(&st->codecpar->side_data, AV_PKT_DATA_MASTERING_DISPLAY_METADATA, + (uint8_t *)sc->mastering, sizeof(*sc->mastering), 0)) + return AVERROR(ENOMEM); sc->mastering = NULL; } if (sc->coll) { - err = av_stream_add_side_data(st, AV_PKT_DATA_CONTENT_LIGHT_LEVEL, - (uint8_t *)sc->coll, - sc->coll_size); - if (err < 0) - return err; + if (!av_packet_side_data_set_add(&st->codecpar->side_data, AV_PKT_DATA_CONTENT_LIGHT_LEVEL, + (uint8_t *)sc->coll, sc->coll_size, 0)) + return AVERROR(ENOMEM); sc->coll = NULL; } diff --git a/libavformat/movenc.c b/libavformat/movenc.c index 696ae5a6c9..66efed0363 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -672,11 +672,11 @@ struct mpeg4_bit_rate_values { static struct mpeg4_bit_rate_values calculate_mpeg4_bit_rates(MOVTrack *track) { - AVCPBProperties *props = track->st ? - (AVCPBProperties*)av_stream_get_side_data(track->st, - AV_PKT_DATA_CPB_PROPERTIES, - NULL) : + AVPacketSideData *sd = track->st ? + av_packet_side_data_set_get(&track->st->codecpar->side_data, + AV_PKT_DATA_CPB_PROPERTIES) : NULL; + AVCPBProperties *props = sd ? (AVCPBProperties *)sd->data : NULL; struct mpeg4_bit_rate_values bit_rates = { 0 }; bit_rates.avg_bit_rate = compute_avg_bitrate(track); @@ -2129,18 +2129,16 @@ static int mov_write_colr_tag(AVIOContext *pb, MOVTrack *track, int prefer_icc) // Ref (MOV): https://developer.apple.com/library/mac/technotes/tn2162/_index.html#//apple_ref/doc/uid/DTS40013070-CH1-TNTAG9 // Ref (MP4): ISO/IEC 14496-12:2012 - const uint8_t *icc_profile; - size_t icc_profile_size; - if (prefer_icc) { - icc_profile = av_stream_get_side_data(track->st, AV_PKT_DATA_ICC_PROFILE, &icc_profile_size); + AVPacketSideData *sd = av_packet_side_data_set_get(&track->st->codecpar->side_data, + AV_PKT_DATA_ICC_PROFILE); - if (icc_profile) { - avio_wb32(pb, 12 + icc_profile_size); + if (sd) { + avio_wb32(pb, 12 + sd->size); ffio_wfourcc(pb, "colr"); ffio_wfourcc(pb, "prof"); - avio_write(pb, icc_profile, icc_profile_size); - return 12 + icc_profile_size; + avio_write(pb, sd->data, sd->size); + return 12 + sd->size; } else { av_log(NULL, AV_LOG_INFO, "no ICC profile found, will write nclx/nclc colour info instead\n"); @@ -2173,14 +2171,14 @@ static int mov_write_colr_tag(AVIOContext *pb, MOVTrack *track, int prefer_icc) static int mov_write_clli_tag(AVIOContext *pb, MOVTrack *track) { - const uint8_t *side_data; + const AVPacketSideData *side_data; const AVContentLightMetadata *content_light_metadata; - side_data = av_stream_get_side_data(track->st, AV_PKT_DATA_CONTENT_LIGHT_LEVEL, NULL); + side_data = av_packet_side_data_set_get(&track->st->codecpar->side_data, AV_PKT_DATA_CONTENT_LIGHT_LEVEL); if (!side_data) { return 0; } - content_light_metadata = (const AVContentLightMetadata*)side_data; + content_light_metadata = (const AVContentLightMetadata*)side_data->data; avio_wb32(pb, 12); // size ffio_wfourcc(pb, "clli"); @@ -2198,11 +2196,12 @@ static int mov_write_mdcv_tag(AVIOContext *pb, MOVTrack *track) { const int chroma_den = 50000; const int luma_den = 10000; - const uint8_t *side_data; - const AVMasteringDisplayMetadata *metadata; + const AVPacketSideData *side_data; + const AVMasteringDisplayMetadata *metadata = NULL; - side_data = av_stream_get_side_data(track->st, AV_PKT_DATA_MASTERING_DISPLAY_METADATA, NULL); - metadata = (const AVMasteringDisplayMetadata*)side_data; + side_data = av_packet_side_data_set_get(&track->st->codecpar->side_data, AV_PKT_DATA_MASTERING_DISPLAY_METADATA); + if (side_data) + metadata = (const AVMasteringDisplayMetadata*)side_data->data; if (!metadata || !metadata->has_primaries || !metadata->has_luminance) { return 0; } @@ -2421,7 +2420,7 @@ static int mov_write_video_tag(AVFormatContext *s, AVIOContext *pb, MOVMuxContex track->par->color_trc != AVCOL_TRC_UNSPECIFIED && track->par->color_space != AVCOL_SPC_UNSPECIFIED; if (has_color_info || mov->flags & FF_MOV_FLAG_WRITE_COLR || - av_stream_get_side_data(track->st, AV_PKT_DATA_ICC_PROFILE, NULL)) { + av_packet_side_data_set_get(&track->st->codecpar->side_data, AV_PKT_DATA_ICC_PROFILE)) { int prefer_icc = mov->flags & FF_MOV_FLAG_PREFER_ICC || !has_color_info; mov_write_colr_tag(pb, track, prefer_icc); } @@ -2435,17 +2434,16 @@ static int mov_write_video_tag(AVFormatContext *s, AVIOContext *pb, MOVMuxContex } if (track->mode == MODE_MP4 && mov->fc->strict_std_compliance <= FF_COMPLIANCE_UNOFFICIAL) { - AVStereo3D* stereo_3d = (AVStereo3D*) av_stream_get_side_data(track->st, AV_PKT_DATA_STEREO3D, NULL); - AVSphericalMapping* spherical_mapping = (AVSphericalMapping*)av_stream_get_side_data(track->st, AV_PKT_DATA_SPHERICAL, NULL); - AVDOVIDecoderConfigurationRecord *dovi = (AVDOVIDecoderConfigurationRecord *) - av_stream_get_side_data(track->st, AV_PKT_DATA_DOVI_CONF, NULL); + AVPacketSideData *stereo_3d = av_packet_side_data_set_get(&track->st->codecpar->side_data, AV_PKT_DATA_STEREO3D); + AVPacketSideData *spherical_mapping = av_packet_side_data_set_get(&track->st->codecpar->side_data, AV_PKT_DATA_SPHERICAL); + AVPacketSideData *dovi = av_packet_side_data_set_get(&track->st->codecpar->side_data, AV_PKT_DATA_DOVI_CONF); if (stereo_3d) - mov_write_st3d_tag(s, pb, stereo_3d); + mov_write_st3d_tag(s, pb, (AVStereo3D*)stereo_3d->data); if (spherical_mapping) - mov_write_sv3d_tag(mov->fc, pb, spherical_mapping); + mov_write_sv3d_tag(mov->fc, pb, (AVSphericalMapping*)spherical_mapping->data); if (dovi) - mov_write_dvcc_dvvc_tag(s, pb, dovi); + mov_write_dvcc_dvvc_tag(s, pb, (AVDOVIDecoderConfigurationRecord *)dovi->data); } if (track->par->sample_aspect_ratio.den && track->par->sample_aspect_ratio.num) { @@ -3392,7 +3390,6 @@ static int mov_write_tkhd_tag(AVIOContext *pb, MOVMuxContext *mov, int group = 0; uint32_t *display_matrix = NULL; - size_t display_matrix_size; int i; if (mov->mode == MODE_AVIF) @@ -3402,15 +3399,15 @@ static int mov_write_tkhd_tag(AVIOContext *pb, MOVMuxContext *mov, duration *= mov->avif_loop_count; if (st) { + AVPacketSideData *sd; if (mov->per_stream_grouping) group = st->index; else group = st->codecpar->codec_type; - display_matrix = (uint32_t*)av_stream_get_side_data(st, AV_PKT_DATA_DISPLAYMATRIX, - &display_matrix_size); - if (display_matrix && display_matrix_size < 9 * sizeof(*display_matrix)) - display_matrix = NULL; + sd = av_packet_side_data_set_get(&st->codecpar->side_data, AV_PKT_DATA_DISPLAYMATRIX); + if (sd && sd->size == 9 * sizeof(*display_matrix)) + display_matrix = (uint32_t *)sd->data; } if (track->flags & MOV_TRACK_ENABLED) @@ -4608,12 +4605,10 @@ static int mov_write_moov_tag(AVIOContext *pb, MOVMuxContext *mov, track->tref_tag = MKTAG('h','i','n','t'); track->tref_id = mov->tracks[track->src_track].track_id; } else if (track->par->codec_type == AVMEDIA_TYPE_AUDIO) { - size_t size; - int *fallback; - fallback = (int*)av_stream_get_side_data(track->st, - AV_PKT_DATA_FALLBACK_TRACK, - &size); - if (fallback != NULL && size == sizeof(int)) { + AVPacketSideData *sd = av_packet_side_data_set_get(&track->st->codecpar->side_data, + AV_PKT_DATA_FALLBACK_TRACK ); + if (sd && sd->size == sizeof(int)) { + int *fallback = (int *)sd->data; if (*fallback >= 0 && *fallback < mov->nb_streams) { track->tref_tag = MKTAG('f','a','l','l'); track->tref_id = mov->tracks[*fallback].track_id; @@ -5446,7 +5441,7 @@ static int mov_write_ftyp_tag(AVIOContext *pb, AVFormatContext *s) if (st->codecpar->codec_id == AV_CODEC_ID_AC3 || st->codecpar->codec_id == AV_CODEC_ID_EAC3 || st->codecpar->codec_id == AV_CODEC_ID_TRUEHD || - av_stream_get_side_data(st, AV_PKT_DATA_DOVI_CONF, NULL)) + av_packet_side_data_set_get(&st->codecpar->side_data, AV_PKT_DATA_DOVI_CONF)) has_dolby = 1; } diff --git a/libavformat/mp3enc.c b/libavformat/mp3enc.c index 5e81f72a59..9fc1c4fea4 100644 --- a/libavformat/mp3enc.c +++ b/libavformat/mp3enc.c @@ -400,10 +400,10 @@ static int mp3_queue_flush(AVFormatContext *s) static void mp3_update_xing(AVFormatContext *s) { MP3Context *mp3 = s->priv_data; + AVPacketSideData *sd; AVReplayGain *rg; uint16_t tag_crc; uint8_t *toc; - size_t rg_size; int i; int64_t old_pos = avio_tell(s->pb); @@ -423,11 +423,11 @@ static void mp3_update_xing(AVFormatContext *s) } /* write replaygain */ - rg = (AVReplayGain*)av_stream_get_side_data(s->streams[0], AV_PKT_DATA_REPLAYGAIN, - &rg_size); - if (rg && rg_size >= sizeof(*rg)) { + sd = av_packet_side_data_set_get(&s->streams[0]->codecpar->side_data, AV_PKT_DATA_REPLAYGAIN); + if (sd && sd->size >= sizeof(*rg)) { uint16_t val; + rg = (AVReplayGain *)sd->data; AV_WB32(mp3->xing_frame + mp3->xing_offset + 131, av_rescale(rg->track_peak, 1 << 23, 100000)); diff --git a/libavformat/mpegenc.c b/libavformat/mpegenc.c index c06e308296..3f3b94112d 100644 --- a/libavformat/mpegenc.c +++ b/libavformat/mpegenc.c @@ -342,8 +342,6 @@ static av_cold int mpeg_mux_init(AVFormatContext *ctx) lpcm_id = LPCM_ID; for (i = 0; i < ctx->nb_streams; i++) { - AVCPBProperties *props; - st = ctx->streams[i]; stream = av_mallocz(sizeof(StreamInfo)); if (!stream) @@ -430,13 +428,17 @@ static av_cold int mpeg_mux_init(AVFormatContext *ctx) stream->max_buffer_size = 4 * 1024; s->audio_bound++; break; - case AVMEDIA_TYPE_VIDEO: + case AVMEDIA_TYPE_VIDEO: { + AVPacketSideData *sd; + AVCPBProperties *props = NULL; if (st->codecpar->codec_id == AV_CODEC_ID_H264) stream->id = h264_id++; else stream->id = mpv_id++; - props = (AVCPBProperties*)av_stream_get_side_data(st, AV_PKT_DATA_CPB_PROPERTIES, NULL); + sd = av_packet_side_data_set_get(&st->codecpar->side_data, AV_PKT_DATA_CPB_PROPERTIES); + if (sd) + props = (AVCPBProperties*)sd->data; if (props && props->buffer_size) stream->max_buffer_size = 6 * 1024 + props->buffer_size / 8; else { @@ -453,6 +455,7 @@ static av_cold int mpeg_mux_init(AVFormatContext *ctx) } s->video_bound++; break; + } case AVMEDIA_TYPE_SUBTITLE: stream->id = mps_id++; stream->max_buffer_size = 16 * 1024; @@ -470,12 +473,15 @@ static av_cold int mpeg_mux_init(AVFormatContext *ctx) audio_bitrate = 0; video_bitrate = 0; for (i = 0; i < ctx->nb_streams; i++) { - AVCPBProperties *props; + AVPacketSideData *sd; + AVCPBProperties *props = NULL; int codec_rate; st = ctx->streams[i]; stream = (StreamInfo *)st->priv_data; - props = (AVCPBProperties*)av_stream_get_side_data(st, AV_PKT_DATA_CPB_PROPERTIES, NULL); + sd = av_packet_side_data_set_get(&st->codecpar->side_data, AV_PKT_DATA_CPB_PROPERTIES); + if (sd) + props = (AVCPBProperties*)sd->data; if (props) codec_rate = props->max_bitrate; else diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c index 0b3edda817..3ba723d060 100644 --- a/libavformat/mpegts.c +++ b/libavformat/mpegts.c @@ -2190,7 +2190,6 @@ int ff_parse_mpeg2_descriptor(AVFormatContext *fc, AVStream *st, int stream_type uint32_t buf; AVDOVIDecoderConfigurationRecord *dovi; size_t dovi_size; - int ret; int dependency_pid; if (desc_end - *pp < 4) // (8 + 8 + 7 + 6 + 1 + 1 + 1) / 8 @@ -2221,11 +2220,10 @@ int ff_parse_mpeg2_descriptor(AVFormatContext *fc, AVStream *st, int stream_type dovi->dv_bl_signal_compatibility_id = 0; } - ret = av_stream_add_side_data(st, AV_PKT_DATA_DOVI_CONF, - (uint8_t *)dovi, dovi_size); - if (ret < 0) { + if (!av_packet_side_data_set_add(&st->codecpar->side_data, AV_PKT_DATA_DOVI_CONF, + (uint8_t *)dovi, dovi_size, 0)) { av_free(dovi); - return ret; + return AVERROR(ENOMEM); } av_log(fc, AV_LOG_TRACE, "DOVI, version: %d.%d, profile: %d, level: %d, " diff --git a/libavformat/mux.c b/libavformat/mux.c index 415bd3948f..ae07c8839e 100644 --- a/libavformat/mux.c +++ b/libavformat/mux.c @@ -277,6 +277,25 @@ FF_ENABLE_DEPRECATION_WARNINGS break; } +#if FF_API_AVSTREAM_SIDE_DATA +FF_DISABLE_DEPRECATION_WARNINGS + /* if the caller is using the deprecated AVStream side_data API, + * copy its contents to AVStream.codecpar, giving it priority + over existing side data in the latter */ + for (int i = 0; i < st->nb_side_data; i++) { + const AVPacketSideData *sd_src = &st->side_data[i]; + AVPacketSideData *sd_dst; + + sd_dst = av_packet_side_data_set_new(&st->codecpar->side_data, sd_src->type, sd_src->size, 0); + if (!sd_dst) { + ret = AVERROR(ENOMEM); + goto fail; + } + memcpy(sd_dst->data, sd_src->data, sd_src->size); + } +FF_ENABLE_DEPRECATION_WARNINGS +#endif + desc = avcodec_descriptor_get(par->codec_id); if (desc && desc->props & AV_CODEC_PROP_REORDER) sti->reorder = 1; diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c index 34230ece98..2438b7c7bf 100644 --- a/libavformat/mxfdec.c +++ b/libavformat/mxfdec.c @@ -2577,10 +2577,12 @@ static int parse_mca_labels(MXFContext *mxf, MXFTrack *source_track, MXFDescript if (service_type != AV_AUDIO_SERVICE_TYPE_NB && service_type != AV_AUDIO_SERVICE_TYPE_MAIN && !ambigous_service_type) { enum AVAudioServiceType *ast; - uint8_t* side_data = av_stream_new_side_data(st, AV_PKT_DATA_AUDIO_SERVICE_TYPE, sizeof(*ast)); + AVPacketSideData *side_data = av_packet_side_data_set_new(&st->codecpar->side_data, + AV_PKT_DATA_AUDIO_SERVICE_TYPE, + sizeof(*ast), 0); if (!side_data) return AVERROR(ENOMEM); - ast = (enum AVAudioServiceType*)side_data; + ast = (enum AVAudioServiceType*)side_data->data; *ast = service_type; } @@ -2980,19 +2982,19 @@ static int mxf_parse_structural_metadata(MXFContext *mxf) st->codecpar->color_trc = mxf_get_codec_ul(ff_mxf_color_trc_uls, &descriptor->color_trc_ul)->id; st->codecpar->color_space = mxf_get_codec_ul(ff_mxf_color_space_uls, &descriptor->color_space_ul)->id; if (descriptor->mastering) { - ret = av_stream_add_side_data(st, AV_PKT_DATA_MASTERING_DISPLAY_METADATA, - (uint8_t *)descriptor->mastering, - sizeof(*descriptor->mastering)); - if (ret < 0) + if (!av_packet_side_data_set_add(&st->codecpar->side_data, AV_PKT_DATA_MASTERING_DISPLAY_METADATA, + (uint8_t *)descriptor->mastering, sizeof(*descriptor->mastering), 0)) { + ret = AVERROR(ENOMEM); goto fail_and_free; + } descriptor->mastering = NULL; } if (descriptor->coll) { - ret = av_stream_add_side_data(st, AV_PKT_DATA_CONTENT_LIGHT_LEVEL, - (uint8_t *)descriptor->coll, - descriptor->coll_size); - if (ret < 0) + if (!av_packet_side_data_set_add(&st->codecpar->side_data, AV_PKT_DATA_CONTENT_LIGHT_LEVEL, + (uint8_t *)descriptor->coll, descriptor->coll_size, 0)) { + ret = AVERROR(ENOMEM); goto fail_and_free; + } descriptor->coll = NULL; } } else if (st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) { diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c index d8252ed68f..33922400e6 100644 --- a/libavformat/mxfenc.c +++ b/libavformat/mxfenc.c @@ -556,7 +556,7 @@ static void mxf_write_primer_pack(AVFormatContext *s) if (s->streams[i]->codecpar->codec_id == AV_CODEC_ID_H264 && !sc->avc_intra) { will_have_avc_tags = 1; } - if (av_stream_get_side_data(s->streams[i], AV_PKT_DATA_MASTERING_DISPLAY_METADATA, NULL)) { + if (av_packet_side_data_set_get(&s->streams[i]->codecpar->side_data, AV_PKT_DATA_MASTERING_DISPLAY_METADATA)) { will_have_mastering_tags = 1; } if (s->streams[i]->codecpar->codec_id == AV_CODEC_ID_FFV1) { @@ -1158,7 +1158,7 @@ static int64_t mxf_write_cdci_common(AVFormatContext *s, AVStream *st, const UID const MXFCodecUL *color_trc_ul; const MXFCodecUL *color_space_ul; int64_t pos = mxf_write_generic_desc(s, st, key); - uint8_t *side_data; + AVPacketSideData *side_data; color_primaries_ul = mxf_get_codec_ul_by_id(ff_mxf_color_primaries_uls, st->codecpar->color_primaries); color_trc_ul = mxf_get_codec_ul_by_id(ff_mxf_color_trc_uls, st->codecpar->color_trc); @@ -1344,9 +1344,9 @@ static int64_t mxf_write_cdci_common(AVFormatContext *s, AVStream *st, const UID avio_write(pb, *sc->codec_ul, 16); // Mastering Display metadata - side_data = av_stream_get_side_data(st, AV_PKT_DATA_MASTERING_DISPLAY_METADATA, NULL); + side_data = av_packet_side_data_set_get(&st->codecpar->side_data, AV_PKT_DATA_MASTERING_DISPLAY_METADATA); if (side_data) { - const AVMasteringDisplayMetadata *metadata = (const AVMasteringDisplayMetadata*)side_data; + const AVMasteringDisplayMetadata *metadata = (const AVMasteringDisplayMetadata*)side_data->data; if (metadata->has_primaries) { mxf_write_local_tag(s, 12, 0x8301); avio_wb16(pb, rescale_mastering_chroma(metadata->display_primaries[0][0])); diff --git a/libavformat/options.c b/libavformat/options.c index e4a3aceed0..ef0b593d36 100644 --- a/libavformat/options.c +++ b/libavformat/options.c @@ -309,7 +309,9 @@ AVStream *avformat_new_stream(AVFormatContext *s, const AVCodec *c) st->sample_aspect_ratio = (AVRational) { 0, 1 }; +#if FF_API_AVSTREAM_SIDE_DATA sti->inject_global_side_data = si->inject_global_side_data; +#endif sti->need_context_update = 1; diff --git a/libavformat/replaygain.c b/libavformat/replaygain.c index 915bcb2382..ab3e39318b 100644 --- a/libavformat/replaygain.c +++ b/libavformat/replaygain.c @@ -69,16 +69,19 @@ static int32_t parse_value(const char *value, int32_t min) int ff_replaygain_export_raw(AVStream *st, int32_t tg, uint32_t tp, int32_t ag, uint32_t ap) { + AVPacketSideData *sd; AVReplayGain *replaygain; if (tg == INT32_MIN && ag == INT32_MIN) return 0; - replaygain = (AVReplayGain*)av_stream_new_side_data(st, AV_PKT_DATA_REPLAYGAIN, - sizeof(*replaygain)); - if (!replaygain) + sd = av_packet_side_data_set_new(&st->codecpar->side_data, + AV_PKT_DATA_REPLAYGAIN, + sizeof(*replaygain), 0); + if (!sd) return AVERROR(ENOMEM); + replaygain = (AVReplayGain*)sd->data; replaygain->track_gain = tg; replaygain->track_peak = tp; replaygain->album_gain = ag; diff --git a/libavformat/seek.c b/libavformat/seek.c index 386312cd3a..0180188595 100644 --- a/libavformat/seek.c +++ b/libavformat/seek.c @@ -745,8 +745,10 @@ void ff_read_frame_flush(AVFormatContext *s) for (int j = 0; j < MAX_REORDER_DELAY + 1; j++) sti->pts_buffer[j] = AV_NOPTS_VALUE; +#if FF_API_AVSTREAM_SIDE_DATA if (si->inject_global_side_data) sti->inject_global_side_data = 1; +#endif sti->skip_samples = 0; } diff --git a/libavformat/version_major.h b/libavformat/version_major.h index 293fbd3397..c348e3eb37 100644 --- a/libavformat/version_major.h +++ b/libavformat/version_major.h @@ -45,6 +45,7 @@ #define FF_API_GET_END_PTS (LIBAVFORMAT_VERSION_MAJOR < 61) #define FF_API_AVIODIRCONTEXT (LIBAVFORMAT_VERSION_MAJOR < 61) #define FF_API_AVFORMAT_IO_CLOSE (LIBAVFORMAT_VERSION_MAJOR < 61) +#define FF_API_AVSTREAM_SIDE_DATA (LIBAVFORMAT_VERSION_MAJOR < 61) #define FF_API_R_FRAME_RATE 1 From patchwork Mon Sep 4 15:03:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 43533 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4f16:b0:149:dfde:5c0a with SMTP id gi22csp1273215pzb; Mon, 4 Sep 2023 08:05:19 -0700 (PDT) X-Google-Smtp-Source: AGHT+IESEJhJth99/+dKERp+59TjiDWGk5KlzcOjYhrAV5yGla3YkJbplPX2R6K37RA9hRA/bqsP X-Received: by 2002:aa7:dcd2:0:b0:525:76fc:f559 with SMTP id w18-20020aa7dcd2000000b0052576fcf559mr6732136edu.41.1693839918857; Mon, 04 Sep 2023 08:05:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1693839918; cv=none; d=google.com; s=arc-20160816; b=bZe6i1q0I94cjdKiyxoLsYkuT/aJ6bHPpnzEEC9OFakfW6PHp4iXigIMzDT/o4ybF/ 5ArlyB2DLbl8Z7i1aLMvz+QdZTOrC8lzBfdJqgtKx+doPV2oNdCXn/mz/u/X3v2P0Brp ohH+d77ZFJTwj8/jllQVn7cdNoNCfziueUDGCfCyMh9vpkjKI7r/x1L6sId5gGisqiMO 9sYY2N0FZjhKendvn64Nw9Rbyg/Fmg5ejdBuwuq0rz5G3/SbQKFmAJ/cg4IoY6WXmUNb KhMJsZpN8p7iQKXncoFwBm/ensjaZ+V616dHsHa19Y4tvFGYJqYi2R0jQGPwyelw5S2U B2lw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=r2C0pEtDZ/S9eXRk2YYOFzQwxcbvorfeGPsLl2GWQfE=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=GUq79hCWx9hYh6BA7kI3BUjY83lj3l4rGBB7MqpVyF72UrqIW9zkLpCyH69O7bKg4m D1WwGwWFmlW+ccV/N+JwpUcQw52zfUpG4LI1262/2l67gZ5waz7qG46xMfEQ7T6sTNYB NLDw+k9oPKznc6unQquYTAdjmPIyOfZvdQ/2ycb/kuy9cdHRqeoGnQjSzlStDlKGse60 GaGEVFYnn2NK3uw8C+2VWCh5LgEoiHkUCXmRN91UeszsV3Gpc5AUa+ebMg7dTVaccHRM yWidh44FxQgtMVpnahzcDlVa0KHHdhLi/JqkKjfudrjlJDMrZu5PAoq6QzSf1F6eASRC SebA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=djik5wJo; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id f9-20020aa7d849000000b005219bc76c7esi6595929eds.113.2023.09.04.08.05.14; Mon, 04 Sep 2023 08:05:18 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=djik5wJo; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7BF9A68C7C5; Mon, 4 Sep 2023 18:04:33 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oo1-f50.google.com (mail-oo1-f50.google.com [209.85.161.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5256D68C7A5 for ; Mon, 4 Sep 2023 18:04:26 +0300 (EEST) Received: by mail-oo1-f50.google.com with SMTP id 006d021491bc7-571194584e2so984509eaf.3 for ; Mon, 04 Sep 2023 08:04:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1693839864; x=1694444664; darn=ffmpeg.org; 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=h+raEvqV8EDuGe0Cw2pMVHylPv6rDFJ7A0L5nDzEpME=; b=djik5wJofiRJH9KE/GzHR0NgUHjbv/E/X+TQAf7rPmwWLpO2arh2YTf76I12F0NZTs F6oTMRkuwzLzmZJ0/8Qc6Yuuz3FUrDZi2IJxwMj6isCwSJH2Y1dDrVR0T+fWLgxJoZ04 PPkccrxljwRueo8ziSpayxrejUlWb2NgP0AmsJkzDH0R695Dxm0eXIRBXVPY/uiool1s z05+v3VZ7dTw4APlKRwQ2slpe2VbTVE113t7BoX+WZKxXwEsUbmqJ6aDasL5/hbq0Fo+ 51NprB7ugG5RUl76k5T/x4/rrBLKTZkmRiNjx97DW5Hv6fkQNvpDBOgtJzBBQvew4jXZ 13KA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693839864; x=1694444664; 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=h+raEvqV8EDuGe0Cw2pMVHylPv6rDFJ7A0L5nDzEpME=; b=Oe9kySES8AK5D+MM2dtqqi5dqudkIAeQPVrX2GTuzfLbOLK78AEZ0akvInz2mo2F3r UIU/KI2lPBNttxor7wkX0honEG7p9CMprPgRZ/bD0/Vwu7zt2oF4TEDcX+DOdhBT2A9z ZqyDNNZQyLRtIpNh+gzgM/AMzivqlxAjAfh8236/NYbLOFe193b5OwryCUDnaNIqL5mM uGw6sS2yZGfNSRzQbJjK/qZhk+Kq094sTT9qRya0CEOo2uW2pAU5mS8OlmZuEZFihxRe LrUffMOmbC+QNzLqB9ti3YNvy+3EPXvIf/GjN+mKseCLnd98+eK7DRje3EeAviLtax8p Evqg== X-Gm-Message-State: AOJu0YzP6JfwzMw1O0JO0qJ16+V8mVY0KmbkWl41M3X5rbPkr3bJ/H8x Wxth68dc9XnFYgtFjElxFhdKLVe1wdU= X-Received: by 2002:a05:6808:1402:b0:3a7:6ddd:5045 with SMTP id w2-20020a056808140200b003a76ddd5045mr14557418oiv.35.1693839864356; Mon, 04 Sep 2023 08:04:24 -0700 (PDT) Received: from localhost.localdomain (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id z14-20020a54458e000000b003a9cd23980esm4946286oib.8.2023.09.04.08.04.23 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Sep 2023 08:04:24 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Mon, 4 Sep 2023 12:03:57 -0300 Message-ID: <20230904150411.56777-5-jamrial@gmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20230904150411.56777-1-jamrial@gmail.com> References: <20230904150411.56777-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 04/17] fftools/ffmpeg: stop using AVStream.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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: hRkVulKLyH/j Signed-off-by: James Almer --- fftools/ffmpeg_demux.c | 11 +++++++---- fftools/ffmpeg_enc.c | 25 +++++++++++++------------ fftools/ffmpeg_filter.c | 5 ++++- fftools/ffmpeg_mux_init.c | 19 ++++++++++--------- 4 files changed, 34 insertions(+), 26 deletions(-) diff --git a/fftools/ffmpeg_demux.c b/fftools/ffmpeg_demux.c index 48edbd7f6b..6cf6d2e971 100644 --- a/fftools/ffmpeg_demux.c +++ b/fftools/ffmpeg_demux.c @@ -482,8 +482,8 @@ static int input_packet_process(Demuxer *d, DemuxMsg *msg, AVPacket *src) /* add the stream-global side data to the first packet */ if (ds->nb_packets == 1) { - for (int i = 0; i < ist->st->nb_side_data; i++) { - AVPacketSideData *src_sd = &ist->st->side_data[i]; + for (int i = 0; i < ist->st->codecpar->side_data.nb_sd; i++) { + AVPacketSideData *src_sd = ist->st->codecpar->side_data.sd[i]; uint8_t *dst_data; if (src_sd->type == AV_PKT_DATA_DISPLAYMATRIX) @@ -979,6 +979,7 @@ static int add_display_matrix_to_stream(const OptionsContext *o, AVFormatContext *ctx, InputStream *ist) { AVStream *st = ist->st; + AVPacketSideData *sd; double rotation = DBL_MAX; int hflip = -1, vflip = -1; int hflip_set = 0, vflip_set = 0, rotation_set = 0; @@ -995,12 +996,14 @@ static int add_display_matrix_to_stream(const OptionsContext *o, if (!rotation_set && !hflip_set && !vflip_set) return 0; - buf = (int32_t *)av_stream_new_side_data(st, AV_PKT_DATA_DISPLAYMATRIX, sizeof(int32_t) * 9); - if (!buf) { + sd = av_packet_side_data_set_new(&st->codecpar->side_data, AV_PKT_DATA_DISPLAYMATRIX, + sizeof(int32_t) * 9, 0); + if (!sd) { av_log(ist, AV_LOG_FATAL, "Failed to generate a display matrix!\n"); return AVERROR(ENOMEM); } + buf = (int32_t *)sd->data; av_display_rotation_set(buf, rotation_set ? -(rotation) : -0.0f); diff --git a/fftools/ffmpeg_enc.c b/fftools/ffmpeg_enc.c index f28884e50c..8ea572d497 100644 --- a/fftools/ffmpeg_enc.c +++ b/fftools/ffmpeg_enc.c @@ -465,12 +465,12 @@ int enc_open(OutputStream *ost, AVFrame *frame) for (i = 0; i < ost->enc_ctx->nb_coded_side_data; i++) { const AVPacketSideData *sd_src = &ost->enc_ctx->coded_side_data[i]; - uint8_t *dst_data; + AVPacketSideData *sd_dst; - dst_data = av_stream_new_side_data(ost->st, sd_src->type, sd_src->size); - if (!dst_data) + sd_dst = av_packet_side_data_set_new(&ost->par_in->side_data, sd_src->type, sd_src->size, 0); + if (!sd_dst) return AVERROR(ENOMEM); - memcpy(dst_data, sd_src->data, sd_src->size); + memcpy(sd_dst->data, sd_src->data, sd_src->size); } } @@ -483,15 +483,16 @@ int enc_open(OutputStream *ost, AVFrame *frame) */ if (ist) { int i; - for (i = 0; i < ist->st->nb_side_data; i++) { - AVPacketSideData *sd = &ist->st->side_data[i]; - if (sd->type != AV_PKT_DATA_CPB_PROPERTIES) { - uint8_t *dst = av_stream_new_side_data(ost->st, sd->type, sd->size); - if (!dst) + for (i = 0; i < ist->st->codecpar->side_data.nb_sd; i++) { + AVPacketSideData *sd_src = ist->st->codecpar->side_data.sd[i]; + if (sd_src->type != AV_PKT_DATA_CPB_PROPERTIES) { + AVPacketSideData *sd_dst = av_packet_side_data_set_new(&ost->par_in->side_data, + sd_src->type, sd_src->size, 0); + if (!sd_dst) return AVERROR(ENOMEM); - memcpy(dst, sd->data, sd->size); - if (ist->autorotate && sd->type == AV_PKT_DATA_DISPLAYMATRIX) - av_display_rotation_set((int32_t *)dst, 0); + memcpy(sd_dst->data, sd_src->data, sd_src->size); + if (ist->autorotate && sd_src->type == AV_PKT_DATA_DISPLAYMATRIX) + av_display_rotation_set((int32_t *)sd_dst->data, 0); } } } diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c index 9bf870b615..4be415c4f8 100644 --- a/fftools/ffmpeg_filter.c +++ b/fftools/ffmpeg_filter.c @@ -1383,11 +1383,14 @@ static int configure_input_video_filter(FilterGraph *fg, InputFilter *ifilter, // TODO: insert hwaccel enabled filters like transpose_vaapi into the graph if (ist->autorotate && !(desc->flags & AV_PIX_FMT_FLAG_HWACCEL)) { + AVPacketSideData *sd = NULL; int32_t *displaymatrix = ifp->displaymatrix; double theta; if (!ifp->displaymatrix_present) - displaymatrix = (int32_t *)av_stream_get_side_data(ist->st, AV_PKT_DATA_DISPLAYMATRIX, NULL); + sd = av_packet_side_data_set_get(&ist->st->codecpar->side_data, AV_PKT_DATA_DISPLAYMATRIX); + if (sd) + displaymatrix = (int32_t *)sd->data; theta = get_rotation(displaymatrix); if (fabs(theta - 90) < 1.0) { diff --git a/fftools/ffmpeg_mux_init.c b/fftools/ffmpeg_mux_init.c index cf4cd2d5b7..46bc90b1c2 100644 --- a/fftools/ffmpeg_mux_init.c +++ b/fftools/ffmpeg_mux_init.c @@ -1041,24 +1041,25 @@ static int streamcopy_init(const Muxer *mux, OutputStream *ost) } } - for (int i = 0; i < ist->st->nb_side_data; i++) { - const AVPacketSideData *sd_src = &ist->st->side_data[i]; - uint8_t *dst_data; + for (int i = 0; i < ist->st->codecpar->side_data.nb_sd; i++) { + const AVPacketSideData *sd_src = ist->st->codecpar->side_data.sd[i]; + AVPacketSideData *sd_dst; - dst_data = av_stream_new_side_data(ost->st, sd_src->type, sd_src->size); - if (!dst_data) { + sd_dst = av_packet_side_data_set_new(&ost->st->codecpar->side_data, sd_src->type, sd_src->size, 0); + if (!sd_dst) { ret = AVERROR(ENOMEM); goto fail; } - memcpy(dst_data, sd_src->data, sd_src->size); + memcpy(sd_dst->data, sd_src->data, sd_src->size); } #if FFMPEG_ROTATION_METADATA if (ost->rotate_overridden) { - uint8_t *sd = av_stream_new_side_data(ost->st, AV_PKT_DATA_DISPLAYMATRIX, - sizeof(int32_t) * 9); + AVPacketSideData *sd = av_packet_side_data_set_new(&ost->st->codecpar->side_data, + AV_PKT_DATA_DISPLAYMATRIX, + sizeof(int32_t) * 9, 0); if (sd) - av_display_rotation_set((int32_t *)sd, -ost->rotate_override_value); + av_display_rotation_set((int32_t *)sd->data, -ost->rotate_override_value); } #endif From patchwork Mon Sep 4 15:03:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 43534 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4f16:b0:149:dfde:5c0a with SMTP id gi22csp1273309pzb; Mon, 4 Sep 2023 08:05:25 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFLodC56dO/CYvJldvVHXDHd/ApHOLKDJvds9NpkScpSPnVjmFUYVZuycbpvGwD+460F3TQ X-Received: by 2002:a17:907:a068:b0:9a5:9305:83fb with SMTP id ia8-20020a170907a06800b009a5930583fbmr10602496ejc.34.1693839925579; Mon, 04 Sep 2023 08:05:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1693839925; cv=none; d=google.com; s=arc-20160816; b=wXlT6a0Rk9fcizg75TQW0643OTlCkzNFX8E6iB3qx8/Zmr/5L6e+M012S8M1K4cqWj 6t3Vs9Dq1WLGa1Ti67+yZOrB/1x+yOpnCz8MCCeX5AP8fS0y0NNlTRSLBalLHC1jio22 L9gf+NBAGHXi5FCcjc8yNUuFegEQi6xcQSTCDSw48yk5N5pT7dsMQ8T2xNEh76V4kcNl FVwk8Fdnq3Q2A2jVgUeRPnBcMDzsL5H1Zt+GIpNhSunPB1QqkWa/rRY3wF08tRc3obaE vvPOlT+9M5L9Wjps3RTZAg/fvFUB1g3TfyIs8PiCJXcp/o1nV3+c90Z0hLZe2qqg4NFt JoNA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=Gaulzr181z+vK/HU9r8z/El5VlZNASMF80Ma+5gVujg=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=MBJ23dIaK9Qt4WoFsQrPIEy5Wbtr4w7+k3jgQVNq9RoTkJ/3InRgUCgJLOKTePy4R/ p8rPM0E4VBlRw04RQtuSYTA72FHf8mmSOxr8oKL8Env0yhBBj74A9CSeF3HhE6bdbc2x lbi/aORn9f1nQY2WFv9CHJj0rE6XGfzIAIJg/dNnhyPoF/LyeBQlXqIshvUk2kwFx0P1 5eEWxbARPKkBtBBN8wwxtihozX6MQ6xXJjuyOHcJWGZ81Efh7FmIEMpBGFjme+tMj1GR WTaRxx6ZQzpopqpAmrBep8/zHwgiM5LkI6cdE4+OfNELVEhgn8DmVBS2WGF1ms8W7Vy5 2fag== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=SoCr+zfi; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id d22-20020a1709067f1600b0098d1c816d43si6669820ejr.85.2023.09.04.08.05.23; Mon, 04 Sep 2023 08:05:25 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=SoCr+zfi; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 94C7B68C7DD; Mon, 4 Sep 2023 18:04:35 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oi1-f175.google.com (mail-oi1-f175.google.com [209.85.167.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5DD7C68C7B8 for ; Mon, 4 Sep 2023 18:04:27 +0300 (EEST) Received: by mail-oi1-f175.google.com with SMTP id 5614622812f47-3aa139a0ab2so1142210b6e.2 for ; Mon, 04 Sep 2023 08:04:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1693839865; x=1694444665; darn=ffmpeg.org; 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=/OIk6NV9IzbN5VnDhSgAhXIxfYkb4u0KmrY6lCf1knc=; b=SoCr+zfikSsGr4FSseX6kMQHQmvRyuR+kGvU15QpMtBz4ISv7yMP97SMNQqKAFHAhy WjFnbI31MLKR2pvVZzBI2p21oOpGtQ0FGpSrf07kdQYRiU51zK0MbcbLcVfVeeOMczyn XDAO+AxM2EQe81NLlWBYViJK/0H0Dy1cUqrj7R+B7xb3auPd8JBQwwEP56++i6eLiEvH MU3B+TjSVPbQ1mZAYWi/KS6D4jKtJXyFG3+DHD57dqXzGDiY/5kzH6kn60pUo3QmleqJ QJxiSziCaH8K/ay3i1i9hMtDr61aSfWq4zvYspdgTUugfeWCvp1xqAS98lcgZnj9y07z 0RJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693839865; x=1694444665; 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=/OIk6NV9IzbN5VnDhSgAhXIxfYkb4u0KmrY6lCf1knc=; b=coAM52bDg335dB3O+w4yphTGJNb/Q+vjleAQeBunFUtycRURmO65RSmslSTKmb4DRr K1TmjRtJFznOjXRGGlNxttHkxgN2U5KOIP4Rb+RWYAnwItUJmDaEE0VsdFiZ0Wo5HTe0 0pwZUr4v0by6VOCCF+pbhKhusWEIcpxPAFtzk3h4NITVmDwmBFa66G4F47R/ljvvucq4 6SX8ARNEKdyNpeQZNnv80JhmzwN26ygYlStHDqnH7grrwHfLT98bCB5lwVB+lu0SBjKv wKWjF+ESkx33ubnpDZ2xEVFLsuPg0/LJHuBulXpAYVATkfIWl/zpUvckmYrYluvce5Sj VnbA== X-Gm-Message-State: AOJu0YxVh8tTGblVUj7P9l6xWNQpMK1ys1eA5jAdYdrPuFi8edh8k6nQ P/8csOJs3UFYLPew9cCOQgGfBskEn/M= X-Received: by 2002:a05:6808:23cd:b0:3a8:c5d6:c582 with SMTP id bq13-20020a05680823cd00b003a8c5d6c582mr13151712oib.40.1693839865588; Mon, 04 Sep 2023 08:04:25 -0700 (PDT) Received: from localhost.localdomain (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id z14-20020a54458e000000b003a9cd23980esm4946286oib.8.2023.09.04.08.04.24 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Sep 2023 08:04:25 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Mon, 4 Sep 2023 12:03:58 -0300 Message-ID: <20230904150411.56777-6-jamrial@gmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20230904150411.56777-1-jamrial@gmail.com> References: <20230904150411.56777-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 05/17] fftools/ffplay: stop using AVStream.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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: UNoLZTDoB1/X Signed-off-by: James Almer --- fftools/ffplay.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/fftools/ffplay.c b/fftools/ffplay.c index 006da7ab57..751526a2a3 100644 --- a/fftools/ffplay.c +++ b/fftools/ffplay.c @@ -1916,8 +1916,12 @@ static int configure_video_filters(AVFilterGraph *graph, VideoState *is, const c AVFrameSideData *sd = av_frame_get_side_data(frame, AV_FRAME_DATA_DISPLAYMATRIX); if (sd) displaymatrix = (int32_t *)sd->data; - if (!displaymatrix) - displaymatrix = (int32_t *)av_stream_get_side_data(is->video_st, AV_PKT_DATA_DISPLAYMATRIX, NULL); + if (!displaymatrix) { + AVPacketSideData *sd = av_packet_side_data_set_get(&is->video_st->codecpar->side_data, + AV_PKT_DATA_DISPLAYMATRIX); + if (sd) + displaymatrix = (int32_t *)sd->data; + } theta = get_rotation(displaymatrix); if (fabs(theta - 90) < 1.0) { From patchwork Mon Sep 4 15:03:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 43536 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4f16:b0:149:dfde:5c0a with SMTP id gi22csp1273615pzb; Mon, 4 Sep 2023 08:05:44 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEXNo2lu1kHb4yRnnvl+mAn3L9Xw6L3HQvC1I91XUSD/457VVkQuoad2FhAduQdBvRg0VHU X-Received: by 2002:a2e:9199:0:b0:2bc:f41a:d9c6 with SMTP id f25-20020a2e9199000000b002bcf41ad9c6mr7756938ljg.0.1693839944428; Mon, 04 Sep 2023 08:05:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1693839944; cv=none; d=google.com; s=arc-20160816; b=r0PAovjGVOzDNC/x2DYBV/LuVOhd0blIiLwwnAzetSMrgqOJf8yqwfgTI1mwjl53eT DS+TvqMB6FxuG0hzKdSnIX2vzmFxaAeiuigzCBfyga+VSW3xLv77Em8OHmgLTpAXqjLk YjwFvOkaVBxI1D8E5zWzkTUu4EfmKKT570rnny/Pr07MHswvUDuTyVrm8jWydiyDSJxU okoABdAPmVEVaHGm+PzBWoMVOf/5qDVRe2ySnTj2LwfZTMYrnBwY081Yts/6wYK3oLtC pnP700goT/b/2V/0R0s965urhAh0+KineiYy4KktmspjN8fP3wbbovyOl1A52khBuf9t JzzA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=HT9aLzQEmgmkQWgQnYu+r65NUl82r9jkFjIhCOaw3o4=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=TzTnoZsK87MLyFtgryPdChpeGt+SIr4aqxtNxgpq8N54MvK2UsxA2TmRYES4huKGx5 I8NrvZubmEL/Gdy4XhFA2+KAUaGnHY9ZL8TDXuKGTK8FPy/HEqj1PdG7AWr7toDB02tc Mg2xs+f6NdX5oklRX3PWf4VUZJMN4SKfKR9PBTczrmmNA8Vt76E7J0hqfisONxuNZCyU bMK2D9cVCxRssvK0hb8tbMsz0TAPVzRGbooEtkeiyTClwSqPbQrmdrPRQTDw/nzDATqZ hLad/xS/vqpk3xZTDVKVYP4JRpjeDQueudUSSw0diH6Vjk7vdQ9f0MH145Wn2sbiyb3t qhKg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=nnH766O8; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id o21-20020a1709062e9500b0098e07395330si6272119eji.746.2023.09.04.08.05.42; Mon, 04 Sep 2023 08:05:44 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=nnH766O8; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9085D68C7F0; Mon, 4 Sep 2023 18:04:37 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oi1-f170.google.com (mail-oi1-f170.google.com [209.85.167.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 85B0D68C7C6 for ; Mon, 4 Sep 2023 18:04:28 +0300 (EEST) Received: by mail-oi1-f170.google.com with SMTP id 5614622812f47-3a85c5854deso1131139b6e.0 for ; Mon, 04 Sep 2023 08:04:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1693839867; x=1694444667; darn=ffmpeg.org; 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=6XApgb7W1zkV4M384GlsA/cgw/2zWxqizldmPcjBp7M=; b=nnH766O87AYvF0zQ6XpaREF3kePI/f8o0hT5bys0xeuJ2TD+DjDn6N8gRXHsm5H2Pw AV8/44kepM3W4Bibta6CDtvD7aBJd8yyVMUVcxxV0dTpvt004JDm3YV3dSUpvTcH9U6w kWBurRRlc++YTk2Og6Vw7RYETLIofAMMADc2XNZTv5NVbmwp0w83BN6Muzc7aWxwOpMJ hu7+hz1toHPnQVdBZzhttLmemlS/1EkoIb89KCwbVc1UyTuaka9qtGkyLXrlnvnDII/5 pZjCGzrmhY5mpD2qYIfWCT8Z0vZ30b1RGDTLXo+Jo81vGLv+RqntWFo0dLMpzzOFRJ2M y2oQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693839867; x=1694444667; 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=6XApgb7W1zkV4M384GlsA/cgw/2zWxqizldmPcjBp7M=; b=ZhtWSuPEzwhK/3XkRJr0j7XzeE+zGs5+lms50F7Z5u9Ww2IVQGkVNQaHsIpIsyCHbc tYLBNkhNven+9gqsN/u26zjzp7Lm49xuWe24T+EHb9kw3I+76mU/FaGs0ke95AwXfQWe hWV7Sumn77AlJcFtsekk4rtGKHZKa9+y0U23uyMfYK5NmxdtEnLVy4kWDd2xFJJqRMeE KmU567sEHJYSWd6C20pfxWbHQx8kObDwSfyIauTkDspGTFes95bkvrKfNTJOOr7DRGcY LMuGSXtnzEgXwtpMlKmD+fMYzgBQfvzYBG0O6c0WcY2YnqjsU5e3XC7hrR8+UqLHDMeT LBWw== X-Gm-Message-State: AOJu0YwbN3ArnwajOBq7aHP/zQjOk7ZBO2fuvUTvPXrvrPI4RftlkwAk p8a2cSm3sSNo+mJm7Lo6+Zecl9Fh0P4= X-Received: by 2002:a05:6808:1816:b0:3a7:45e0:c0eb with SMTP id bh22-20020a056808181600b003a745e0c0ebmr13131179oib.24.1693839866786; Mon, 04 Sep 2023 08:04:26 -0700 (PDT) Received: from localhost.localdomain (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id z14-20020a54458e000000b003a9cd23980esm4946286oib.8.2023.09.04.08.04.25 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Sep 2023 08:04:26 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Mon, 4 Sep 2023 12:03:59 -0300 Message-ID: <20230904150411.56777-7-jamrial@gmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20230904150411.56777-1-jamrial@gmail.com> References: <20230904150411.56777-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 06/17] fftools/ffprobe: stop using AVStream.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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: UZHVW47mYviA Signed-off-by: James Almer --- fftools/ffprobe.c | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c index 4fcfe1164b..28ccb45b26 100644 --- a/fftools/ffprobe.c +++ b/fftools/ffprobe.c @@ -2279,16 +2279,9 @@ static void print_ambient_viewing_environment(WriterContext *w, static void print_pkt_side_data(WriterContext *w, AVCodecParameters *par, - const AVPacketSideData *side_data, - int nb_side_data, - SectionID id_data_list, + const AVPacketSideData *sd, SectionID id_data) { - int i; - - writer_print_section_header(w, id_data_list); - for (i = 0; i < nb_side_data; i++) { - const AVPacketSideData *sd = &side_data[i]; const char *name = av_packet_side_data_name(sd->type); writer_print_section_header(w, id_data); @@ -2382,9 +2375,6 @@ static void print_pkt_side_data(WriterContext *w, } else if (sd->type == AV_PKT_DATA_AFD && sd->size > 0) { print_int("active_format", *sd->data); } - writer_print_section_footer(w); - } - writer_print_section_footer(w); } static void print_private_data(WriterContext *w, void *priv_data) @@ -2544,9 +2534,13 @@ static void show_packet(WriterContext *w, InputFile *ifile, AVPacket *pkt, int p av_dict_free(&dict); } - print_pkt_side_data(w, st->codecpar, pkt->side_data, pkt->side_data_elems, - SECTION_ID_PACKET_SIDE_DATA_LIST, + writer_print_section_header(w, SECTION_ID_PACKET_SIDE_DATA_LIST); + for (int i = 0; i < pkt->side_data_elems; i++) { + print_pkt_side_data(w, st->codecpar, &pkt->side_data[i], SECTION_ID_PACKET_SIDE_DATA); + writer_print_section_footer(w); + } + writer_print_section_footer(w); } writer_print_section_footer(w); @@ -3188,10 +3182,14 @@ static int show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_id if (do_show_stream_tags) ret = show_tags(w, stream->metadata, in_program ? SECTION_ID_PROGRAM_STREAM_TAGS : SECTION_ID_STREAM_TAGS); - if (stream->nb_side_data) { - print_pkt_side_data(w, stream->codecpar, stream->side_data, stream->nb_side_data, - SECTION_ID_STREAM_SIDE_DATA_LIST, + if (stream->codecpar->side_data.nb_sd) { + writer_print_section_header(w, SECTION_ID_STREAM_SIDE_DATA_LIST); + for (int i = 0; i < stream->codecpar->side_data.nb_sd; i++) { + print_pkt_side_data(w, stream->codecpar, stream->codecpar->side_data.sd[i], SECTION_ID_STREAM_SIDE_DATA); + writer_print_section_footer(w); + } + writer_print_section_footer(w); } writer_print_section_footer(w); From patchwork Mon Sep 4 15:04:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 43538 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4f16:b0:149:dfde:5c0a with SMTP id gi22csp1273875pzb; Mon, 4 Sep 2023 08:06:03 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHDGtXykU62fwjC72qU1kgdukPKyEMPJDjBuDQi4422ciBZTNCsEBclDCeNR6YD9iKuq+jX X-Received: by 2002:a17:906:5a5b:b0:9a1:db2e:9dbf with SMTP id my27-20020a1709065a5b00b009a1db2e9dbfmr6278484ejc.14.1693839963326; Mon, 04 Sep 2023 08:06:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1693839963; cv=none; d=google.com; s=arc-20160816; b=VQEqAjx63+sKga5yqLPIIRA42jXO+qZ72/8ua+6ddFtZ1AWqOEVwMgY7yL4r7n4omQ 9ZRxzN1fJ6/2i14K4aFuJF//y2rzopOoOn/xWvEs9qtLXYqoVhAG+TH2B796Agt+xHX/ xhc/TRuiFBcQnZKvGwQR7hUX0RQ67N6UZnfptWQkmiC3MqnH02yF1FqsMkpBeGRDBqsX amxERR/Fp98qJBCO9WmLFSHuAHQg17wYMFgk5rBi3DaOP6bTGSDL160cHpzBHWx629g8 jAYnGvpzQfQOzl/gRRlq4m0xWgO2CmsOPXL2X2E8CeV82DmeX4xeMPIpYy+L1NceSfg5 9k3A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=DB7xiaSbPgMeN2e26W9N7p1Dp3Oz34f6JUVNUWXO1u4=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=Sw20XY1W1fAbuyWOnpTk1QP19W3218roc7TsRizp9jYf1SHPsRtzK3DwtQsj1vEs8+ 1Qh9GYBa5S8gvHX2R+HIlCi8BVb26eALWK9AaWjFjAwcmrt76eT4AWs1CpR2G57jnEDc 9GsqHN+wf3PuiQ9quszNDKaRhCe2LOyPDnHnVsPihQCJ62whyOvCr8yAnD5CuoCfHk8A FWFpwsQa3jJ1WtNosINTddJmfryjkllV38tjYh+7QHIYW/YbY98zL7CMTLOH88lQf011 loSqnX4izJCXuGbZYZmco8Ukck3XVOgGUhT8bbWvLBqHMB+WkB27kL3UW39DDX8lOuZZ iH3Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=jZbtHBMZ; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id o8-20020a170906860800b00992b75d594csi6180258ejx.317.2023.09.04.08.05.59; Mon, 04 Sep 2023 08:06:03 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=jZbtHBMZ; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 85E3768C804; Mon, 4 Sep 2023 18:04:39 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oo1-f43.google.com (mail-oo1-f43.google.com [209.85.161.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A8F0568C7CF for ; Mon, 4 Sep 2023 18:04:29 +0300 (EEST) Received: by mail-oo1-f43.google.com with SMTP id 006d021491bc7-57358a689d2so1112167eaf.2 for ; Mon, 04 Sep 2023 08:04:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1693839868; x=1694444668; darn=ffmpeg.org; 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=eLlkauYpdTRBnajYdtAbwADU0RFjFWCIvcxv8lov7g0=; b=jZbtHBMZup9n55vISxeV05ZtC9b275rKekhmq4OX/rhVfR1ZOQNgwGLqbasrbyI8Ux lNh9s+K1/v3B27HEvMWUeryJttBzIX+wfAcBYug3XcFweOlHUCAoKUd4GINM/y6kUUaJ 4NizTzN2VCKbJubaouTqFfDZOUxkKYHEuqHrYpdxHoIUic6r60ITofTJ+EI6s7WPSTrv g4PXotJSCdVtoVj7A23bQ/T7sgtbEKfzUCZRzH6pyex7aMXziDU77UUmgZ0689lnAEo9 8npft/tiZP93dwdHhJ14gKQs0Z4q2MmcHbsAoXo9tLSOHM6WzpSylLJN+W/kddgbULvz Ud2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693839868; x=1694444668; 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=eLlkauYpdTRBnajYdtAbwADU0RFjFWCIvcxv8lov7g0=; b=Rd9b8hWQKLkqit6if+blrv5k2Ts1shqDnhELfHG1uEVC8Gz6sTWWHh6RJV26Fq0tOS CIfGeYyhsy8GuHxx1RrxKTdRloXKUYamjOXetoqrXiz1dzkzMRN9IqmtgUXtmLje7qLm YO3Q8FFT9vrDlVcIx4i3ksjCnIbd/P4iFveZ8HWR5zIoAj28FYLPet/2KVyV/fhqkqhV +bftVN7nU+c6Kodn3fqx2PaSRcYBD67EHebW2rjv8W5ksUYPmq0XhQnNXE0UlNRrH7Xh 6iKACz900jOGXeEYqqAtIKC0/OZTKa+ZiYHa0kSZqw7hlfXku5HAs51hsLgFYj330EQX UIHg== X-Gm-Message-State: AOJu0Ywmj8N/j83HdJyMRxM8znqRPVNc3jHkXl5vNvWtTETD+cD4fPBO 05ekUGTkWSvj92pIXMUdqMO1JA7/pxY= X-Received: by 2002:a05:6808:158a:b0:3a7:3ab9:e590 with SMTP id t10-20020a056808158a00b003a73ab9e590mr13826168oiw.9.1693839868013; Mon, 04 Sep 2023 08:04:28 -0700 (PDT) Received: from localhost.localdomain (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id z14-20020a54458e000000b003a9cd23980esm4946286oib.8.2023.09.04.08.04.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Sep 2023 08:04:27 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Mon, 4 Sep 2023 12:04:00 -0300 Message-ID: <20230904150411.56777-8-jamrial@gmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20230904150411.56777-1-jamrial@gmail.com> References: <20230904150411.56777-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 07/17] avcodec/hevcdec: check for DOVI configuration record in AVCodecContext 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: b87PGBqSfoyR Signed-off-by: James Almer --- libavcodec/hevcdec.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/libavcodec/hevcdec.c b/libavcodec/hevcdec.c index df40c91ba6..dabfe89d4a 100644 --- a/libavcodec/hevcdec.c +++ b/libavcodec/hevcdec.c @@ -3337,8 +3337,15 @@ static int hevc_decode_frame(AVCodecContext *avctx, AVFrame *rframe, } sd = av_packet_get_side_data(avpkt, AV_PKT_DATA_DOVI_CONF, &sd_size); - if (sd && sd_size > 0) + if (sd && sd_size > 0) { + int old = s->dovi_ctx.dv_profile; + ff_dovi_update_cfg(&s->dovi_ctx, (AVDOVIDecoderConfigurationRecord *) sd); + if (old) + av_log(avctx, AV_LOG_DEBUG, + "New DOVI configuration record from input packet (profile %d -> %u).\n", + old, s->dovi_ctx.dv_profile); + } s->ref = NULL; ret = decode_nal_units(s, avpkt->data, avpkt->size); @@ -3641,12 +3648,18 @@ static av_cold int hevc_decode_init(AVCodecContext *avctx) atomic_init(&s->wpp_err, 0); if (!avctx->internal->is_copy) { + AVPacketSideData *sd; + if (avctx->extradata_size > 0 && avctx->extradata) { ret = hevc_decode_extradata(s, avctx->extradata, avctx->extradata_size, 1); if (ret < 0) { return ret; } } + + sd = av_packet_side_data_set_get(&avctx->packet_side_data, AV_PKT_DATA_DOVI_CONF); + if (sd && sd->size > 0) + ff_dovi_update_cfg(&s->dovi_ctx, (AVDOVIDecoderConfigurationRecord *) sd->data); } return 0; From patchwork Mon Sep 4 15:04:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 43540 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4f16:b0:149:dfde:5c0a with SMTP id gi22csp1274102pzb; Mon, 4 Sep 2023 08:06:18 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGxShjSoPgoDaIdGj82dK/ue3umu1hUxeBexOmgHcpTfTI8MkTUAbvJn8hcvv1GBGCfwMvx X-Received: by 2002:a17:907:58d:b0:9a2:1b6d:eeca with SMTP id vw13-20020a170907058d00b009a21b6deecamr6748643ejb.44.1693839977868; Mon, 04 Sep 2023 08:06:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1693839977; cv=none; d=google.com; s=arc-20160816; b=utEjWT4gFbMQqW3X/etqbrB6dq6Au16Gw3IeQFJ0r6EUpnNqpSzWlBVUP3wPKxLZAc veKKZScLINGyLFFmlg26Wp9PZkuNWaj4VD/QfTN8vKXpfkoyr/lcyu8Pu9XmP7CZG2uy muescfUfiWnKFdeh93uoT5PGLXIgIkEupNpYzsN6gUx4Y9d/JfkwhdkoOcHVkixB6TGt OxZZwZOE7XfD43xBo+DNqzBNHvkxQwgKNjhGcLrcD5E9wx8TEQakfxm7ePy2J+yyQ7A6 aYivUYhaZojj92mnHGhDN+ibb+yFMvYybKVyGnp/Km7fovOu3odnP3wRs+jfN9RahozF YfnQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=0qTdbXCpUE8PV+DRAODlHFCtepNMKlv/i3Jy7BN3vLE=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=voHbHVOWfizqyH6zr7vYwyX624tzPTZmfLxix1wDU1If4KAlmAIUZ2zmnbAijt/zH8 6evcMi6Kv856/nGjcU2c5xtp2PJ2fqK5WAEb33VJHu0qMnq/CWnjR7Mo3VRD4Biz7u1y mqKknHdnL/ZaOGR+KSNaKlRAc3XS3nmWDwwaIuhgt8qHDQqHTv9XJhxVDfR7iFztGxsO 8sNSStwMD7AYrG4IP7YfOn3AJwcvy8PZD9VThkl0/xDF7PTGTM71pnQXiyL2NA14cvOs /8D2Z8MJupCeUVp4cg54/N+BLdF2lzEcdFVA1gr+z6CSO6N2FPqXmhqMvF+qXnCWRMEl ltPQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=NgrrIUv8; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id by23-20020a170906a2d700b0098e266c9592si5937359ejb.262.2023.09.04.08.06.17; Mon, 04 Sep 2023 08:06:17 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=NgrrIUv8; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4F6D668C81A; Mon, 4 Sep 2023 18:04:41 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oo1-f51.google.com (mail-oo1-f51.google.com [209.85.161.51]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0258868C7DB for ; Mon, 4 Sep 2023 18:04:31 +0300 (EEST) Received: by mail-oo1-f51.google.com with SMTP id 006d021491bc7-5733789a44cso960735eaf.2 for ; Mon, 04 Sep 2023 08:04:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1693839869; x=1694444669; darn=ffmpeg.org; 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=SlZrTIpsCNP1jBAhavDAog6lE/fdg1oqSHUtz3w2ATQ=; b=NgrrIUv81Q5hCyu+jhmVlAyTL2x23jNGc3SEdHIfOFpz9hYgG/Kz/rX0wE8/PlTGVb zBzmocKVnNVRaomN90ek6I9tauulLvmCeG+4ocOTKI5Q17Tog9uk8Q8f6fNHzTPLvSLd VHWrVtJRPD2vfxMyshgwzEemJh5rcGfyHLZTAcopgV248p2v0rr2SVucR7tqwdvcKVxt VCC3LVsELKcp9xRZg99Q8D7abW21myAkZyV+oq28T9NyLlXzqJlgbSQx2zpdmE2RNBeg xpYS14CdOK3OxsHZfUO8CcOr99ppvlne2sOJg0z/y1nywkuBm+FXlH0OyTGTNLGTdhI1 RwfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693839869; x=1694444669; 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=SlZrTIpsCNP1jBAhavDAog6lE/fdg1oqSHUtz3w2ATQ=; b=B6Lkt8zCdsqRGaeLrUnhXbqrWiYTu/+Bf5Kr/JwrWkTYfyiPYiHEvXo3bvWHucyIZ5 IaWNhTMJrKpJ58ICps4RHwP5FriKmwKsafHCopNJ9Ze764g4lycrsezOZVc0nr9U3xG0 G31xzyE4Fi2c7jHE71R7xLmxN+4V0pQZgbrxNd9DrVoWvXVPZCfrswS6J2QZt9hYOOVp TuMGZYoYixO0rWycIjUABJGs1VlXULlKtMJxEX/3Cr6vzEUQJp7iS20gsEEL1fQqMuTK dSAuWFlAaeOwWoy8Xbq9fQ4YIsWCnBWcMfY3gSiFNk2PgzSWmOmAEUwAGcUGN1eAKlDP VzHg== X-Gm-Message-State: AOJu0YzHxXNd61UUXxFZWg0PSkPDr+liFH942HLeSa8pRr8uItRr63Sw ISU1IcQUPfO7DxySypCJk1u7uvh3EOY= X-Received: by 2002:a05:6808:1816:b0:3a7:45e0:c0eb with SMTP id bh22-20020a056808181600b003a745e0c0ebmr13131332oib.24.1693839869207; Mon, 04 Sep 2023 08:04:29 -0700 (PDT) Received: from localhost.localdomain (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id z14-20020a54458e000000b003a9cd23980esm4946286oib.8.2023.09.04.08.04.28 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Sep 2023 08:04:28 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Mon, 4 Sep 2023 12:04:01 -0300 Message-ID: <20230904150411.56777-9-jamrial@gmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20230904150411.56777-1-jamrial@gmail.com> References: <20230904150411.56777-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 08/17] avcodec/decode: check for global side data in AVCodecContext 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: xl50//4ZDxNj Signed-off-by: James Almer --- libavcodec/decode.c | 55 +++++++++++++++++++++++++++++++++++++-------- libavcodec/decode.h | 2 +- 2 files changed, 47 insertions(+), 10 deletions(-) diff --git a/libavcodec/decode.c b/libavcodec/decode.c index 169ee79acd..7a012ba419 100644 --- a/libavcodec/decode.c +++ b/libavcodec/decode.c @@ -1409,25 +1409,31 @@ static int add_metadata_from_side_data(const AVPacket *avpkt, AVFrame *frame) return av_packet_unpack_dictionary(side_metadata, size, frame_md); } -int ff_decode_frame_props_from_pkt(const AVCodecContext *avctx, +static const struct { + enum AVPacketSideDataType packet; + enum AVFrameSideDataType frame; +} sd_global_map[] = { + { AV_PKT_DATA_REPLAYGAIN , AV_FRAME_DATA_REPLAYGAIN }, + { AV_PKT_DATA_SPHERICAL, AV_FRAME_DATA_SPHERICAL }, + { AV_PKT_DATA_STEREO3D, AV_FRAME_DATA_STEREO3D }, + { AV_PKT_DATA_AUDIO_SERVICE_TYPE, AV_FRAME_DATA_AUDIO_SERVICE_TYPE }, + { AV_PKT_DATA_MASTERING_DISPLAY_METADATA, AV_FRAME_DATA_MASTERING_DISPLAY_METADATA }, + { AV_PKT_DATA_CONTENT_LIGHT_LEVEL, AV_FRAME_DATA_CONTENT_LIGHT_LEVEL }, + { AV_PKT_DATA_ICC_PROFILE, AV_FRAME_DATA_ICC_PROFILE }, + { AV_PKT_DATA_DYNAMIC_HDR10_PLUS, AV_FRAME_DATA_DYNAMIC_HDR_PLUS }, +}; + +int ff_decode_frame_props_from_pkt(AVCodecContext *avctx, AVFrame *frame, const AVPacket *pkt) { static const struct { enum AVPacketSideDataType packet; enum AVFrameSideDataType frame; } sd[] = { - { AV_PKT_DATA_REPLAYGAIN , AV_FRAME_DATA_REPLAYGAIN }, { AV_PKT_DATA_DISPLAYMATRIX, AV_FRAME_DATA_DISPLAYMATRIX }, - { AV_PKT_DATA_SPHERICAL, AV_FRAME_DATA_SPHERICAL }, - { AV_PKT_DATA_STEREO3D, AV_FRAME_DATA_STEREO3D }, - { AV_PKT_DATA_AUDIO_SERVICE_TYPE, AV_FRAME_DATA_AUDIO_SERVICE_TYPE }, - { AV_PKT_DATA_MASTERING_DISPLAY_METADATA, AV_FRAME_DATA_MASTERING_DISPLAY_METADATA }, - { AV_PKT_DATA_CONTENT_LIGHT_LEVEL, AV_FRAME_DATA_CONTENT_LIGHT_LEVEL }, { AV_PKT_DATA_A53_CC, AV_FRAME_DATA_A53_CC }, { AV_PKT_DATA_AFD, AV_FRAME_DATA_AFD }, - { AV_PKT_DATA_ICC_PROFILE, AV_FRAME_DATA_ICC_PROFILE }, { AV_PKT_DATA_S12M_TIMECODE, AV_FRAME_DATA_S12M_TIMECODE }, - { AV_PKT_DATA_DYNAMIC_HDR10_PLUS, AV_FRAME_DATA_DYNAMIC_HDR_PLUS }, { AV_PKT_DATA_SKIP_SAMPLES, AV_FRAME_DATA_SKIP_SAMPLES }, }; @@ -1440,6 +1446,23 @@ FF_DISABLE_DEPRECATION_WARNINGS FF_ENABLE_DEPRECATION_WARNINGS #endif + for (int i = 0; i < FF_ARRAY_ELEMS(sd_global_map); i++) { + size_t size; + uint8_t *packet_sd = av_packet_get_side_data(pkt, sd_global_map[i].packet, &size); + if (packet_sd) { + AVFrameSideData *frame_sd; + + av_log(avctx, AV_LOG_DEBUG, + "Overwriting global side data of type \"%s\" in output frame with side data " + "from input packet.\n", av_packet_side_data_name(sd_global_map[i].packet)); + + av_frame_remove_side_data(frame, sd_global_map[i].frame); + frame_sd = av_frame_new_side_data(frame, sd_global_map[i].frame, size); + if (!frame_sd) + return AVERROR(ENOMEM); + memcpy(frame_sd->data, packet_sd, size); + } + } for (int i = 0; i < FF_ARRAY_ELEMS(sd); i++) { size_t size; uint8_t *packet_sd = av_packet_get_side_data(pkt, sd[i].packet, &size); @@ -1476,6 +1499,20 @@ int ff_decode_frame_props(AVCodecContext *avctx, AVFrame *frame) const AVPacket *pkt = avctx->internal->last_pkt_props; int ret; + for (int i = 0; i < FF_ARRAY_ELEMS(sd_global_map); i++) { + AVPacketSideData *packet_sd = av_packet_side_data_set_get(&avctx->packet_side_data, + sd_global_map[i].packet); + if (packet_sd) { + AVFrameSideData *frame_sd = av_frame_new_side_data(frame, + sd_global_map[i].frame, + packet_sd->size); + if (!frame_sd) + return AVERROR(ENOMEM); + + memcpy(frame_sd->data, packet_sd->data, packet_sd->size); + } + } + if (!(ffcodec(avctx->codec)->caps_internal & FF_CODEC_CAP_SETS_FRAME_PROPS)) { ret = ff_decode_frame_props_from_pkt(avctx, frame, pkt); if (ret < 0) diff --git a/libavcodec/decode.h b/libavcodec/decode.h index a52152e4a7..52e5aafc34 100644 --- a/libavcodec/decode.h +++ b/libavcodec/decode.h @@ -67,7 +67,7 @@ int ff_decode_get_packet(AVCodecContext *avctx, AVPacket *pkt); /** * Set various frame properties from the provided packet. */ -int ff_decode_frame_props_from_pkt(const AVCodecContext *avctx, +int ff_decode_frame_props_from_pkt(AVCodecContext *avctx, AVFrame *frame, const AVPacket *pkt); /** From patchwork Mon Sep 4 15:04:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 43535 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4f16:b0:149:dfde:5c0a with SMTP id gi22csp1273493pzb; Mon, 4 Sep 2023 08:05:35 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFumud94yuICZf+bThgEMVFSDA4AgFE5OOh3dn4t7FF7yKMVjUdUHQbs/OFpv3CYa1w2D7n X-Received: by 2002:a17:906:319a:b0:9a5:d095:a8e4 with SMTP id 26-20020a170906319a00b009a5d095a8e4mr7201351ejy.1.1693839935120; Mon, 04 Sep 2023 08:05:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1693839935; cv=none; d=google.com; s=arc-20160816; b=hzH+VwN0oRKT2dxBIVPd96GrxBE4Sh98rVvp+IObaYQeJk64bme2nV81F+KBh4h6EN qUqvgcOEkiH4st2uazWim+YNJQIBIlVsZr00TvOTAPHPiWvdXVeCUae5a/E9DNwvUUlp cz7FdS6UwUhIAcKBmewbHoBhYDL1Lm/DZZW+kZAu9PSfQHQXq3x4Po0dRZcPecmOfrTL OxoedkwNi6tmQ8yepeY6doTScds0l9bmT3hE3RDBxSc1wP+C7Xtu9XYtYyDce1qMsHQq rjuPEg6sU81nGddHeFQQ/lCSIc//sHXQLO4HYrcyTFbbZLBwHkEXv/HpTlMx3cPSW1nq wjoQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=famQ6F1Id7ncSRxZkYGqV7H+kkPeH5vYnpXrpL3zCqw=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=lAdlt8l+7YcBZV5e0YPXKADeSOs4S+tFrkWR8tDG0eHVPoR8TCtmS2/Gts29kRyHXA FoOFBhcwlGo2Y7sKxUVP+xdmS2fJB3d1gt6XpqJ2rfsgnJfRnQsHNBDJI9HLVc+CaVke 5SgJuy7WWcM675W5mprrcNKwa6zANdcXK69oXfz1FdoGSXVwIFZ6dVkztPYgX+KR2BbQ IB+1lo9ImkEL1kzOuyPQGuqSD+5Cc2iFv57WngqRn16GR1tfpnv2aqJfY2FxIJQsC9sc UBgDbsqYVJrXw1dp5G3DYP04OTJMmKOVObBQUYxV0Wk2s+YYkZIytQKjN9izANOgdQP5 VuZg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=Y07qw+ok; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id mb7-20020a170906eb0700b009930e13a56fsi5740731ejb.346.2023.09.04.08.05.33; Mon, 04 Sep 2023 08:05:35 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=Y07qw+ok; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A74FC68C77C; Mon, 4 Sep 2023 18:04:36 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oi1-f181.google.com (mail-oi1-f181.google.com [209.85.167.181]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BB85068C7AD for ; Mon, 4 Sep 2023 18:04:32 +0300 (EEST) Received: by mail-oi1-f181.google.com with SMTP id 5614622812f47-3a8614fe8c4so1088788b6e.1 for ; Mon, 04 Sep 2023 08:04:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1693839871; x=1694444671; darn=ffmpeg.org; 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=p+V863WpymnN/7mp+XFBYluoCWioLaYK4IatqdGKoHw=; b=Y07qw+okOPU5OneyfARWB+pAr8lvw1q1XriX+yJg4PK6I/ra6f6uIObb6h7v+wbEXQ oDJUdNTeVhI/kU8UDlZRH9LyztV2hEDJc1yRwOxhpialYWJ9Mpf3RDV/dYyOPcWNg4Tn 56NRbAGGAq1LHU3oJ3FCM+iEax4eWOthvHPWikna4sOewxJk4m5SYOUkr6S9DA/g/ONy n8mkzWOVGLV1uBS+zakMtNbWohtd7lbobgCbElC9FpbOfjqnhrQ9dDzMYaAo5iyqP/IP TjBi0lKgu1JmbOkrXBQhzV8764iOhviLqMIIWPmoDRM6+tpUrZvhbZDsj9uDnregdOmj 4pbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693839871; x=1694444671; 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=p+V863WpymnN/7mp+XFBYluoCWioLaYK4IatqdGKoHw=; b=T+NE01ubgJ7jfR3/MqYW+4es8yt5fwSp6mw2ca4WZxePpIXS0ldA/i4Ydh1xRezcW7 ioomQYAeqqrjSQR7dZVDvL4bGNPZhOjy56P72lIkm/P5gQJPYoJNO8pstnJVXMHF32Ep 1L6lj+e4+EGuDuDhCZ/H23YZRPYeUK1HkntC7+jTplteweH1m10ZbGXKDgaHjWrsvnom yFwqnOCmtHeybWEhR5hFVYrctENFZFBQkn65RmKDDvfRnfasL8WuJE5XtcSCSnUZdex2 Zx1AruhfMlxitazh7UIYpjyLRphYT2G3vkhBGaN65/xZ0AUaOz01xj0I3Sx7vwpkhQw/ dYCg== X-Gm-Message-State: AOJu0YwAMUw5vF7v2C+QLEQYCmLqCOBa6EleOaer1F6nR4nu8egA4mK7 lVPdsewuLc26oLNo/vGoEPRFnZesng0= X-Received: by 2002:a05:6808:1308:b0:3a7:b011:8960 with SMTP id y8-20020a056808130800b003a7b0118960mr14064368oiv.40.1693839870501; Mon, 04 Sep 2023 08:04:30 -0700 (PDT) Received: from localhost.localdomain (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id z14-20020a54458e000000b003a9cd23980esm4946286oib.8.2023.09.04.08.04.29 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Sep 2023 08:04:30 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Mon, 4 Sep 2023 12:04:02 -0300 Message-ID: <20230904150411.56777-10-jamrial@gmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20230904150411.56777-1-jamrial@gmail.com> References: <20230904150411.56777-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 09/17] fftools/ffmpeg: stop injecting stream side data in packets 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: Fe05r9ogprUw This is no longer needed as the side data is available for decoders in the AVCodecContext. The tests affected reflect the removal of useless CPB and Stereo 3D side data in packets. Signed-off-by: James Almer --- fftools/ffmpeg_demux.c | 22 ------------------- tests/ref/fate/autorotate | 4 ++-- tests/ref/fate/copy-trac3074 | 2 +- tests/ref/fate/matroska-avoid-negative-ts | 2 +- tests/ref/fate/matroska-dovi-write-config7 | 2 +- tests/ref/fate/matroska-dovi-write-config8 | 2 +- tests/ref/fate/matroska-encoding-delay | 2 +- .../fate/matroska-mastering-display-metadata | 4 ++-- tests/ref/fate/matroska-spherical-mono-remux | 4 ++-- tests/ref/fate/matroska-stereo_mode | 8 +++---- tests/ref/fate/matroska-vp8-alpha-remux | 2 +- .../ref/fate/mov-mp4-disposition-mpegts-remux | 4 ++-- tests/ref/fate/mxf-d10-user-comments | 2 +- tests/ref/fate/mxf-remux-applehdr10 | 2 +- tests/ref/fate/vp9-superframe-bsf | 2 +- 15 files changed, 21 insertions(+), 43 deletions(-) diff --git a/fftools/ffmpeg_demux.c b/fftools/ffmpeg_demux.c index 6cf6d2e971..450438eaab 100644 --- a/fftools/ffmpeg_demux.c +++ b/fftools/ffmpeg_demux.c @@ -480,28 +480,6 @@ static int input_packet_process(Demuxer *d, DemuxMsg *msg, AVPacket *src) ds->data_size += pkt->size; ds->nb_packets++; - /* add the stream-global side data to the first packet */ - if (ds->nb_packets == 1) { - for (int i = 0; i < ist->st->codecpar->side_data.nb_sd; i++) { - AVPacketSideData *src_sd = ist->st->codecpar->side_data.sd[i]; - uint8_t *dst_data; - - if (src_sd->type == AV_PKT_DATA_DISPLAYMATRIX) - continue; - - if (av_packet_get_side_data(pkt, src_sd->type, NULL)) - continue; - - dst_data = av_packet_new_side_data(pkt, src_sd->type, src_sd->size); - if (!dst_data) { - ret = AVERROR(ENOMEM); - goto fail; - } - - memcpy(dst_data, src_sd->data, src_sd->size); - } - } - if (debug_ts) { av_log(NULL, AV_LOG_INFO, "demuxer+ffmpeg -> ist_index:%d:%d type:%s pkt_pts:%s pkt_pts_time:%s pkt_dts:%s pkt_dts_time:%s duration:%s duration_time:%s off:%s off_time:%s\n", f->index, pkt->stream_index, diff --git a/tests/ref/fate/autorotate b/tests/ref/fate/autorotate index dff628bbff..2aa29fafa7 100644 --- a/tests/ref/fate/autorotate +++ b/tests/ref/fate/autorotate @@ -11,8 +11,8 @@ #codec_id 1: ac3 #sample_rate 1: 44100 #channel_layout_name 1: mono -0, -512, 0, 512, 6997, 0x55c700f6, S=1, 40 -1, -256, -256, 1536, 416, 0x92ddc529, S=2, 10, 4 +0, -512, 0, 512, 6997, 0x55c700f6 +1, -256, -256, 1536, 416, 0x92ddc529, S=1, 10 0, 0, 512, 512, 4847, 0xe74f522e, F=0x0 1, 1280, 1280, 1536, 418, 0x0a7fcd2d 0, 512, 1024, 512, 5281, 0xbd4a5dac, F=0x0 diff --git a/tests/ref/fate/copy-trac3074 b/tests/ref/fate/copy-trac3074 index b6d23f8c1c..53ba27e920 100644 --- a/tests/ref/fate/copy-trac3074 +++ b/tests/ref/fate/copy-trac3074 @@ -5,7 +5,7 @@ #codec_id 0: eac3 #sample_rate 0: 48000 #channel_layout_name 0: stereo -0, 0, 0, 1536, 512, 0x2beaf79f, S=1, 4 +0, 0, 0, 1536, 512, 0x2beaf79f 0, 1536, 1536, 1536, 512, 0x29ddf9d6 0, 3072, 3072, 1536, 512, 0xba0afa79 0, 4608, 4608, 1536, 512, 0xe019f394 diff --git a/tests/ref/fate/matroska-avoid-negative-ts b/tests/ref/fate/matroska-avoid-negative-ts index 05821cbf09..3ba289c6e6 100644 --- a/tests/ref/fate/matroska-avoid-negative-ts +++ b/tests/ref/fate/matroska-avoid-negative-ts @@ -11,7 +11,7 @@ dede1d72a28c7eb0a849acf230b08247 *tests/data/fate/matroska-avoid-negative-ts.mat #codec_id 1: mp3 #sample_rate 1: 44100 #channel_layout_name 1: mono -0, -37, 43, 40, 9156, 0xe5bd034a, S=1, 40 +0, -37, 43, 40, 9156, 0xe5bd034a 1, 0, 0, 26, 417, 0x7198c15e 0, 3, 3, 40, 1740, 0x29ac4480, F=0x0 1, 26, 26, 26, 417, 0x3c67c32d diff --git a/tests/ref/fate/matroska-dovi-write-config7 b/tests/ref/fate/matroska-dovi-write-config7 index aaeeb34751..dc5b73a44e 100644 --- a/tests/ref/fate/matroska-dovi-write-config7 +++ b/tests/ref/fate/matroska-dovi-write-config7 @@ -13,7 +13,7 @@ #dimensions 1: 1920x1080 #sar 1: 0/1 0, -83, 0, 41, 699, 0x728548f1 -1, -83, 0, 41, 1085, 0xfb2dba82, S=1, 8 +1, -83, 0, 41, 1085, 0xfb2dba82 0, -42, 167, 41, 95, 0xc0312044, F=0x0 1, -42, 167, 41, 481, 0xf23f91d5, F=0x0 0, 0, 83, 41, 99, 0x5e0a2221, F=0x0 diff --git a/tests/ref/fate/matroska-dovi-write-config8 b/tests/ref/fate/matroska-dovi-write-config8 index 55fe191047..472cbed708 100644 --- a/tests/ref/fate/matroska-dovi-write-config8 +++ b/tests/ref/fate/matroska-dovi-write-config8 @@ -12,7 +12,7 @@ #codec_id 1: aac #sample_rate 1: 44100 #channel_layout_name 1: stereo -0, -67, 0, 33, 63375, 0xc76606ab, S=1, 8 +0, -67, 0, 33, 63375, 0xc76606ab 0, -34, 133, 33, 46706, 0x0e08a7e5, F=0x0 0, 0, 67, 33, 29766, 0x753c031a, F=0x0 1, 0, 0, 23, 6, 0x031e0108 diff --git a/tests/ref/fate/matroska-encoding-delay b/tests/ref/fate/matroska-encoding-delay index d2ff2d07be..ee1989cbcb 100644 --- a/tests/ref/fate/matroska-encoding-delay +++ b/tests/ref/fate/matroska-encoding-delay @@ -12,7 +12,7 @@ #sample_rate 1: 48000 #channel_layout_name 1: stereo 1, -10, -10, 24, 1152, 0x724077b8 -0, 0, 0, 40, 237628, 0xeff25579, S=1, 40 +0, 0, 0, 40, 237628, 0xeff25579 1, 14, 14, 24, 1152, 0x80625572 1, 38, 38, 24, 1152, 0x7d7f4dce 0, 40, 40, 40, 238066, 0xb2265f41 diff --git a/tests/ref/fate/matroska-mastering-display-metadata b/tests/ref/fate/matroska-mastering-display-metadata index 3726469213..53f84c1793 100644 --- a/tests/ref/fate/matroska-mastering-display-metadata +++ b/tests/ref/fate/matroska-mastering-display-metadata @@ -22,9 +22,9 @@ #codec_id 3: ffv1 #dimensions 3: 1280x720 #sar 3: 1/1 -0, 0, 0, 16, 57008, 0x43416399, S=2, 8, 88 +0, 0, 0, 16, 57008, 0x43416399 1, 0, 0, 16, 2403, 0xaa818522 -3, 0, 0, 16, 274117, 0xc439610f, S=2, 8, 88 +3, 0, 0, 16, 274117, 0xc439610f 0, 17, 17, 16, 57248, 0xa06cd7b5 1, 17, 17, 16, 2403, 0xe1a991e5 2, 17, 17, 16, 1602, 0x5d868171 diff --git a/tests/ref/fate/matroska-spherical-mono-remux b/tests/ref/fate/matroska-spherical-mono-remux index e9904b2c92..6fcda14822 100644 --- a/tests/ref/fate/matroska-spherical-mono-remux +++ b/tests/ref/fate/matroska-spherical-mono-remux @@ -12,8 +12,8 @@ fddfea5f05a7a9a0d187df9a72900055 *tests/data/fate/matroska-spherical-mono-remux. #codec_id 1: h264 #dimensions 1: 1920x1080 #sar 1: 0/1 -0, -80, 0, 40, 69118, 0x73cb52f0, S=2, 12, 36 -1, -80, 0, 40, 69118, 0x73cb52f0, S=2, 12, 36 +0, -80, 0, 40, 69118, 0x73cb52f0 +1, -80, 0, 40, 69118, 0x73cb52f0 0, -40, 160, 40, 1103, 0x082a059f, F=0x0 1, -40, 160, 40, 1103, 0x082a059f, F=0x0 [STREAM] diff --git a/tests/ref/fate/matroska-stereo_mode b/tests/ref/fate/matroska-stereo_mode index 5c36a6d666..739b789fea 100644 --- a/tests/ref/fate/matroska-stereo_mode +++ b/tests/ref/fate/matroska-stereo_mode @@ -43,10 +43,10 @@ a7a220a77001e81685ec807ce5ac3bc6 *tests/data/fate/matroska-stereo_mode.matroska #dimensions 6: 512x512 #sar 6: 2/1 0, 0, 0, 1000, 206173, 0x95af7455 -1, 0, 0, 1000, 206173, 0x95af7455, S=1, 12 -2, 0, 0, 1000, 206173, 0x95af7455, S=1, 12 -3, 0, 0, 1000, 206173, 0x95af7455, S=1, 12 -4, 0, 0, 1000, 206173, 0x95af7455, S=1, 12 +1, 0, 0, 1000, 206173, 0x95af7455 +2, 0, 0, 1000, 206173, 0x95af7455 +3, 0, 0, 1000, 206173, 0x95af7455 +4, 0, 0, 1000, 206173, 0x95af7455 5, 0, 0, 1000, 206173, 0x95af7455 6, 0, 0, 1000, 206173, 0x95af7455 0, 1000, 1000, 1000, 36, 0x34891010, F=0x0 diff --git a/tests/ref/fate/matroska-vp8-alpha-remux b/tests/ref/fate/matroska-vp8-alpha-remux index eba3ffb77a..8117325433 100644 --- a/tests/ref/fate/matroska-vp8-alpha-remux +++ b/tests/ref/fate/matroska-vp8-alpha-remux @@ -5,7 +5,7 @@ #codec_id 0: vp8 #dimensions 0: 320x213 #sar 0: 1/1 -0, 0, 0, 33, 2108, 0x59b92a34, S=2, 1900, 12 +0, 0, 0, 33, 2108, 0x59b92a34, S=1, 1900 0, 32, 32, 33, 142, 0x2f2a3fed, F=0x0, S=1, 160 0, 65, 65, 33, 157, 0x17804767, F=0x0, S=1, 209 0, 99, 99, 33, 206, 0x537262ca, F=0x0, S=1, 317 diff --git a/tests/ref/fate/mov-mp4-disposition-mpegts-remux b/tests/ref/fate/mov-mp4-disposition-mpegts-remux index efef043074..ba419843dc 100644 --- a/tests/ref/fate/mov-mp4-disposition-mpegts-remux +++ b/tests/ref/fate/mov-mp4-disposition-mpegts-remux @@ -10,9 +10,9 @@ adb3b95c07a5f3e0c86641dd62f01dae *tests/data/fate/mov-mp4-disposition-mpegts-rem #codec_id 1: ac3 #sample_rate 1: 48000 #channel_layout_name 1: stereo -1, 0, 0, 1536, 768, 0xa63778d4, S=1, 4 +1, 0, 0, 1536, 768, 0xa63778d4 1, 1536, 1536, 1536, 768, 0x7d577f3f -0, 3072, 3072, 1536, 768, 0xc2867884, S=1, 4 +0, 3072, 3072, 1536, 768, 0xc2867884 1, 3072, 3072, 1536, 768, 0xd86b7c8f 0, 4608, 4608, 1536, 690, 0xa2714bf3 1, 4608, 4608, 1536, 626, 0x09f4382f diff --git a/tests/ref/fate/mxf-d10-user-comments b/tests/ref/fate/mxf-d10-user-comments index 1b59beec7c..ccfdc83f11 100644 --- a/tests/ref/fate/mxf-d10-user-comments +++ b/tests/ref/fate/mxf-d10-user-comments @@ -6,7 +6,7 @@ #codec_id 0: mpeg2video #dimensions 0: 1280x720 #sar 0: 3/4 -0, -1, 0, 1, 150000, 0x0547870d, S=1, 40 +0, -1, 0, 1, 150000, 0x0547870d 0, 0, 1, 1, 150000, 0xe80a1612, F=0x0 0, 1, 2, 1, 150000, 0xc5c50e2f, F=0x0 0, 2, 3, 1, 150000, 0x51e28a04, F=0x0 diff --git a/tests/ref/fate/mxf-remux-applehdr10 b/tests/ref/fate/mxf-remux-applehdr10 index 29e0e03a72..9fbf8b60c7 100644 --- a/tests/ref/fate/mxf-remux-applehdr10 +++ b/tests/ref/fate/mxf-remux-applehdr10 @@ -10,7 +10,7 @@ #codec_id 1: pcm_s24le #sample_rate 1: 48000 #channel_layout_name 1: mono -0, 0, 0, 1, 57008, 0x43416399, S=1, 88 +0, 0, 0, 1, 57008, 0x43416399 1, 0, 0, 801, 2403, 0x00000000 0, 1, 1, 1, 57248, 0xa06cd7b5 1, 801, 801, 801, 2403, 0x00000000 diff --git a/tests/ref/fate/vp9-superframe-bsf b/tests/ref/fate/vp9-superframe-bsf index d7985c6973..485644dfb2 100644 --- a/tests/ref/fate/vp9-superframe-bsf +++ b/tests/ref/fate/vp9-superframe-bsf @@ -3,7 +3,7 @@ #codec_id 0: vp9 #dimensions 0: 352x288 #sar 0: 1/1 -0, 0, 0, 33, 6958, 0x38e58ee6, S=1, 12 +0, 0, 0, 33, 6958, 0x38e58ee6 0, 33, 33, 33, 852, 0x3edf9ed0, F=0x0 0, 66, 66, 33, 27, 0x62d007e5, F=0x0 0, 100, 100, 33, 25, 0x51980749, F=0x0 From patchwork Mon Sep 4 15:04:03 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 43537 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4f16:b0:149:dfde:5c0a with SMTP id gi22csp1273761pzb; Mon, 4 Sep 2023 08:05:54 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFiuCaEqtd27kpac04DO2vDPlskQ/unLJ0+g9qRBC2XFDmIXdThvXqMpYENda480KWMiDEj X-Received: by 2002:a05:6402:4407:b0:52c:9f89:4447 with SMTP id y7-20020a056402440700b0052c9f894447mr4960874eda.4.1693839953720; Mon, 04 Sep 2023 08:05:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1693839953; cv=none; d=google.com; s=arc-20160816; b=UebIBTs1EgnbiewgpfDF7o5qVAHdXYCT9cyVeUKjsG8ldvsdPHkWT8U1yjckFpr/K5 AcJl4TmWnmewOQrUbuOzRp8xqDu876wqFnmyJrHWNfYLVVrFKXP9bjZscXm/ymHXPuPx CocJzFR+YlaqRNPSsBRwG3n73+vWMW/rrvb43HqZiqh5BwLfCEuQjAbD1clgaNuenHm9 qhIchX1cTePIvnZk795wnXlMrdDMC/jv7xFWQ/A01bwgh/yfvZi5X6e7YaQixoIEQKXE NL9Y0VVbrIWb+ywl4cuoJUKIH8F/txbSWh9kk3ch0ZUO4FSnnVzAwdoAL6dO+ChLIZDg CpIg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=LZGqo91GoFvTQ2pKuhQNjWYhEtlFwYAJUdQbm7ubsKs=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=jyOZi4MZVbvUHVa19jyX+Uov6VuXcmgaX0sRuAlSp12x6ailbVJKAbgp1RPzE/xSHa nTG3Vz2hr65dB4PpC5mk1CM88kvO3W9loc5HqG2ov/GUYUb/DwPEQuaqX2nQiuXtDKEh 4qTzt0DKGh80EcZ8U54bnhf9e14cs+9xg/rrcGsZLydD+RN3XRyw90ZcOusbfjGgrEcZ fGvQ+IaNPvQ8ysm+AGVNRWgl9gxZO78b6gOurRbRSF4o3k2AjHRaVrhqjVL2OgDCFiyI SpGlRjkBZIiFxeIQcB2DNmDjhtJlPz7FxaYDUaPzGdEBlXiG1KgYATCNAGcc8wfHIY2X 72RA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=c93X4kJS; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id z8-20020aa7d408000000b0052a3c95becfsi6628255edq.137.2023.09.04.08.05.50; Mon, 04 Sep 2023 08:05:53 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=c93X4kJS; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9572C68C7FB; Mon, 4 Sep 2023 18:04:38 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oi1-f182.google.com (mail-oi1-f182.google.com [209.85.167.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B0DBE68C7CA for ; Mon, 4 Sep 2023 18:04:33 +0300 (EEST) Received: by mail-oi1-f182.google.com with SMTP id 5614622812f47-3aa1c04668bso782213b6e.0 for ; Mon, 04 Sep 2023 08:04:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1693839872; x=1694444672; darn=ffmpeg.org; 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=5eDWL8aCoc/PIEyNAqTUIYD6KIlDUp/PYX8cr3CtwtM=; b=c93X4kJSqXYylWyl2JOWdgPLWXnAghtqfXqasA6nWJq+Tto28eZdx/JhwsX2zcESKf SMWDr3yI9dO4S6LimJRXab6nrz3C4jHXg6Gu2Ft6CnRvJTPsP8EGebnblKBXJT6+jUy6 cGXjwvm14PIVBb2VF0Z5T++4uVOrKC6iYb6AXtTRUv9L2jz1oRusrF511ksf31pViot8 NtuGlZUKPOGpso/px/05dpvEvG7hORyrWWGrO0pUYbpAq19O0A2t2SMnZra+K1iPGdLD qRsFNeLh7yUtMTwahhWXCI1JtFZWfmpgZ14hSAqTsTMavbB2/Q4K8Cwtga73jLRyo9wZ wcvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693839872; x=1694444672; 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=5eDWL8aCoc/PIEyNAqTUIYD6KIlDUp/PYX8cr3CtwtM=; b=jOIyZ9jlPlKnDLB3as7oy/R1dZoqTUJrORPe8wftvm20zNhbvvU15NPWZYeSjbkBJq 0+xy6Zw551dWqromvt09VgMu3pnYlTjqpjIzFjDXl4b2EoKrb5y3SDYa/pPnpHGZ7OPt QkXQwkRnaV2qTUeuz29B7v11lis0nK4unui9VEG1nuqgGTtBV3qyVukr4mJzL77rKxYc +sIf8Eqv4vomq7T01hDQ01KAFBSFHLaqELigazszYSrugs497sRLBLD58N3oBEePRMRZ G/+MOpGF6Pec1odfQKpCQuHb7lHlxxeU5CjVO/Umh1rtENZskBTNoRKaV3CmYyxmBGAg 1ryA== X-Gm-Message-State: AOJu0YzwlJstRZoVRxF4dbjq9slkBdIYR22pSevExjeX7bEfgfcGgdi4 jo8V6Trq8hzzO74QHmTMqsuuZEdBzuI= X-Received: by 2002:a05:6808:202a:b0:3a7:4161:44ee with SMTP id q42-20020a056808202a00b003a7416144eemr11463844oiw.6.1693839871740; Mon, 04 Sep 2023 08:04:31 -0700 (PDT) Received: from localhost.localdomain (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id z14-20020a54458e000000b003a9cd23980esm4946286oib.8.2023.09.04.08.04.30 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Sep 2023 08:04:31 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Mon, 4 Sep 2023 12:04:03 -0300 Message-ID: <20230904150411.56777-11-jamrial@gmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20230904150411.56777-1-jamrial@gmail.com> References: <20230904150411.56777-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 10/17] fftools/ffplay: stop injecting stream side data in packets 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: N5d2JuyxNxIZ This is no longer needed as the side data is available for decoders in the AVCodecContext. Signed-off-by: James Almer --- fftools/ffplay.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/fftools/ffplay.c b/fftools/ffplay.c index 751526a2a3..bedb33534d 100644 --- a/fftools/ffplay.c +++ b/fftools/ffplay.c @@ -2793,8 +2793,6 @@ static int read_thread(void *arg) if (genpts) ic->flags |= AVFMT_FLAG_GENPTS; - av_format_inject_global_side_data(ic); - if (find_stream_info) { AVDictionary **opts; int orig_nb_streams = ic->nb_streams; From patchwork Mon Sep 4 15:04:04 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 43539 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4f16:b0:149:dfde:5c0a with SMTP id gi22csp1274012pzb; Mon, 4 Sep 2023 08:06:12 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEynQS+mcdvRwdZJhDC1DX//nuIOV5WYUqjzTx3WD9WDzMCyOh/LkxB+/ELVvsKDOPFtJKK X-Received: by 2002:a05:6512:69:b0:500:95f6:ba3d with SMTP id i9-20020a056512006900b0050095f6ba3dmr6056980lfo.21.1693839971689; Mon, 04 Sep 2023 08:06:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1693839971; cv=none; d=google.com; s=arc-20160816; b=qGptXLLEvYXIMrmKMFI9oJjLoNQiJZrwaNp6W8M9y8+26mUvIWT/Xku0BNAM3agp7f 7v2cQiNuMG7hXA/rDzgeRR6AUS9PZ76Z9xMnOr82BMk7ALjuTpQvQozdt6fh8m9xW37z x/Cy/YheftWiwePAdyOBVu1g1/RHa8T/OeQFvtNZnMn+4DrQ7WT+Imh0pixojY4o/TAk YI8SxaR7NUzpo1lzxudzo2CT0+sILnt3Njuo3WNp2a1o/SoJRvfQwqBvCK7DX5VPYyDO waD2VBuG3XY00rk88FDgnSwlLgZZaopathfbX9F7AKDnqov7OBYTzJJKjwVEw3VIaGtF +Z7w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=npJBEmxsWMmSuO2axwwYtqM3xO0cyKUPL8PoeU4cbfo=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=R/LYrvBa8wE7UvNJ93sgYbHM6nojh5Z1Q/GryCHdFDx4HckcByrvFkspRMSXJJjYam Tr0pZzGdnlI1jPQLI0y1vQzXp9YOnqNOn6b2nO/iP07NQLLtQL+Wg4bGplPCI7VSMMiX ih49yaoM0rFeOT31piH7IpQpKWR+cDIKZljjd6zU1PLCGN8Ku3ccHIN/P/j5gqMITLEZ Iqxs5F2sNFWtdcy8FybCLx+V7VWyLUKtXUwboRp0YxZip6Z4KWncFxAmePyDSbqaDbmI rDgEH8YE/SYRS7x5WdXkAjo1k3+uslo1A8uQUuMRRHxc/gWfuB0CBPu9nuElFOUbYFA8 tPXw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=cPOzBmx3; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id h14-20020a17090634ce00b0096fe1a56de3si6164666ejb.1048.2023.09.04.08.06.08; Mon, 04 Sep 2023 08:06:11 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=cPOzBmx3; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 618FF68C801; Mon, 4 Sep 2023 18:04:40 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oi1-f182.google.com (mail-oi1-f182.google.com [209.85.167.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C0BEF68C7D4 for ; Mon, 4 Sep 2023 18:04:34 +0300 (EEST) Received: by mail-oi1-f182.google.com with SMTP id 5614622812f47-3a7ca8720a0so1149108b6e.2 for ; Mon, 04 Sep 2023 08:04:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1693839873; x=1694444673; darn=ffmpeg.org; 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=UEniTnfAQlzI86rc+DCvbN9hv8crEDVofJZGPSsAxUI=; b=cPOzBmx3W1Y/96I0xVgnZg6y9Y7svGyvBUT0/ZwYNWKpC3Az3ZEWrKzzgWznh3npUQ arkviX2L/XmLr5D9KGu9EL2O4ahRlvrPJRO6v3IgROzjMh9jd+if0LJCaiFnoXATAcPR zXqlr8dixI+bMVbWWea2kSDw8Y1FIQsk+P1xFUqO7I9Yki7PFIpCW6RdSSko6U4mSSAW Q2Q0DbTv7ScIocdgvQEBTLRgBP0Yf/nVuNuwBU8IqtWYdze3EAMfqIDFzJ49/3ZmZCJx sBbZ5d5dY+vxEGYwJ2bd2gyf7g7uXPjSZGzvUDo/ORdLqxwTBRJ/5NMpSP7N1pNYlvUJ eG/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693839873; x=1694444673; 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=UEniTnfAQlzI86rc+DCvbN9hv8crEDVofJZGPSsAxUI=; b=I5m/b4ge5yWsSPhQtMo4yEVQXrAqAwLAw2lrnM1Gc8AE36oupPXusXprikvQBjCnAI FX4JE703IwdOA0x40dW0H1g+P81ENtALQtX0Z6FnkymfFac0g8jrRW7qPj0w/X1iGUEZ 8814ut+u/0eK/2a9th+errg0JeQbZ+xFt+CsH2ikbpOWBE0c2MgMeB7CHeE+xAWvLDVN WAzgv2uJaXOyVBi04OkbVdy2H6NE19cqFLlYhzYfIo3PAbCbYImapjfxhpefxZabNTuP JSoIVEtdQPVrw+DceoRuCi5lKZ9IWbHFObjcX/boUfK7M/mTayxp8XUoARQTXyuQHL3/ +/+w== X-Gm-Message-State: AOJu0YyF4dnOnbFh7SeMXL6aJuj6VqvymPEySKKv1/5Brbg+Qybfycmi qwVCdM1jNEXO0IL1Nea319duqvGH2tA= X-Received: by 2002:a05:6808:bc3:b0:3a7:3100:f8b9 with SMTP id o3-20020a0568080bc300b003a73100f8b9mr14943869oik.31.1693839872969; Mon, 04 Sep 2023 08:04:32 -0700 (PDT) Received: from localhost.localdomain (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id z14-20020a54458e000000b003a9cd23980esm4946286oib.8.2023.09.04.08.04.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Sep 2023 08:04:32 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Mon, 4 Sep 2023 12:04:04 -0300 Message-ID: <20230904150411.56777-12-jamrial@gmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20230904150411.56777-1-jamrial@gmail.com> References: <20230904150411.56777-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 11/17] Revert "avcodec/mpeg12dec: Do not alter avctx->rc_buffer_size" 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: uomcl9cZ5ipc This reverts commit eb88ccb92e05018b1060cf8126b30eeeff551d3b. Signed-off-by: James Almer --- libavcodec/mpeg12dec.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c index 36461a9ae6..2290a90778 100644 --- a/libavcodec/mpeg12dec.c +++ b/libavcodec/mpeg12dec.c @@ -76,7 +76,6 @@ typedef struct Mpeg1Context { unsigned aspect_ratio_info; AVRational save_aspect; int save_width, save_height, save_progressive_seq; - int rc_buffer_size; AVRational frame_rate_ext; /* MPEG-2 specific framerate modificator */ unsigned frame_rate_index; int sync; /* Did we reach a sync point like a GOP/SEQ/KEYFrame? */ @@ -1392,7 +1391,7 @@ static void mpeg_decode_sequence_extension(Mpeg1Context *s1) bit_rate_ext = get_bits(&s->gb, 12); /* XXX: handle it */ s->bit_rate += (bit_rate_ext << 18) * 400LL; check_marker(s->avctx, &s->gb, "after bit rate extension"); - s1->rc_buffer_size += get_bits(&s->gb, 8) * 1024 * 16 << 10; + s->avctx->rc_buffer_size += get_bits(&s->gb, 8) * 1024 * 16 << 10; s->low_delay = get_bits1(&s->gb); if (s->avctx->flags & AV_CODEC_FLAG_LOW_DELAY) @@ -1405,7 +1404,7 @@ static void mpeg_decode_sequence_extension(Mpeg1Context *s1) s->codec_id = s->avctx->codec_id = AV_CODEC_ID_MPEG2VIDEO; if (cpb_props = ff_add_cpb_side_data(s->avctx)) { - cpb_props->buffer_size = s1->rc_buffer_size; + cpb_props->buffer_size = s->avctx->rc_buffer_size; if (s->bit_rate != 0x3FFFF*400) cpb_props->max_bitrate = s->bit_rate; } @@ -1414,7 +1413,7 @@ static void mpeg_decode_sequence_extension(Mpeg1Context *s1) av_log(s->avctx, AV_LOG_DEBUG, "profile: %d, level: %d ps: %d cf:%d vbv buffer: %d, bitrate:%"PRId64"\n", s->avctx->profile, s->avctx->level, s->progressive_sequence, s->chroma_format, - s1->rc_buffer_size, s->bit_rate); + s->avctx->rc_buffer_size, s->bit_rate); } static void mpeg_decode_sequence_display_extension(Mpeg1Context *s1) @@ -2104,7 +2103,7 @@ static int mpeg1_decode_sequence(AVCodecContext *avctx, return AVERROR_INVALIDDATA; } - s1->rc_buffer_size = get_bits(&s->gb, 10) * 1024 * 16; + s->avctx->rc_buffer_size = get_bits(&s->gb, 10) * 1024 * 16; skip_bits(&s->gb, 1); /* get matrix */ @@ -2152,7 +2151,7 @@ static int mpeg1_decode_sequence(AVCodecContext *avctx, if (s->avctx->debug & FF_DEBUG_PICT_INFO) av_log(s->avctx, AV_LOG_DEBUG, "vbv buffer: %d, bitrate:%"PRId64", aspect_ratio_info: %d \n", - s1->rc_buffer_size, s->bit_rate, s1->aspect_ratio_info); + s->avctx->rc_buffer_size, s->bit_rate, s1->aspect_ratio_info); return 0; } From patchwork Mon Sep 4 15:04:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 43541 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4f16:b0:149:dfde:5c0a with SMTP id gi22csp1274235pzb; Mon, 4 Sep 2023 08:06:27 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEYHU0Mg0Rv+QAf66/d3O1hTWnjld5DrAY8ZVEAXthdJia4Y7FqO7WhTBTrAKXaqmX+zNQR X-Received: by 2002:a17:906:3098:b0:9a5:7ade:b5e1 with SMTP id 24-20020a170906309800b009a57adeb5e1mr7101986ejv.70.1693839987000; Mon, 04 Sep 2023 08:06:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1693839986; cv=none; d=google.com; s=arc-20160816; b=nX6tHRHiMjMBY2s3Nfr9v9xpOOtqMJVrI7hiewW/n04cKCQyFs4JjLEYZH8LRDJO/S C6rWH8BJKhSeV0VuNJpmZAmNG+/N9kTk3xbsi5cpAW2fi27DoYbTrGb+CJeUhDKVLLl0 LUk3iVML3dGhMPjQAmzyebEucPIziXznEuAj+wMCiBTjtS+9s1cFWeEQxXUdrSSeBkV3 nCt4nicYsPyXK0BEpTGgPHZSHBpXfky9zRCI+tVsAVJd8R726QLyaf63+PTMc6c5rt3s 7SGdIaWOpzdxVtlTueOX++vSyknrVTrpSTZ8cThqkoI6ZbwstUcD5YnIjgXnbtRhQsEC TBmg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=yulZkfhXYY2L3PNisqFpAAH8JgsWJ+CKeqtK/mwgwp8=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=ngGa32b/q4og6lPB3DWooT/J1p0f3YlGZDdkK4GSs8ujih3ep1ku2rVN/Vxnxn4cZr uGbmZAvsuPKFqqVSCcr+Csm4RzryERpTpB13fZ3iuD+ZLk388XrEg0wMI7sKeLvTfJP3 HH1EkHLBjPqR7IlrWPkCPacCMgjeLQk1ZiPyQe0gfthpA3NA4qAr/n2PRMhCddui6kta oU1o2LzUepnvnbZxsIPD0Si3Rw5Xyxv6b++tPTEWhdv+hIwBKNa4ei3Vd7lS0aMQWYbV 0ECgEc84jo2WdlmD8WL8FBpYaVD1inly9MmQDzOxAwm6teCseh4ICEr4NNDMOaKkh9ap oiEA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b="mRLX/jX3"; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id j9-20020a170906410900b0099dc5c06b96si6128511ejk.623.2023.09.04.08.06.26; Mon, 04 Sep 2023 08:06:26 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b="mRLX/jX3"; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4451068C822; Mon, 4 Sep 2023 18:04:42 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oi1-f174.google.com (mail-oi1-f174.google.com [209.85.167.174]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 41DB868C7E1 for ; Mon, 4 Sep 2023 18:04:35 +0300 (EEST) Received: by mail-oi1-f174.google.com with SMTP id 5614622812f47-3a86a0355dfso1014720b6e.0 for ; Mon, 04 Sep 2023 08:04:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1693839874; x=1694444674; darn=ffmpeg.org; 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=dUWCRdlPahZDCTKxRsCTDBlogfLZmaSooYGR4PDPz84=; b=mRLX/jX3lH7TpHFZC+iz4iWaYQ3+pfzksNaf25FxHL9Ru1ZJeMBpN8FAFRwhLvPDzA NyUXbwq2EP6z/PJA/y2GyZUARWFSEZNp+JVKXio72gXgiNkarqIy4I5eEKbHds5thlv8 VXZLuCZfv9gu5OTWyeOrOjVo4v6a/W67HgqCXTo4E7Mnc5/JD75NYx+/dp0fmqMzTepe oQ2v6Y6JRcCEHrw3YZEzERIALtCBI5z2BCCZPa3WAVTqrmAyIW/YtTvdIdXVGLVX6kzs vel0i9RlJiGjL/1owvK1J7uwYA/u33XYYF2QgstI7RtLy1hxYi3qyuNzpEZUjbvtQ5FW BKtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693839874; x=1694444674; 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=dUWCRdlPahZDCTKxRsCTDBlogfLZmaSooYGR4PDPz84=; b=AkDHNxvr+8TBX53fKfLAsYASyGjKDzFcoGI3epqss68Hl8ivrZqBzG7xP/UgOhYZAD 7J5CEtoLm2VmKsw2WZh6+BmC6NbDFbc8siMO9cvKv+AmnTfIhb/9s+IzFpEuUrIbfnA0 ADXq2IeeRIzZMV3BcY7NmxYR7andZLgcgNYD2tjV/5UDEmDaT4QQQax2zvQOwWIf9cnW I26sibtlj49w3pe4O1JEhbWv8fxKguJbuyBZ25Z5g8ya5aC0exOh9Mx9QR5QxJSTTpk7 wuSPdWLiibOsf7EU5yV/HjhrgnXeVvVq98RxHif82qjmYHS2Vj6R7THBD9DaNP8KC1k9 ingA== X-Gm-Message-State: AOJu0YwaKBE63WapPZrooDVhiCLch8Zv2PZAQi1BudNFZQ2fxM86sXD8 bYhw7I5JEHApMMtywthyAjhRqauIplo= X-Received: by 2002:a05:6808:1a1e:b0:3a7:6d4a:fd78 with SMTP id bk30-20020a0568081a1e00b003a76d4afd78mr13837860oib.24.1693839874298; Mon, 04 Sep 2023 08:04:34 -0700 (PDT) Received: from localhost.localdomain (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id z14-20020a54458e000000b003a9cd23980esm4946286oib.8.2023.09.04.08.04.33 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Sep 2023 08:04:34 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Mon, 4 Sep 2023 12:04:05 -0300 Message-ID: <20230904150411.56777-13-jamrial@gmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20230904150411.56777-1-jamrial@gmail.com> References: <20230904150411.56777-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 12/17] avformat/demux: propagate the internal decoder's bitrate properties 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: rwa7+TLjDbYO Signed-off-by: James Almer --- libavformat/demux.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/libavformat/demux.c b/libavformat/demux.c index 553933a2b0..d7e34aad97 100644 --- a/libavformat/demux.c +++ b/libavformat/demux.c @@ -2976,6 +2976,24 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options) ret = add_coded_side_data(st, sti->avctx); if (ret < 0) goto find_stream_info_err; + + if (sti->avctx->rc_buffer_size > 0 || sti->avctx->rc_max_rate > 0 || + sti->avctx->rc_min_rate) { + size_t cpb_size; + AVCPBProperties *props = av_cpb_properties_alloc(&cpb_size); + if (props) { + if (sti->avctx->rc_buffer_size > 0) + props->buffer_size = sti->avctx->rc_buffer_size; + if (sti->avctx->rc_min_rate > 0) + props->min_bitrate = sti->avctx->rc_min_rate; + if (sti->avctx->rc_max_rate > 0) + props->max_bitrate = sti->avctx->rc_max_rate; + if (!av_packet_side_data_set_add(&st->codecpar->side_data, + AV_PKT_DATA_CPB_PROPERTIES, + (uint8_t *)props, cpb_size, 0)) + av_free(props); + } + } } #if FF_API_AVSTREAM_SIDE_DATA From patchwork Mon Sep 4 15:04:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 43542 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4f16:b0:149:dfde:5c0a with SMTP id gi22csp1274326pzb; Mon, 4 Sep 2023 08:06:35 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE6n8QMI88Bi4xRwc+txVH+gtSBgLRYS+iHMGbrrAnwhV5oTGTYA+PUTzVaeXrIMrKcWltx X-Received: by 2002:a05:6402:4304:b0:521:66b4:13b4 with SMTP id m4-20020a056402430400b0052166b413b4mr7341469edc.0.1693839995310; Mon, 04 Sep 2023 08:06:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1693839995; cv=none; d=google.com; s=arc-20160816; b=oPYtRzEMZQvlVoHOe2aIk7Y06DpwjD7ErPLUFHqvQQw9cZWB4I2IYHBfkZdv2iTVoO L+3nqkJYUXg/mL4jBY5M7oDW/oSIzO25On3VZVQhDNDLfjCAxQs9ySDE7ZdRKoDFzTjM 6BauAy0miZXqPgte2WsewmCt7rm3lInr7yocSfMV1G5XVAG2iOmWlJqdOTVeJsmArysG IAU5UhjZciXMoshR2Rr2xDTS1JANAZx34J6JMxOA9W2VCrM+E48ZsbMIvA1s5cNXrrRM puKzEBD9AlOE15S9zBGvEMObepRJ8kHMtWnW5jBU1mFm5B2iS6EHWMLNT91jikmdOtTC BZcw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=VSEWbqHF5EhU09pJYnuFq6dupw++p3BDpx9B5GIUrbc=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=voa5ghzugeCACO30+6n5QAGf5T9bRm3f17st//LaQMfWEqe4GEcP8ZeI9bZVUImrck c8cpMKrXrQ7i+Ds+AYQ7uF0HHAstdQ6PG4hiH2R0Y2/zWSwM+F701Bti6X/2dibcRKjC c5KaiyE+Lop4Va75UU5ZyGLI/jSUOJ5RZI8MUuNOLocT3ZGeq4WJTIrFIABv+0eL8/cf WZoJGhE8uVpYdx3yYtNKKDvepd98VMtgKoyIslKKNNOfJuUqL+SmZbyDd8MfmuL5OlGC AXj8MbhDPbYuhUapGXJ6ol/eKa7ulYZkRmCyVtFinEMpf5dBqBlZwJJ5ww22Gesm+G7f GwXg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b="B/tO/e6p"; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id er5-20020a056402448500b005223c340277si98764edb.426.2023.09.04.08.06.34; Mon, 04 Sep 2023 08:06:35 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b="B/tO/e6p"; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 48A3868C82D; Mon, 4 Sep 2023 18:04:43 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ot1-f43.google.com (mail-ot1-f43.google.com [209.85.210.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A222268C7E1 for ; Mon, 4 Sep 2023 18:04:37 +0300 (EEST) Received: by mail-ot1-f43.google.com with SMTP id 46e09a7af769-6bdcbde9676so1349064a34.3 for ; Mon, 04 Sep 2023 08:04:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1693839875; x=1694444675; darn=ffmpeg.org; 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=WF92MTDwptR8SSBQL9A129lbynivIssMGtofpEn7NUY=; b=B/tO/e6pgrnTG5ccveOeA4QMGhcuhJ4xB8Ynjx2xYGtI3N5TRXCE4Y7sDZVMyBTF9Z Is7OpelA3GH70EBqWYPXGegc69EAutvRwr6lSSzSNx4fDqhv7rle5xMzNcAKb8Mui/A3 NHG9ixNKu+WKRVLzDompkhpIDg8yHKDNO/tBb+VMN1RNVzPSYy5W7QLf8ViCcLN9ryYJ HxA0lgn6Yqneed6oy2nDibmRG+FmPq3R3BIpCz/1q8CwdB+K+CYv4TNj66K6+NwzCXLT OIGsGUpvBL5x6HgzIEaAB3t91CVc0BtGNbDy/EiXa5yQiUhE4ds6pPNSCBEGbpfe2DqL W+oQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693839875; x=1694444675; 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=WF92MTDwptR8SSBQL9A129lbynivIssMGtofpEn7NUY=; b=IYm22uJhgnUwlgYmkxapEdwwdROm2GCQNKOwLL94ysxeaxNZp07V7R5hq1+Ta4npYO KoeWa8URqHnMmK4kC56qzlxsyHbnQCZEM9AjgG3haRUhOU+9AUyxVI+ODVRUv9G81/2G wdaRGny/ek/1uWbTksGEQLlpm6yVH9tdA70avUqsXPikQ/3HUb1hZFtI1xM30/cSXQEm od8n4pu0EpjDVPOYGpaS9SkFQCBfyatBmKmTskByOwfKglz1zgjUsMslK1znOLsz/TQX +n9U5SD4nxoydI1JZP+snZOGMMhYsztI9JRfn3LcAaWiYAN0I/Tv4wK0YWRXtsp2G7fM OGrA== X-Gm-Message-State: AOJu0YwPJVqM3G7p9BOYjQb2nauiyQHVhDt50OB2moHO4KxQzY14x6A/ YdpFTRn+OX0F7M+ztRZT7Wdq1AKZhIc= X-Received: by 2002:a05:6808:b0f:b0:3a7:5475:ed30 with SMTP id s15-20020a0568080b0f00b003a75475ed30mr10656297oij.57.1693839875504; Mon, 04 Sep 2023 08:04:35 -0700 (PDT) Received: from localhost.localdomain (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id z14-20020a54458e000000b003a9cd23980esm4946286oib.8.2023.09.04.08.04.34 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Sep 2023 08:04:35 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Mon, 4 Sep 2023 12:04:06 -0300 Message-ID: <20230904150411.56777-14-jamrial@gmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20230904150411.56777-1-jamrial@gmail.com> References: <20230904150411.56777-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 13/17] avcodec/mpeg12dec: stop propagating AVCPBProperties 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: MvWnQIg7/0BJ Signed-off-by: James Almer --- libavcodec/mpeg12dec.c | 10 ++-------- libavcodec/mpegvideo_parser.c | 2 +- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c index 2290a90778..1accd07e9e 100644 --- a/libavcodec/mpeg12dec.c +++ b/libavcodec/mpeg12dec.c @@ -1248,7 +1248,8 @@ static int mpeg_decode_postinit(AVCodecContext *avctx) if (ret < 0) return ret; - if (avctx->codec_id == AV_CODEC_ID_MPEG2VIDEO && s->bit_rate) { + if (avctx->codec_id == AV_CODEC_ID_MPEG2VIDEO && s->bit_rate && + (s->bit_rate != 0x3FFFF*400)) { avctx->rc_max_rate = s->bit_rate; } else if (avctx->codec_id == AV_CODEC_ID_MPEG1VIDEO && s->bit_rate && (s->bit_rate != 0x3FFFF*400 || s->vbv_delay != 0xFFFF)) { @@ -1371,7 +1372,6 @@ static void mpeg_decode_sequence_extension(Mpeg1Context *s1) MpegEncContext *s = &s1->mpeg_enc_ctx; int horiz_size_ext, vert_size_ext; int bit_rate_ext; - AVCPBProperties *cpb_props; skip_bits(&s->gb, 1); /* profile and level esc*/ s->avctx->profile = get_bits(&s->gb, 3); @@ -1403,12 +1403,6 @@ static void mpeg_decode_sequence_extension(Mpeg1Context *s1) ff_dlog(s->avctx, "sequence extension\n"); s->codec_id = s->avctx->codec_id = AV_CODEC_ID_MPEG2VIDEO; - if (cpb_props = ff_add_cpb_side_data(s->avctx)) { - cpb_props->buffer_size = s->avctx->rc_buffer_size; - if (s->bit_rate != 0x3FFFF*400) - cpb_props->max_bitrate = s->bit_rate; - } - if (s->avctx->debug & FF_DEBUG_PICT_INFO) av_log(s->avctx, AV_LOG_DEBUG, "profile: %d, level: %d ps: %d cf:%d vbv buffer: %d, bitrate:%"PRId64"\n", diff --git a/libavcodec/mpegvideo_parser.c b/libavcodec/mpegvideo_parser.c index 1204789c67..d0b22634bb 100644 --- a/libavcodec/mpegvideo_parser.c +++ b/libavcodec/mpegvideo_parser.c @@ -233,7 +233,7 @@ FF_ENABLE_DEPRECATION_WARNINGS if (set_dim_ret < 0) av_log(avctx, AV_LOG_ERROR, "Failed to set dimensions\n"); - if (avctx->codec_id == AV_CODEC_ID_MPEG2VIDEO && bit_rate) { + if (avctx->codec_id == AV_CODEC_ID_MPEG2VIDEO && bit_rate && bit_rate != 0x3FFFF) { avctx->rc_max_rate = 400LL*bit_rate; } if (bit_rate && From patchwork Mon Sep 4 15:04:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 43543 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4f16:b0:149:dfde:5c0a with SMTP id gi22csp1274446pzb; Mon, 4 Sep 2023 08:06:44 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGNL/53/26S91yK795AqmnvvnjHIqQ7+Vne3EmchGlZscN0O+7qsuzMYgRKak/2j37SqzRp X-Received: by 2002:a17:907:271a:b0:99b:dd1d:bc58 with SMTP id w26-20020a170907271a00b0099bdd1dbc58mr7852021ejk.41.1693840003704; Mon, 04 Sep 2023 08:06:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1693840003; cv=none; d=google.com; s=arc-20160816; b=jBkTy+wiz5WeimZjxRZkkx9YntWEY6JL/sUO6NYatXp72a/XWwyzqY4WGdkvWX82el jfGPRGXqS5Xo2iRCAwDaCHZm7zisubxRc236Em7oAAokRtXjIYAr13vM10r9gmPsUbDs mpHy5BKegKXmngvZR1DCjv3cd6nVtj0ngn+4C7O8rhLr4itRaN5BCk2fEgwKhgS7sqhH w/7trMAzra8L3DNsvh0X9hqcdiGnnDFF/VVMpn9RNx8LFUvEPZUHo60CrULU6OJDLdwM /iNectZDeh7yjnzrZxQ74uTJQNJlXJRsHoP8gfO5sRlscAK+lv2aWmQHufPJcns+k5sZ q2Jw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=x0w3QdXuLEaUlCwkFRuvXcmr/O67j3ApfAe6NDn58aU=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=OoqgkuyS0kKtMymQKf5SC8Uxpxzu+3614UVtT3pr6h8eHxyFuUEZd99+CZfjaoo1tD yUo0Lq44FxSCQme3dHSNGKRlbs6mPwU7b2eo52iAlCZzmx8oKa2aJ2LHwNyE4SdJlsem U3fA7YwyeUZRSLl6C9klZE16xLsUyX12NRRPk2zwX9wxbUK0owNvoof6VUY8X0OhFUU3 RkglAcBszWEILLvVuJozq0v+Lgqk3f+ddSUTdx2vDYL13qEdOMaIIUgVKd4UF1R5barD BLiv5sZpQQaqaULTyjHHa6my7SItGjHYS+4geVtT8kkevd18phPHvWhd9fGYafB3Skbi GUKA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=QkkbGr6A; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id i27-20020a1709063c5b00b0098dd7b3684csi6090838ejg.994.2023.09.04.08.06.43; Mon, 04 Sep 2023 08:06:43 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=QkkbGr6A; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4635268C836; Mon, 4 Sep 2023 18:04:44 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oi1-f174.google.com (mail-oi1-f174.google.com [209.85.167.174]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 840FA68C7F7 for ; Mon, 4 Sep 2023 18:04:38 +0300 (EEST) Received: by mail-oi1-f174.google.com with SMTP id 5614622812f47-3a8614fe8c4so1088862b6e.1 for ; Mon, 04 Sep 2023 08:04:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1693839877; x=1694444677; darn=ffmpeg.org; 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=jy2dUKEKKoEhffA/PPzZHmOSQU9rZYJyiTkULLR8+Ig=; b=QkkbGr6AAqMC86oOwtMcLuCC6+++1yuEYFOsbPId7jXI3tj9xxvzokbFmUIn8rI/4I 7vG+3/fboeTHXmaALw1b+UOy9s1uOJOPgaoOMirif8q4/MlngnusHSQBHj2K8sKGKlDO RkgDVdFmAiKz0jWZcc94xpI8YzUPtG7SEpNHyzLOZMIpSQHwlD9rhYPlwum0eszWM0Wr CuErEswIQ+ITmgNC7chcj0i5F1K8csbwTZC4DKCxM0knYl2L+qK+RjDpsDB0O9jm3YZk f0gbxdmfQh9Tmt8PTNwlKCLo3boYjsMK+D0YMAk4wWZsKutwn8Yf7d30zG2f0ZI8NK4b vSvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693839877; x=1694444677; 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=jy2dUKEKKoEhffA/PPzZHmOSQU9rZYJyiTkULLR8+Ig=; b=g1TUYu/9zui0BZeoKDkoYVIu/J0rcuXfnu21j42vyEdf0Pli8lpOGU5cSN7g7MbyfR 3Tpx4noM+bpgznm5SqU/n8JxfDcUTCDQG+9oX6OFAz/AY0PsXs+fZ3ESDcsErstcXDBI Zr9nuWbMZE28H1oQbFEMuQoH3cDETKVDihDNrMugALdh4bllwhLtYDvMaJHu+LfMynYg KgJayXAGuqjenFLhtmnUo/B64BHAm7Qv84eKHlZ3/pV+5wl9nXyy/qMpML0R+aq3FsYX 1tDQPyasHvhvdu7Li25RCFBbfVOm+ZADhZwRrYuT/tHixHq2aV71KUOm32iDniW1Rii+ BgfA== X-Gm-Message-State: AOJu0Yz9twrGkRusFjjlCQnHTBe4pzcYU/ag2L1VMpl0nG0icVJ0/0U2 lEahdGUoiNusMCMrpdlADMec1gRvsP8= X-Received: by 2002:aca:f05:0:b0:3a7:55f2:552d with SMTP id 5-20020aca0f05000000b003a755f2552dmr9354217oip.58.1693839876727; Mon, 04 Sep 2023 08:04:36 -0700 (PDT) Received: from localhost.localdomain (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id z14-20020a54458e000000b003a9cd23980esm4946286oib.8.2023.09.04.08.04.35 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Sep 2023 08:04:36 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Mon, 4 Sep 2023 12:04:07 -0300 Message-ID: <20230904150411.56777-15-jamrial@gmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20230904150411.56777-1-jamrial@gmail.com> References: <20230904150411.56777-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 14/17] avcodec/avcodec: deprecate coded_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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: Q8FJIiZlBvq2 In favor of AVCodecContext.packet_side_data Signed-off-by: James Almer --- libavcodec/avcodec.c | 34 ++++++++++++++++++++++++++++++++++ libavcodec/avcodec.h | 7 ++++++- libavcodec/utils.c | 24 ++++++++---------------- libavcodec/version_major.h | 1 + 4 files changed, 49 insertions(+), 17 deletions(-) diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c index 7e1ef99234..e600ac3a1e 100644 --- a/libavcodec/avcodec.c +++ b/libavcodec/avcodec.c @@ -342,6 +342,36 @@ FF_ENABLE_DEPRECATION_WARNINGS avci->needs_close = 1; } +#if FF_API_CODED_SIDE_DATA +FF_DISABLE_DEPRECATION_WARNINGS + if (av_codec_is_encoder(avctx->codec)) { + const AVPacketSideData *sd = + av_packet_side_data_set_get(&avctx->packet_side_data, AV_PKT_DATA_CPB_PROPERTIES); + if (sd) { + uint8_t *data; + AVPacketSideData *tmp = av_realloc_array(avctx->coded_side_data, + avctx->nb_coded_side_data + 1U, + sizeof(*tmp)); + if (!tmp) { + ret = AVERROR(ENOMEM); + goto free_and_end; + } + avctx->coded_side_data = tmp; + + data = av_memdup(sd->data, sd->size); + if (!data) { + ret = AVERROR(ENOMEM); + goto free_and_end; + } + + avctx->coded_side_data[avctx->nb_coded_side_data].data = data; + avctx->coded_side_data[avctx->nb_coded_side_data].size = sd->size; + avctx->coded_side_data[avctx->nb_coded_side_data++].type = AV_PKT_DATA_CPB_PROPERTIES; + } + } +FF_ENABLE_DEPRECATION_WARNINGS +#endif + ret=0; if (av_codec_is_decoder(avctx->codec)) { @@ -477,10 +507,14 @@ av_cold int avcodec_close(AVCodecContext *avctx) av_packet_side_data_set_free(&avctx->packet_side_data); +#if FF_API_CODED_SIDE_DATA +FF_DISABLE_DEPRECATION_WARNINGS for (i = 0; i < avctx->nb_coded_side_data; i++) av_freep(&avctx->coded_side_data[i].data); av_freep(&avctx->coded_side_data); avctx->nb_coded_side_data = 0; +FF_ENABLE_DEPRECATION_WARNINGS +#endif av_buffer_unref(&avctx->hw_frames_ctx); av_buffer_unref(&avctx->hw_device_ctx); diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index dda8a2412b..3913434870 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -1890,14 +1890,19 @@ typedef struct AVCodecContext { #define FF_CODEC_PROPERTY_CLOSED_CAPTIONS 0x00000002 #define FF_CODEC_PROPERTY_FILM_GRAIN 0x00000004 +#if FF_API_CODED_SIDE_DATA /** * Additional data associated with the entire coded stream. * * - decoding: unused * - encoding: may be set by libavcodec after avcodec_open2(). + * @deprecated use packet_side_data */ + attribute_deprecated AVPacketSideData *coded_side_data; + attribute_deprecated int nb_coded_side_data; +#endif /** * A reference to the AVHWFramesContext describing the input (for encoding) @@ -2105,7 +2110,7 @@ typedef struct AVCodecContext { * Additional data associated with the entire stream. * * - decoding: set by user - * - encoding: unused + * - encoding: may be set by libavcodec after avcodec_open2(). */ AVPacketSideDataSet packet_side_data; } AVCodecContext; diff --git a/libavcodec/utils.c b/libavcodec/utils.c index bd4131db62..90e573890f 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -1020,31 +1020,23 @@ AVCPBProperties *av_cpb_properties_alloc(size_t *size) AVCPBProperties *ff_add_cpb_side_data(AVCodecContext *avctx) { - AVPacketSideData *tmp; + AVPacketSideData *sd; AVCPBProperties *props; size_t size; - int i; - for (i = 0; i < avctx->nb_coded_side_data; i++) - if (avctx->coded_side_data[i].type == AV_PKT_DATA_CPB_PROPERTIES) - return (AVCPBProperties *)avctx->coded_side_data[i].data; + av_assert0(av_codec_is_encoder(avctx->codec)); + + sd = av_packet_side_data_set_get(&avctx->packet_side_data, AV_PKT_DATA_CPB_PROPERTIES); + if (sd) + return (AVCPBProperties *)sd->data; props = av_cpb_properties_alloc(&size); if (!props) return NULL; - tmp = av_realloc_array(avctx->coded_side_data, avctx->nb_coded_side_data + 1, sizeof(*tmp)); - if (!tmp) { + if (!av_packet_side_data_set_add(&avctx->packet_side_data, AV_PKT_DATA_CPB_PROPERTIES, + (uint8_t *)props, size, 0)) av_freep(&props); - return NULL; - } - - avctx->coded_side_data = tmp; - avctx->nb_coded_side_data++; - - avctx->coded_side_data[avctx->nb_coded_side_data - 1].type = AV_PKT_DATA_CPB_PROPERTIES; - avctx->coded_side_data[avctx->nb_coded_side_data - 1].data = (uint8_t*)props; - avctx->coded_side_data[avctx->nb_coded_side_data - 1].size = size; return props; } diff --git a/libavcodec/version_major.h b/libavcodec/version_major.h index cfd0b5023e..440ee857da 100644 --- a/libavcodec/version_major.h +++ b/libavcodec/version_major.h @@ -49,6 +49,7 @@ #define FF_API_SUBFRAMES (LIBAVCODEC_VERSION_MAJOR < 61) #define FF_API_TICKS_PER_FRAME (LIBAVCODEC_VERSION_MAJOR < 61) #define FF_API_DROPCHANGED (LIBAVCODEC_VERSION_MAJOR < 61) +#define FF_API_CODED_SIDE_DATA (LIBAVCODEC_VERSION_MAJOR < 61) #define FF_API_AVFFT (LIBAVCODEC_VERSION_MAJOR < 62) From patchwork Mon Sep 4 15:04:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 43544 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4f16:b0:149:dfde:5c0a with SMTP id gi22csp1274591pzb; Mon, 4 Sep 2023 08:06:52 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEKdU2V+p6Ri8Zjyor4nJTU676523z1PpdSLohJhW27inYWA4W7RA3ifMc3/GrxpJdl0EUt X-Received: by 2002:a17:906:74de:b0:9a2:1c88:b94 with SMTP id z30-20020a17090674de00b009a21c880b94mr7370961ejl.65.1693840012488; Mon, 04 Sep 2023 08:06:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1693840012; cv=none; d=google.com; s=arc-20160816; b=sMIPUA4jlDlhMjK4Fvu2/P07AiFgZpLzrMzOgVMJUb5NA8ncNjMAWx57xOnu6z958F XozJxtUnBV3KGXX3F2MgFNlJ7hlsLn1XgQqN7thK1ksjsG25EBVP29m5fNQNaaZm6MG6 EjcWYASkNmldLiWm6VKwQrHu+O7ndu3NfR/RqFJGuITBzQDCSHjQhgWo6/YKRYFta4IN e4O3Bo7Oop5JOtCXIT7aqxFg3N8YzqX7BEXPVSONxqkuIl4u1nnuUivRY3qRCcTkcRLU 32WMVTp/+iyblmfA76xACzScT1H0+NQQkNWldZvLkE2prOIebtfIgKtxGVunjBfwSey8 QmxQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=TKDvyns4AxgVZr4TAGf9K2Ttd5zwD/QwXBX3U7ixoeA=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=UnAtGWGsGjb6qYrC+bY5enNRXbCc+2yBvp8P6Mq5bACma+mwwIMBz9DP6ja+jafY5J /IbsO+GCE+453Q75kKI2mUz24GvutQUOuOYyoalXkMB7sJwRpGAzCcFHCH2nS6YCbCEI urnbYgslT4qYgagkw0CELn1FXYVT6ZecYCQreBvfocEzIkSHt0Z+cj17z84L/6mkJIDe pJBs1WR1DXWjB2eOEpLaXPbuqSvEsK8UpFVK1asvnBl6tNRAu6tlUyVATGiLBxxbN0od RC9jckqwdP5Ts8BlHdbn3gDemlVjgz1nPOxAK6qLZdP7WPVoX94DqFg1wu2ptibxNiDi pbrA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=rN2dc5E5; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id l18-20020a1709066b9200b0098e42bef73asi6300188ejr.98.2023.09.04.08.06.52; Mon, 04 Sep 2023 08:06:52 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=rN2dc5E5; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3200168C36B; Mon, 4 Sep 2023 18:04:45 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oi1-f175.google.com (mail-oi1-f175.google.com [209.85.167.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BC91968C800 for ; Mon, 4 Sep 2023 18:04:39 +0300 (EEST) Received: by mail-oi1-f175.google.com with SMTP id 5614622812f47-3ab244f2c89so1120042b6e.3 for ; Mon, 04 Sep 2023 08:04:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1693839878; x=1694444678; darn=ffmpeg.org; 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=bxSdnr6TE/qz34URBAw3V2xtB6gUieHUUGTs15a0dh4=; b=rN2dc5E5FWldkih3HGUKjNzeexrZvPs5x2smoyYfxj42jrfCz0jhqJE6W2LXYoWTKR U5KPJt7xwz8sRqN+XqFBVn6UmK3gaVQvkOufeQRqjCRRMcpoInGYKGrK44VZI3Ha5TB1 FIHU7TwrAwYMRHJLGUqJZ1z+TRGHS/3KGE9jpNuZkQX3gcANo9CJ+bcDr4p6zLvKFYzm vgMDYL259rhTcgBMaJPHN4DdmjNtImE9OH3IRMMzv9pckw7e1ImCDFPevSeo/jgl3Z/B HML+pq8giPjIQfquH7YYrRQr1+I0G4wOOd0SoRq7c8yi2YfteEfmKUdRLZ0ddh3As25k jCEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693839878; x=1694444678; 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=bxSdnr6TE/qz34URBAw3V2xtB6gUieHUUGTs15a0dh4=; b=Dxyv7PqxftXOIEoD/SV3+fyNipaR7rgl0h0sjEFgLgP72x6Xfe7LOclMNlHH3oCqxd OuGEK4BeC93cAVXlRrkaV7AENgY6GgVVIp9soJO4xnPcbYT/eckawAJkJ+VAVnzVNFLm DQFMDPAXYJsEGAa+BhoiPJp+3gEVlvB+XuXV43qkM4z8OmMnPqTw7uLumFjROjKX7EX/ qbFw5g9ZyIvkVtI+0PemrakpVHstcXHaEI+l0/h6A4poC+HevtB9ADcYV4r74K7gA4Ez 0ASoJUZRZ4QIDGdk5Y572Ie0Qj3ekjY8K3epp5y/m0gCyckifMlSrqTz4PTUDtcheWN7 +gsA== X-Gm-Message-State: AOJu0YyuHMeglkqqtlzGPWg/Lk5J1LwFD3AGIosRgS8bkc0CV24+Org5 vAgmM49bACed/nUNRRSFKyMyYJfwpTM= X-Received: by 2002:a05:6808:208a:b0:3a7:2a94:73f6 with SMTP id s10-20020a056808208a00b003a72a9473f6mr12880510oiw.49.1693839877975; Mon, 04 Sep 2023 08:04:37 -0700 (PDT) Received: from localhost.localdomain (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id z14-20020a54458e000000b003a9cd23980esm4946286oib.8.2023.09.04.08.04.37 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Sep 2023 08:04:37 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Mon, 4 Sep 2023 12:04:08 -0300 Message-ID: <20230904150411.56777-16-jamrial@gmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20230904150411.56777-1-jamrial@gmail.com> References: <20230904150411.56777-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 15/17] avcodec/utils: move ff_add_cpb_side_data() to encoder code 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: Fue0OdsPJgrp It's only used by encoders, so move it to prevent wrong usage. Signed-off-by: James Almer --- libavcodec/encode.c | 23 +++++++++++++++++++++++ libavcodec/encode.h | 5 +++++ libavcodec/internal.h | 5 ----- libavcodec/libaomenc.c | 2 +- libavcodec/libopenh264enc.c | 2 +- libavcodec/libsvtav1.c | 2 +- libavcodec/libvpxenc.c | 2 +- libavcodec/libx264.c | 2 +- libavcodec/libx265.c | 2 +- libavcodec/mpegvideo_enc.c | 2 +- libavcodec/nvenc.c | 2 +- libavcodec/qsvenc.c | 2 +- libavcodec/utils.c | 23 ----------------------- 13 files changed, 37 insertions(+), 37 deletions(-) diff --git a/libavcodec/encode.c b/libavcodec/encode.c index b92593770c..417ce954aa 100644 --- a/libavcodec/encode.c +++ b/libavcodec/encode.c @@ -865,3 +865,26 @@ AVCodecInternal *ff_encode_internal_alloc(void) { return av_mallocz(sizeof(EncodeContext)); } + +AVCPBProperties *ff_encode_add_cpb_side_data(AVCodecContext *avctx) +{ + AVPacketSideData *sd; + AVCPBProperties *props; + size_t size; + + av_assert0(av_codec_is_encoder(avctx->codec)); + + sd = av_packet_side_data_set_get(&avctx->packet_side_data, AV_PKT_DATA_CPB_PROPERTIES); + if (sd) + return (AVCPBProperties *)sd->data; + + props = av_cpb_properties_alloc(&size); + if (!props) + return NULL; + + if (!av_packet_side_data_set_add(&avctx->packet_side_data, AV_PKT_DATA_CPB_PROPERTIES, + (uint8_t *)props, size, 0)) + av_freep(&props); + + return props; +} diff --git a/libavcodec/encode.h b/libavcodec/encode.h index dfaab7c976..e019cd7702 100644 --- a/libavcodec/encode.h +++ b/libavcodec/encode.h @@ -73,6 +73,11 @@ int ff_encode_reordered_opaque(AVCodecContext *avctx, int ff_encode_encode_cb(AVCodecContext *avctx, AVPacket *avpkt, AVFrame *frame, int *got_packet); +/** + * Add a CPB properties side data to an encoding context. + */ +AVCPBProperties *ff_encode_add_cpb_side_data(AVCodecContext *avctx); + /** * Rescale from sample rate to AVCodecContext.time_base. */ diff --git a/libavcodec/internal.h b/libavcodec/internal.h index a67cf713ca..83e0bc3fb2 100644 --- a/libavcodec/internal.h +++ b/libavcodec/internal.h @@ -180,11 +180,6 @@ int avpriv_h264_has_num_reorder_frames(AVCodecContext *avctx); int avpriv_codec_get_cap_skip_frame_fill_param(const AVCodec *codec); -/** - * Add a CPB properties side data to an encoding context. - */ -AVCPBProperties *ff_add_cpb_side_data(AVCodecContext *avctx); - /** * Check AVFrame for S12M timecode side data and allocate and fill TC SEI message with timecode info * diff --git a/libavcodec/libaomenc.c b/libavcodec/libaomenc.c index f29cb0784a..53a1159b75 100644 --- a/libavcodec/libaomenc.c +++ b/libavcodec/libaomenc.c @@ -1018,7 +1018,7 @@ static av_cold int aom_init(AVCodecContext *avctx, if (codec_caps & AOM_CODEC_CAP_HIGHBITDEPTH) ctx->rawimg.bit_depth = enccfg.g_bit_depth; - cpb_props = ff_add_cpb_side_data(avctx); + cpb_props = ff_encode_add_cpb_side_data(avctx); if (!cpb_props) return AVERROR(ENOMEM); diff --git a/libavcodec/libopenh264enc.c b/libavcodec/libopenh264enc.c index 5b59af6f94..433accba22 100644 --- a/libavcodec/libopenh264enc.c +++ b/libavcodec/libopenh264enc.c @@ -353,7 +353,7 @@ FF_ENABLE_DEPRECATION_WARNINGS memcpy(avctx->extradata, fbi.sLayerInfo[0].pBsBuf, size); } - props = ff_add_cpb_side_data(avctx); + props = ff_encode_add_cpb_side_data(avctx); if (!props) return AVERROR(ENOMEM); props->max_bitrate = param.iMaxBitrate; diff --git a/libavcodec/libsvtav1.c b/libavcodec/libsvtav1.c index f2b73361d8..a8b3b62b96 100644 --- a/libavcodec/libsvtav1.c +++ b/libavcodec/libsvtav1.c @@ -325,7 +325,7 @@ FF_ENABLE_DEPRECATION_WARNINGS FFMAX(avctx->bit_rate, avctx->rc_max_rate) / 1000LL; if (avctx->bit_rate || avctx->rc_max_rate || avctx->rc_buffer_size) { - AVCPBProperties *cpb_props = ff_add_cpb_side_data(avctx); + AVCPBProperties *cpb_props = ff_encode_add_cpb_side_data(avctx); if (!cpb_props) return AVERROR(ENOMEM); diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c index 7a545527a9..0f6f4e785c 100644 --- a/libavcodec/libvpxenc.c +++ b/libavcodec/libvpxenc.c @@ -1273,7 +1273,7 @@ static av_cold int vpx_init(AVCodecContext *avctx, ctx->rawimg.bit_depth = enccfg.g_bit_depth; #endif - cpb_props = ff_add_cpb_side_data(avctx); + cpb_props = ff_encode_add_cpb_side_data(avctx); if (!cpb_props) return AVERROR(ENOMEM); diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c index ce849d6c9a..131d1c7fc9 100644 --- a/libavcodec/libx264.c +++ b/libavcodec/libx264.c @@ -1231,7 +1231,7 @@ FF_ENABLE_DEPRECATION_WARNINGS avctx->extradata_size = p - avctx->extradata; } - cpb_props = ff_add_cpb_side_data(avctx); + cpb_props = ff_encode_add_cpb_side_data(avctx); if (!cpb_props) return AVERROR(ENOMEM); cpb_props->buffer_size = x4->params.rc.i_vbv_buffer_size * 1000; diff --git a/libavcodec/libx265.c b/libavcodec/libx265.c index 873b3021ee..447e6da25f 100644 --- a/libavcodec/libx265.c +++ b/libavcodec/libx265.c @@ -395,7 +395,7 @@ FF_ENABLE_DEPRECATION_WARNINGS ctx->params->rc.vbvBufferSize = avctx->rc_buffer_size / 1000; ctx->params->rc.vbvMaxBitrate = avctx->rc_max_rate / 1000; - cpb_props = ff_add_cpb_side_data(avctx); + cpb_props = ff_encode_add_cpb_side_data(avctx); if (!cpb_props) return AVERROR(ENOMEM); cpb_props->buffer_size = ctx->params->rc.vbvBufferSize * 1000; diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index 69e3152c82..5bf4b06a11 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -973,7 +973,7 @@ av_cold int ff_mpv_encode_init(AVCodecContext *avctx) } } - cpb_props = ff_add_cpb_side_data(avctx); + cpb_props = ff_encode_add_cpb_side_data(avctx); if (!cpb_props) return AVERROR(ENOMEM); cpb_props->max_bitrate = avctx->rc_max_rate; diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c index 1e83ea9734..4249ff7188 100644 --- a/libavcodec/nvenc.c +++ b/libavcodec/nvenc.c @@ -1666,7 +1666,7 @@ FF_ENABLE_DEPRECATION_WARNINGS if (ctx->encode_config.rcParams.averageBitRate > 0) avctx->bit_rate = ctx->encode_config.rcParams.averageBitRate; - cpb_props = ff_add_cpb_side_data(avctx); + cpb_props = ff_encode_add_cpb_side_data(avctx); if (!cpb_props) return AVERROR(ENOMEM); cpb_props->max_bitrate = ctx->encode_config.rcParams.maxBitRate; diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c index b3b7475b0f..ac7364f61f 100644 --- a/libavcodec/qsvenc.c +++ b/libavcodec/qsvenc.c @@ -1504,7 +1504,7 @@ static int qsv_retrieve_enc_params(AVCodecContext *avctx, QSVEncContext *q) } memset(avctx->extradata + avctx->extradata_size, 0, AV_INPUT_BUFFER_PADDING_SIZE); - cpb_props = ff_add_cpb_side_data(avctx); + cpb_props = ff_encode_add_cpb_side_data(avctx); if (!cpb_props) return AVERROR(ENOMEM); cpb_props->max_bitrate = avctx->rc_max_rate; diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 90e573890f..d54e050848 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -1018,29 +1018,6 @@ AVCPBProperties *av_cpb_properties_alloc(size_t *size) return props; } -AVCPBProperties *ff_add_cpb_side_data(AVCodecContext *avctx) -{ - AVPacketSideData *sd; - AVCPBProperties *props; - size_t size; - - av_assert0(av_codec_is_encoder(avctx->codec)); - - sd = av_packet_side_data_set_get(&avctx->packet_side_data, AV_PKT_DATA_CPB_PROPERTIES); - if (sd) - return (AVCPBProperties *)sd->data; - - props = av_cpb_properties_alloc(&size); - if (!props) - return NULL; - - if (!av_packet_side_data_set_add(&avctx->packet_side_data, AV_PKT_DATA_CPB_PROPERTIES, - (uint8_t *)props, size, 0)) - av_freep(&props); - - return props; -} - static unsigned bcd2uint(uint8_t bcd) { unsigned low = bcd & 0xf; From patchwork Mon Sep 4 15:04:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 43546 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4f16:b0:149:dfde:5c0a with SMTP id gi22csp1275183pzb; Mon, 4 Sep 2023 08:07:32 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG9snPhghT0zal7rBJondUlcaLSb3O+0H1oftgz8m+4hP/D+yzYNEotlPSKQDdd+fDsXKP7 X-Received: by 2002:a17:907:2c64:b0:994:522f:3f4a with SMTP id ib4-20020a1709072c6400b00994522f3f4amr6759446ejc.29.1693840051742; Mon, 04 Sep 2023 08:07:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1693840051; cv=none; d=google.com; s=arc-20160816; b=ZjX8gzUfRkJyzdNJ/hjmzjuz7OeYLkMtlIO2+LeawHOpK+R79L0ax4nsD/c2ihWQ8W bIWnXTHrtLZ8usCULDEZ7JMkTbDJLFC8hv/7mhR2yUWTc7bYr1TC1Cs0svtlrHzKjAiW G9iJkQKlGaeUqK+WnmfcSCQGdRFoEjNiatrkeyjNEf+ZKYgRrtV+9/gwxCyvNvZzN3nD rNG8JItJmwghzjNDOyD3i+nM/5OSkM4AVU2s+kV3Eld6u48JMUmvN7cNu/yRnRzi3HGH ZQETW7zqLukiM9OOwQmt88svTrAkMbTHL0eSJrJj80RAIFPW3EAGjTu4Ddrv4Dje9D+d PiMA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=dBM8I7swfea3Nlf6kflRrji2UeRw25U8/vdaKfpuipE=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=03THflJgygeKuCM5OQTTo+AXRUdSNjo3OnabOHhwFsjQsmy1m5lubWqdz3KNG+FBa8 VcLY8zmsM5jS3Th1u8PF0tUjE6CZ0AcGnstheG0ysFgZlUdOvq5NL5XjkzopeoPcWiY1 miXF0Zk450n0xbieFnBw/EwMQVd5Bgz/kfQpC7X3gIQe+PLJwDmA8Ym3GU3lTQAb7aQb jzfM6a5x1gzBJ+JMaZimura4S2XlBOew5PmbYLOgrbp0zK/apNBmN4pFfjm+rDHYZwwg LAMBrxf9fEfQw5YoGyfEeiT9DrKLv1Y5CDwKqo/z8nP418a8caBU2mcLwX5se3bHVm3L 22sw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=e2qklijm; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id b8-20020a170906194800b0099399ac6fdesi5979334eje.79.2023.09.04.08.07.01; Mon, 04 Sep 2023 08:07:31 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=e2qklijm; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2531268C844; Mon, 4 Sep 2023 18:04:46 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oo1-f48.google.com (mail-oo1-f48.google.com [209.85.161.48]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DB84368C807 for ; Mon, 4 Sep 2023 18:04:40 +0300 (EEST) Received: by mail-oo1-f48.google.com with SMTP id 006d021491bc7-5735282d713so982781eaf.2 for ; Mon, 04 Sep 2023 08:04:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1693839879; x=1694444679; darn=ffmpeg.org; 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=VDkMdmIJ94QZYMWAVoKar7Z3e4d+uFrafvCndYUItJ4=; b=e2qklijm1sMy5221JpuehLSX6tkjzq4onKzJB/F7goR+XXRg/zb5LCpcV1Wm8HOqXQ TlPUwW8Pz9386nvzBBmYGi6vmgynXxC69mnUAV4oz0CtPhKXbIqb1sSRj7og6gKWt60i kuZZTMa5wWS++Wmjk4wMCzsNN54cIhNln00WdSUZG33S70OxFGtvp8Wqq0UCe/rKEmMp ug3davlDKERY+wLc8GjaFD8tZVtOW4GcJf/gQwx8RysUz2Ajto2OhD/1KPuaQUzKy7D+ hUjwr4wOpUI+OjArsPhtpqDDITyVR/IDiVYZpXVmAVdADkG1JeXECigg8NXzz4K8QqES SDJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693839879; x=1694444679; 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=VDkMdmIJ94QZYMWAVoKar7Z3e4d+uFrafvCndYUItJ4=; b=Miwf31wW8X53UqpQfD/z7eaI8yCukegk89rIN2wbPTNqxrav1x6p24n91fjwD+EjIj WeHBz7B2EJWxrK0S3VnrT8DUkM55zH6o+6BJFJeXSXDLHA+nFA0ghxd/yzGMs7wXRvLT c31sCX8q5Udy6MaXN+VH5vsKqY1fawttUQUjPefwgq12QLwmZZcpHMFqNns6gte2KT7/ 4qqwugWmcIjNmqhUlMiRBJOiZRwl2HKCw/M2WBBawV61+KzUBZS7MJUQ87SVYZ3kpHeb SECLlckpkxX/GLoDuyenHm2LhgM5684IfXi3L9MXJ/gnfqrEY5tAlTWTdeh+HogrWcNp I4pA== X-Gm-Message-State: AOJu0Yz1gBliU0GsedIDbTepgtHKWSgaQig5soh5RdSpa9VMVWAvHCpC N88iwlmhCZ7SOEMlQJExt6Fu6t1q2uk= X-Received: by 2002:a05:6808:192a:b0:3a7:72e8:2728 with SMTP id bf42-20020a056808192a00b003a772e82728mr14163592oib.36.1693839879217; Mon, 04 Sep 2023 08:04:39 -0700 (PDT) Received: from localhost.localdomain (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id z14-20020a54458e000000b003a9cd23980esm4946286oib.8.2023.09.04.08.04.38 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Sep 2023 08:04:38 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Mon, 4 Sep 2023 12:04:09 -0300 Message-ID: <20230904150411.56777-17-jamrial@gmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20230904150411.56777-1-jamrial@gmail.com> References: <20230904150411.56777-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 16/17] avformat/demux: stop copying the internal AVCodecContext coded_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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: J6hdsyS3K6eX It's no longer needed Signed-off-by: James Almer --- libavformat/demux.c | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/libavformat/demux.c b/libavformat/demux.c index d7e34aad97..4fff483d12 100644 --- a/libavformat/demux.c +++ b/libavformat/demux.c @@ -2433,19 +2433,6 @@ static int extract_extradata(FFFormatContext *si, AVStream *st, const AVPacket * return 0; } -static int add_coded_side_data(AVStream *st, AVCodecContext *avctx) -{ - for (int i = 0; i < avctx->nb_coded_side_data; i++) { - const AVPacketSideData *const sd_src = &avctx->coded_side_data[i]; - AVPacketSideData *sd_dst = av_packet_side_data_set_new(&st->codecpar->side_data, - sd_src->type, sd_src->size, 0); - if (!sd_dst) - return AVERROR(ENOMEM); - memcpy(sd_dst->data, sd_src->data, sd_src->size); - } - return 0; -} - int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options) { FFFormatContext *const si = ffformatcontext(ic); @@ -2971,9 +2958,6 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options) if (sti->avctx_inited) { ret = avcodec_parameters_from_context(st->codecpar, sti->avctx); - if (ret < 0) - goto find_stream_info_err; - ret = add_coded_side_data(st, sti->avctx); if (ret < 0) goto find_stream_info_err; From patchwork Mon Sep 4 15:04:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 43545 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4f16:b0:149:dfde:5c0a with SMTP id gi22csp1274849pzb; Mon, 4 Sep 2023 08:07:11 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE8Ov2m33NrqsBYFK5xVZZ2E9ro1nXgV6Etgfut67ut7AJRw4PXCNwvT3KkLDz6YgLhkDEV X-Received: by 2002:a17:907:7793:b0:9a1:f026:b4f1 with SMTP id ky19-20020a170907779300b009a1f026b4f1mr8430079ejc.30.1693840031009; Mon, 04 Sep 2023 08:07:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1693840030; cv=none; d=google.com; s=arc-20160816; b=fuuad1X3yoeOZ8tlZsNkxzjupl/FAZasPOBjm6fW/crS5IDvkAYvx7KtcPwJ//MnhC YT7JyIuW+tfvv1wvtJDj0DX6GnBhNRYUse4mHA4MUBbJQW4OddDyRgLgsQI4/amaSU9Y VXoVVFvOy+4BAYlR0rzzamj/Jx+KTkPcHng9f2dpsBlt7dKXST3G8jfHPQ9/GBxm1Xwt J2IyYixe77zTd3EDEsH0zznsxPeZcgqaSvMyRGTrtRjowQRI9tPwDO6l7gmqG91YxcfS Z+YeBwPZpnNOkrWpmAnJg1hq/yv5g5/6TvFGEC+ADwkyyWnRUqhXDTNyJaxMMYccExUy HJiw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=IDVJK16mThhql8hMKlUNhy9Yh5VAsnkxby0kmZ8leSc=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=TxXdUD1LULAyTkR7hzbaUSMybZ7qMlQCCF8FU7hVZq7AjM9Cq7LZ/ZoqEFcvxrqZv8 TCXUFexXsTl0BoDhcp34NMTrraLcrHXPPuIHkTRt40yZcg8K/mNT1PVr1T8q8x9XHNLS CO1OU2quuUZivzqqZMQ9qUH2HabaqBa0U0w1zBQaELt25MUxVsnbgH0kOYoznTJBCThF ULPsIzBA7xfvN4sU0nNtpU34yBxzz+DQMV5Mb5/Z2NsTKGORmmlIEDroKhsTjhF5nOK5 G+jUXbOxK/6KScuXs5KoRegUnyWZKgTlKElpFeZ16sU7JEMFQSdhEzgqPslNnL+tFzG6 VD0g== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=LepzXyF2; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id n3-20020a1709065e0300b00991c8af7ba3si6238022eju.148.2023.09.04.08.07.10; Mon, 04 Sep 2023 08:07:10 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=LepzXyF2; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0A54568C859; Mon, 4 Sep 2023 18:04:47 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oi1-f182.google.com (mail-oi1-f182.google.com [209.85.167.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2138268C822 for ; Mon, 4 Sep 2023 18:04:42 +0300 (EEST) Received: by mail-oi1-f182.google.com with SMTP id 5614622812f47-3aa139a0ab2so1142403b6e.2 for ; Mon, 04 Sep 2023 08:04:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1693839880; x=1694444680; darn=ffmpeg.org; 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=imilDeUTkPvX9dAuJbINSvKO1w4X5oRtL+/9c8f4WkI=; b=LepzXyF2zLxa+lr1q8kaglyuaUNGIDvhjGetBcX+2L6/RV/dfzwuHVPx3t3Mih7MHX m7ORgRoA5vT3g8VXdQZbb8BmJWqUv32EETAyilbp/CiAjIzfG0pY9BTNZT2Fq3eBCi8s 4Vwao/bVaFh/z83dXQAkKFSwzw2C7NkE1xkWMXCUsZM7abyPvAkcivGoO9ZYP5xyUtsE 46TLS64EuEXH3NaI01dlvt+RBuyv3l7Et+3cHOet456Bp8tdyveci0bbex9T0Jj5wfLR FjmGxFr3nafTQX0IpNl+RC+m1ColYb15xZF8OtsIHtpINeYzzFIgga3n/gD2B1TljsnZ LC+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693839880; x=1694444680; 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=imilDeUTkPvX9dAuJbINSvKO1w4X5oRtL+/9c8f4WkI=; b=Xy+pOOZwiPKV1VS3IRammCx9hZeG8V0mZSvMmRFS1wg5CdB/9bxIIDMGKpvEr6qYkl zej1JWR8ZfT/O9L68NArEeif3Foq9upR504iCLWUBVO4z/tXI/KrZ09t2gu0wIjxYH40 nUGHCBvO/+vfpBvPy3F63obl8YORAOdmoGE7/MZlXB00uXmEP9M7/f6YZbu9SWsvENpS ayLeTgYVyQQjG/pzyfskdMhtFSUm14ZrxxA04uZPeznOF+4Gy5A8A06w+fedYqdpq6qp NNHieH3uqfb8af1+1SA7Quc0AtVnPJP5sgKAwBTT7Zvh/H9cTnb1yeu1WWPJnFID/1tK KBlw== X-Gm-Message-State: AOJu0YxPCeak29RuVSOvZhSTQ8tSMDX3Xiuskc3en8dHUGTz74g1BauI ZTff2EYiQsYVOscFMgTEjhXFdrDTQMw= X-Received: by 2002:a05:6808:bd5:b0:3a7:4400:ebf0 with SMTP id o21-20020a0568080bd500b003a74400ebf0mr13017602oik.5.1693839880451; Mon, 04 Sep 2023 08:04:40 -0700 (PDT) Received: from localhost.localdomain (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id z14-20020a54458e000000b003a9cd23980esm4946286oib.8.2023.09.04.08.04.39 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Sep 2023 08:04:40 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Mon, 4 Sep 2023 12:04:10 -0300 Message-ID: <20230904150411.56777-18-jamrial@gmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20230904150411.56777-1-jamrial@gmail.com> References: <20230904150411.56777-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 17/17] fftools: stop propagating the encoder's coded_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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: NrB22AzVvZoE It's no longer needed Signed-off-by: James Almer --- fftools/ffmpeg_enc.c | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/fftools/ffmpeg_enc.c b/fftools/ffmpeg_enc.c index 8ea572d497..503a2c033b 100644 --- a/fftools/ffmpeg_enc.c +++ b/fftools/ffmpeg_enc.c @@ -460,20 +460,6 @@ int enc_open(OutputStream *ost, AVFrame *frame) return ret; } - if (ost->enc_ctx->nb_coded_side_data) { - int i; - - for (i = 0; i < ost->enc_ctx->nb_coded_side_data; i++) { - const AVPacketSideData *sd_src = &ost->enc_ctx->coded_side_data[i]; - AVPacketSideData *sd_dst; - - sd_dst = av_packet_side_data_set_new(&ost->par_in->side_data, sd_src->type, sd_src->size, 0); - if (!sd_dst) - return AVERROR(ENOMEM); - memcpy(sd_dst->data, sd_src->data, sd_src->size); - } - } - /* * Add global input side data. For now this is naive, and copies it * from the input stream's global side data. All side data should