From patchwork Wed Jan 24 08:16:55 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Khirnov X-Patchwork-Id: 45779 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:120f:b0:199:de12:6fa6 with SMTP id v15csp1130312pzf; Wed, 24 Jan 2024 00:20:40 -0800 (PST) X-Google-Smtp-Source: AGHT+IGEdLU6lUFls5pBb5aevJP5TqGRWczFL+vTdA/wQRxU+Ko2qHjUvMc6Tbdb1nOKYwRPQSt+ X-Received: by 2002:ac2:5e88:0:b0:510:ffd:31c9 with SMTP id b8-20020ac25e88000000b005100ffd31c9mr292313lfq.4.1706084440562; Wed, 24 Jan 2024 00:20:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1706084440; cv=none; d=google.com; s=arc-20160816; b=laBKCvw1TXFnWB99t2RUq99pXi1ft4WMM/XPsidJkoe9Q11woang47po3/HYi1Pdyd P/xunOF95FiLySCleJ5MPr9ULU6RwGC+1cnwxE2H4TBlFhJqsw5yjPLH8QrWlk0OaEWC dIFq1x9mmQAWEaQwvAOjarPLJ+3NKx+Vj4OM5lX9WpHKTJleqeCgHoBl6uvToC48GFbl 5YuXTJeOuoH6b2A6vY7Lrpm2Fzfc3mF1pGcebGt5QlH82K6TXAEYgAdwqOfp3/kpUFeU Bu+BzMvccaAm+Zyp5FOMeeWvxm1tc+xq1JR+Dg9wd9KeFmPuTZyZ8Lcotmp6wZ8s2/78 Gf6Q== 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=lsaq7wYOtxr413ikRf2SUnjleJNoGubARyEQPZlRF6M=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=gq3uKLW0jeyo8Fk19KTYBm7kVQtYfw12ZZl2+/gi3zAWjPM5/zKcaEjCo6e8wlkSWl 0PjWqKdyiT3hiaGXRyeUCyybXA/qTM1VdCdnnrudSF0kpjOo5dNLgbGxtRj6GzibkJYO cG1s+HcrD0+tHVTAEYIq4jc+kB+vSLW4grqYdoxysJHArTFXE9YttvXT9p5sYBipkXv0 HErj5YYuxXAT9p0C6iThKlWAA0uJ/WALDMt31TlWcVW35IKx9x2Ht26mJEXeqOS4bo3X QYhEBEMFlRFfE57fi+0A9gRiNFu8iBA/5j+0qxqIyfJ50kUY9gERMxwAMuqakNQ8t5H9 gwng== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@khirnov.net header.s=mail header.b=Hxlwa7lo; 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 ij9-20020a056402158900b005582a7c3daasi12955912edb.95.2024.01.24.00.20.40; Wed, 24 Jan 2024 00:20:40 -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=Hxlwa7lo; 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 AE11768D1AE; Wed, 24 Jan 2024 10:17:50 +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 8063A68D115 for ; Wed, 24 Jan 2024 10:17:27 +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=Hxlwa7lo; dkim-atps=neutral Received: from localhost (mail1.khirnov.net [IPv6:::1]) by mail1.khirnov.net (Postfix) with ESMTP id D46FD1BAF for ; Wed, 24 Jan 2024 09:17:24 +0100 (CET) Received: from mail1.khirnov.net ([IPv6:::1]) by localhost (mail1.khirnov.net [IPv6:::1]) (amavis, port 10024) with ESMTP id i-xhBX5IvVwd for ; Wed, 24 Jan 2024 09:17:24 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=khirnov.net; s=mail; t=1706084240; bh=hC88Vt7E2ewUXMg4df9lF3Frc3JUuyF4J7FxYW+dkm0=; h=From:To:Subject:Date:In-Reply-To:References:From; b=Hxlwa7loRuVNIPD/j2kWeHdB7d2MHbTPNsgvGw2k+QjdBNqYdhM4blh6UNAUyw4oO lhWQiMyxPtqS9/Ka+vRQH5K/TUh5UnnWJ82XTJoFYiHg/zYF9X9LrLxLTYYgvy12Jt JzoOOPIqFV2sRn+UkfNVh+epLj021szBh+S7TN7MjSqZH/fHUmyNmOkcRH+hBv6YzT EWh0h1tuSIK9WGpgGt8KITjS1LPfIVFrH6RZOX7OHgkZKFhSjDdRYj+J17KEQzGPSE 9pSEkCk9eDoarfscZgN4om1JCSCSe75pJPCXYdEIJkyitv2afm9sFafvg0zCBfDAlP AwziHTQoTE3LA== 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 5F2841C05 for ; Wed, 24 Jan 2024 09:17:20 +0100 (CET) Received: from libav.khirnov.net (libav.khirnov.net [IPv6:::1]) by libav.khirnov.net (Postfix) with ESMTP id 431073A061F for ; Wed, 24 Jan 2024 09:17:20 +0100 (CET) From: Anton Khirnov To: ffmpeg-devel@ffmpeg.org Date: Wed, 24 Jan 2024 09:16:55 +0100 Message-ID: <20240124081702.4759-25-anton@khirnov.net> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20240124081702.4759-1-anton@khirnov.net> References: <20240124081702.4759-1-anton@khirnov.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 25/31] fftools/ffmpeg_dec: pass AVCodecParameters through DecoderOpts 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: aLnQ/hcbqdLg Do not retrieve it from InputStream directly. This is a step towards decoupling Decoder and InputStream. --- fftools/ffmpeg.h | 1 + fftools/ffmpeg_dec.c | 4 ++-- fftools/ffmpeg_demux.c | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/fftools/ffmpeg.h b/fftools/ffmpeg.h index b169b1a323..02c614d0ff 100644 --- a/fftools/ffmpeg.h +++ b/fftools/ffmpeg.h @@ -298,6 +298,7 @@ typedef struct DecoderOpts { char *name; const AVCodec *codec; + const AVCodecParameters *par; /* hwaccel options */ enum HWAccelID hwaccel_id; diff --git a/fftools/ffmpeg_dec.c b/fftools/ffmpeg_dec.c index c64b9f5b70..fd1c9ca609 100644 --- a/fftools/ffmpeg_dec.c +++ b/fftools/ffmpeg_dec.c @@ -990,13 +990,13 @@ int dec_open(InputStream *ist, Scheduler *sch, unsigned sch_idx, return AVERROR(ENOMEM); } - dp->sar_override = ist->par->sample_aspect_ratio; + dp->sar_override = o->par->sample_aspect_ratio; dp->dec_ctx = avcodec_alloc_context3(codec); if (!dp->dec_ctx) return AVERROR(ENOMEM); - ret = avcodec_parameters_to_context(dp->dec_ctx, ist->par); + ret = avcodec_parameters_to_context(dp->dec_ctx, o->par); if (ret < 0) { av_log(dp, AV_LOG_ERROR, "Error initializing the decoder context.\n"); return ret; diff --git a/fftools/ffmpeg_demux.c b/fftools/ffmpeg_demux.c index f66319aafe..6216b7c684 100644 --- a/fftools/ffmpeg_demux.c +++ b/fftools/ffmpeg_demux.c @@ -931,6 +931,7 @@ static int ist_use(InputStream *ist, int decoding_needed) ds->dec_opts.name = ds->dec_name; ds->dec_opts.codec = ist->dec; + ds->dec_opts.par = ist->par; ret = dec_open(ist, d->sch, ds->sch_idx_dec, &ist->decoder_opts, &ds->dec_opts);