From patchwork Wed Sep 6 17:44:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 34987 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8b17:b0:149:dfde:5c0a with SMTP id l23csp86704pzh; Wed, 6 Sep 2023 10:45:00 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEt9m4Z+D7wTYG9SznHsm24lKacJdq47nYtnNqjSgqAwX3zr7QPVlL9TH2KkqjHp/iG4L1j X-Received: by 2002:a17:907:1dcd:b0:98e:370c:be69 with SMTP id og13-20020a1709071dcd00b0098e370cbe69mr368867ejc.6.1694022300509; Wed, 06 Sep 2023 10:45:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694022300; cv=none; d=google.com; s=arc-20160816; b=ST9yS4drGXg9GSDD8vs5szE4LcyUpygsDaOQFcM2Lol2A03iYu9hV/KbFQhzXUT5qh PXIV2BhV2subZjSOpOGtbvxYugHkLdg1O1jU/EtnZqroE5UVWAcd2QDV4OWhsgqnZFFO FTYNaSj0FQvfJfwRHtr+AZOaqa3qiO38Fag+EbwaPDn+zTQ9IJS53m3flr12dhpZQlXf wRleBww0r/0bekKopUDuGlYdUaFq6stowtWqtM/yoFLkAEu239leQ2sCemU4KkGEX3ah pyf1mRV3GkEYCPwvbaFXH9jhRwL3hr25TpTqwg5e2/E999UYOnCVn7UL1bICS2UgcABv rSSw== 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:message-id:date:to:from :dkim-signature:delivered-to; bh=NYbY6ERLhOE1DJ5VNPgzKlok7izT2AID7rUEv7Y9mLI=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=sehGTMC9hZk8jWucjAcvr9xMFiZkkRUtj8VM33Kl2pQC7OMr3Ce7buAm2Mr7rKnsuc irsFPfeIsuGhTmVhQiwJ4EYS03nzTpKDIqdOwGNbUqOxjSqiY+T+CN2XcOsXFByjDiru 493V0iFf6U6msBQXxfGrVwMHcePMkAqHZQkW3hePGixe/kg2DFaNc/BBWwbmHCwde4bU CRc/rlOfKXlUADxc/h3Odk508OKAABkT/zRYCY83Pm7/uuTJgd426w8bgyhkAYjkk9Jp INRvp9cjTA/Jcj5j3PMzGCrfMWkq1tQphwXQNHXlcMCXEfia9rKiyVwpGXgxoC0V2f4Q Lq7g== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=KgDGcL1Y; 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 cb2-20020a170906a44200b00974fb8ff39asi9076017ejb.580.2023.09.06.10.44.55; Wed, 06 Sep 2023 10:45:00 -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=KgDGcL1Y; 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 A713568B991; Wed, 6 Sep 2023 20:44:51 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oa1-f49.google.com (mail-oa1-f49.google.com [209.85.160.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 16BAE68B991 for ; Wed, 6 Sep 2023 20:44:45 +0300 (EEST) Received: by mail-oa1-f49.google.com with SMTP id 586e51a60fabf-1ccc0d2e697so87176fac.0 for ; Wed, 06 Sep 2023 10:44:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1694022283; x=1694627083; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=uTI/alnA7iW1DTDz9A8iMDVJHSQn7lsMxSevdgft+dA=; b=KgDGcL1YolPj1zmBSpU6wRVXZSskbDOUXd0KiJLiF2YVUYThC561dExlwjR2GMC/Qa i5898gag8BHl0vQwFm5nlW1oZgav4E/N9auZ6LQRBGGnkNMFWkvMsNTz/UIdAKfXHbAe Ea0RC6p3O3HAzRS8Fs+KSdMYku1mMDlfKxtDSeULLFkkFtt7fMwtP5abQL14WBWmDh9e Z80YvPgxEATMXwO0WSlETaAHsebheeu56VZZWXPcFotDlB4I1bsb+H3febWa7AOD1Fex qpfaAxgIlt5ACC0Y8Gy7xBSqK2SmrVkMWKnQgFTiK95QkYVVQ8CPpQGE9zgvqG+Oy4wh JHhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1694022283; x=1694627083; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=uTI/alnA7iW1DTDz9A8iMDVJHSQn7lsMxSevdgft+dA=; b=TISrOwc2vJgFJOko7lO4ghO+m2WHFvBeV6MBnRlhsL/kXFUTmuAeaxPolCkHWrnDmg LTKPQ9LvMVfMFrKr4XwE85qEfL4ut0WLYqjvf3cGjg6YMl17lnJelBAXd/f1bG4IbzOw /8VUS3PGM69ucfDHYPkwiszyq6T9XPY8QkSkbglyiW6bWCyHb8S4kMcvdp+4MAjH11PP Uc5ru2+8iHge0zWqaBFo6ocyn0HMIv+bIWt1LtXCP9loTm0K5uVBmADQ5YPQI1nCVp6F ZeVKHDU7u+QTxyS+CWwsByJQJyEvKUTUkdsYfg2HCNiUPwwPh9+Nx1xtZ4fxrPHTdkig X+aA== X-Gm-Message-State: AOJu0Yz4xG1kIC7MsWjgkBSY2oAlW0lxlsfb8y1UEkPNfQBECchwEPa4 1tYmBiUIAiel6HP565kfo4hhhW9f1y8= X-Received: by 2002:a05:6870:524f:b0:1bf:2661:4883 with SMTP id o15-20020a056870524f00b001bf26614883mr23230412oai.6.1694022282962; Wed, 06 Sep 2023 10:44:42 -0700 (PDT) Received: from localhost.localdomain (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id v5-20020a0568301bc500b006b99f66444bsm6561309ota.71.2023.09.06.10.44.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Sep 2023 10:44:42 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 6 Sep 2023 14:44:20 -0300 Message-ID: <20230906174431.45558-1-jamrial@gmail.com> X-Mailer: git-send-email 2.42.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 00/10 v4][RFC] AVCodecContext and AVCodecParameters 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: e6DU5/M+fvxz Changes since the previous version: - Removed the AVPacketSideDataSet from AVCodecContext, using instead the existing coded_side_data field, at Anton's request. I still prefer using a new field of type AVPacketSideDataSet, given that the user can currently only fill coded_side_data manually (See the implementation in the codecpar copy functions, which non lavf users would need to replicate), and more so considering coded_side_data is a field pretty much nothing but lavf uses. Opinions are very welcome and needed. James Almer (10): avcodec/packet: add side data set struct and helpers avcodec/codec_par: add side data to AVCodecParameters avformat/avformat: use the side data from AVStream.codecpar fftools/ffmpeg: stop using AVStream.side_data fftools/ffplay: stop using AVStream.side_data fftools/ffprobe: stop using AVStream.side_data avcodec/hevcdec: check for DOVI configuration record in AVCodecContext side data avcodec/decode: check for global side data in AVCodecContext side data fftools/ffmpeg: stop injecting stream side data in packets fftools/ffplay: stop injecting stream side data in packets fftools/ffmpeg_demux.c | 29 +----- fftools/ffmpeg_enc.c | 31 ++---- fftools/ffmpeg_filter.c | 5 +- fftools/ffmpeg_mux_init.c | 19 ++-- fftools/ffplay.c | 10 +- fftools/ffprobe.c | 30 +++--- libavcodec/avcodec.h | 2 +- libavcodec/avpacket.c | 99 +++++++++++++++++++ libavcodec/codec_par.c | 81 +++++++++++++++ libavcodec/codec_par.h | 6 ++ libavcodec/decode.c | 55 +++++++++-- libavcodec/decode.h | 2 +- libavcodec/hevcdec.c | 15 ++- libavcodec/internal.h | 3 + libavcodec/packet.h | 74 ++++++++++++++ libavcodec/utils.c | 10 ++ libavdevice/android_camera.c | 9 +- libavformat/avformat.c | 42 ++------ libavformat/avformat.h | 40 +++++++- libavformat/concatdec.c | 1 - libavformat/dashdec.c | 11 --- libavformat/demux.c | 54 ++++++---- 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 + 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 +- 56 files changed, 698 insertions(+), 360 deletions(-)