From patchwork Mon Mar 4 13:06:32 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Khirnov X-Patchwork-Id: 46765 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:a919:b0:19e:cdac:8cce with SMTP id cd25csp2790322pzb; Mon, 4 Mar 2024 05:10:19 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCXt1yweoOGf5nRywiIuGgfMkHGHD/x7fqTFn3Ctua5h/slNlkHLYx7pZ/RonVNWAqjI/YT5J+jS9mf2qZFoHxMVp4ytBbKk/neZBA== X-Google-Smtp-Source: AGHT+IH5robwNjGbOK9a2OKaN8btsC1N6lJMrp7l2ySAzXODATA0ZrlzSurvyd12wWyNuKZEtaxz X-Received: by 2002:a05:6402:901:b0:566:be4a:21ec with SMTP id g1-20020a056402090100b00566be4a21ecmr8674831edz.16.1709557819421; Mon, 04 Mar 2024 05:10:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1709557819; cv=none; d=google.com; s=arc-20160816; b=QNyzLKaRylijuo7gn9ECU5QLddQvFQSSthnQ6/UE/cMN6M6jVNRIp8kCl4CgrOA2Hf DAHOXXb8GB02Qr+REebavNuOt86XdNcB8fBEO3NwyZt8bmqDrckeAzj50xiE6wzMyiBp /F/rJPQt/6fICTNwJ4PNi1pxRX+oFDF+gO6jIWZNVxgnCsd6wstCKEaidQLYVlCgt9Mu 7vNo4QKRPfvdOu7kjU1+6STF1YAINYbYD08jUj3/sdQQLUGSRi+ePO76Blx4c1npTVdn uj06KWgHedvOMXK51GpTKW1LRgUAkcOMc4Yz5Fe2Nh7VxDranqSX7ziFSTCkhICSZ8a6 5S1Q== 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=gcQySKUNvE+Pam2Acidtu7BKAhfW5frxFk1/2G7R+mk=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=qPOtknd+8ZK7M8Xv2HnkLGRIp37+fNRzcgmsuSYEJ89r+YQ+oAypcu/HiVjW9ee2u6 92ydW9D9fwwqUHob//zM7Xu08CmrgYuBHgmpVBuyYRcaOiuMWfRlC6OhU++kM10kNRZD 3zoDcDElQLtJNPMbTZ6LNVIe5+n8aXQprKtLYOc1mydlrAAmqAdJkuYUXKeoxu+ydmDz Cg1kmI5dzuh150ljTMe6QYJ8wO92DYSWjqvfKucX75vteH47Da6op4nqe6hD7c4g3Bjj 0iN3IcZ6P0c9+hVFLddE1t8s/93Kiht8verqi3MBi3388lPbPDZ2CZQ5gQ1Qhrx5M0Xc 1oCQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@khirnov.net header.s=mail header.b=Bq3dLERD; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id g10-20020a056402320a00b005675de9b4b4si558295eda.572.2024.03.04.05.10.19; Mon, 04 Mar 2024 05:10:19 -0800 (PST) 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=@khirnov.net header.s=mail header.b=Bq3dLERD; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6329368D4A5; Mon, 4 Mar 2024 15:07:32 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail1.khirnov.net (quelana.khirnov.net [94.230.150.81]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 81FFF68D445 for ; Mon, 4 Mar 2024 15:07:14 +0200 (EET) Authentication-Results: mail1.khirnov.net; dkim=pass (2048-bit key; unprotected) header.d=khirnov.net header.i=@khirnov.net header.a=rsa-sha256 header.s=mail header.b=Bq3dLERD; dkim-atps=neutral Received: from localhost (mail1.khirnov.net [IPv6:::1]) by mail1.khirnov.net (Postfix) with ESMTP id 6F9574D5D for ; Mon, 4 Mar 2024 14:07:10 +0100 (CET) Received: from mail1.khirnov.net ([IPv6:::1]) by localhost (mail1.khirnov.net [IPv6:::1]) (amavis, port 10024) with ESMTP id Aq1OJogOOtSa for ; Mon, 4 Mar 2024 14:07:10 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=khirnov.net; s=mail; t=1709557626; bh=J7HYUt+uUlCyKt/CVcXxnqAflxKg0WHez8eCvHKwA18=; h=From:To:Subject:Date:In-Reply-To:References:From; b=Bq3dLERDaQQaXVf4ireBO5RSHuszMfxBWSudCFlWPflxICKr8vbeiyakr0+ZFqB6o nCzdWidI1taEdu9z9VcJnUfOqxLICJ6A6nFR2eZWGzTSR9/aCgCbG3HGhiZ791Wm8X X8OCV5SzbAfh363IAN4I7erUVbbI3ZaAppzAN79sebvUcRxhX2mqJu3iHM15jbxzNI M7xtbKpJK0s/MpGspeVLkitT1jKTdFSb3mFSE51wAHxW0nLAgT4pkZ3N6GtXI1EvYH oYj2XAjCv59Fv1TkZCThVqFBe/8IoGTOoKmU5Kn1VQUezZxgqft1geccGG4jEqeNZV MiONKx58i6gJA== Received: from libav.khirnov.net (libav.khirnov.net [IPv6:2a00:c500:561:201::7]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "libav.khirnov.net", Issuer "smtp.khirnov.net SMTP CA" (verified OK)) by mail1.khirnov.net (Postfix) with ESMTPS id A2A144D64 for ; Mon, 4 Mar 2024 14:07:06 +0100 (CET) Received: from libav.khirnov.net (libav.khirnov.net [IPv6:::1]) by libav.khirnov.net (Postfix) with ESMTP id A3A013A1581 for ; Mon, 4 Mar 2024 14:07:00 +0100 (CET) From: Anton Khirnov To: ffmpeg-devel@ffmpeg.org Date: Mon, 4 Mar 2024 14:06:32 +0100 Message-ID: <20240304130657.30631-17-anton@khirnov.net> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240304130657.30631-1-anton@khirnov.net> References: <20240304130657.30631-1-anton@khirnov.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 17/29] avcodec/mpeg12dec: respect side data preference 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: xeN41mkwcz36 From: Niklas Haas We only need to consider side data types that may possibly come from the packet. Signed-off-by: Anton Khirnov --- libavcodec/mpeg12dec.c | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c index d07eed8744..3a2f17e508 100644 --- a/libavcodec/mpeg12dec.c +++ b/libavcodec/mpeg12dec.c @@ -1306,20 +1306,20 @@ static int mpeg_field_start(MpegEncContext *s, const uint8_t *buf, int buf_size) } } - pan_scan = av_frame_new_side_data(s->current_picture_ptr->f, - AV_FRAME_DATA_PANSCAN, - sizeof(s1->pan_scan)); - if (!pan_scan) - return AVERROR(ENOMEM); - memcpy(pan_scan->data, &s1->pan_scan, sizeof(s1->pan_scan)); + ret = ff_frame_new_side_data(s->avctx, s->current_picture_ptr->f, + AV_FRAME_DATA_PANSCAN, sizeof(s1->pan_scan), + &pan_scan); + if (ret < 0) + return ret; + if (pan_scan) + memcpy(pan_scan->data, &s1->pan_scan, sizeof(s1->pan_scan)); if (s1->a53_buf_ref) { - AVFrameSideData *sd = av_frame_new_side_data_from_buf( - s->current_picture_ptr->f, AV_FRAME_DATA_A53_CC, - s1->a53_buf_ref); - if (!sd) - av_buffer_unref(&s1->a53_buf_ref); - s1->a53_buf_ref = NULL; + ret = ff_frame_new_side_data_from_buf( + s->avctx, s->current_picture_ptr->f, AV_FRAME_DATA_A53_CC, + &s1->a53_buf_ref, NULL); + if (ret < 0) + return ret; } if (s1->has_stereo3d) { @@ -1332,13 +1332,13 @@ static int mpeg_field_start(MpegEncContext *s, const uint8_t *buf, int buf_size) } if (s1->has_afd) { - AVFrameSideData *sd = - av_frame_new_side_data(s->current_picture_ptr->f, - AV_FRAME_DATA_AFD, 1); - if (!sd) - return AVERROR(ENOMEM); - - *sd->data = s1->afd; + AVFrameSideData *sd; + ret = ff_frame_new_side_data(s->avctx, s->current_picture_ptr->f, + AV_FRAME_DATA_AFD, 1, &sd); + if (ret < 0) + return ret; + if (sd) + *sd->data = s1->afd; s1->has_afd = 0; }