From patchwork Wed Aug 30 05:14:33 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 4888 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.15.201 with SMTP id 70csp175764jao; Tue, 29 Aug 2017 22:15:04 -0700 (PDT) X-Google-Smtp-Source: ADKCNb6n0fxDCrg3UWyABFBzKakCkuyRh3N/iosso6nU0VrrJSQiHDZVfCUO0EeRzL550ScCCzqT X-Received: by 10.223.198.11 with SMTP id n11mr187689wrg.297.1504070104349; Tue, 29 Aug 2017 22:15:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1504070104; cv=none; d=google.com; s=arc-20160816; b=AIpkg8PkXjRSRMMaxJOV7nTpc1dPK3CiOxo50VzGHooa6v2XhOjG1E7ILSq7qvaTH9 c+tJjSzlN3Fu7DTDGECm+md3380Bnd+gvNufNHNovT2zmWcop6C5DVJCc+3c97Fpizap EdAxg74DlS9UxCIJnwY4foB3ZDCTXt8+fObI5UK/S0nxx+eC/C17ZrRszb/ueLTOtxqV zOtyjCnAR6BbmSz+b5VVuiP/O8M+BnAL55p0pjXL8wC4ohGbzSk3lC4tfR2T1CXgRR6F UOjzaQWvmk9ksih+NW3RicQKqw+hMHWA+zbbF85PdFzxBnMmhZB+zSQ1PEYzgeh7Ik5O aZgg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:message-id:date:to:from:dkim-signature :delivered-to:arc-authentication-results; bh=0RJ3RpiaynAfcRbQvIhFe2k9IIFMQLV6TkADa4zH87Y=; b=DomK8WF2jfblxUfTbnx/ynZx/h9tmogPcMCU/21aAkQZUtotPtaPAd/ZuAZ5W2saQR tdwkKUb8P+j8d4Z1I3yk+merBzkgbiW3GEUqa5DRYbAjl6ZQ1uSCO0aDJidSDkLOYLBz jBc24WXBCtpAdoWA05RIVh7bpbLcufNKJ6LPzAneDaF9WPCqG3BOmVkabSTwUf1ocNPH G3pEvKsrZkjf/XxsRE1K63TKm6mmjCgpLvxftRS/XhtXBBlMh0VRbuPuSO/sPhpSprUx 4i24WVZUourFs0hyYG9vf9mbQWzrGkNyaNw6DPLMlxSb7Lc4hpx7hjqmccDNB++dd8QW yKKw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=tHC8TlC/; 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=NONE 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 z12si3687928wrc.54.2017.08.29.22.15.03; Tue, 29 Aug 2017 22:15: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=20161025 header.b=tHC8TlC/; 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=NONE 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 EA41A68A0EC; Wed, 30 Aug 2017 08:14:59 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk0-f195.google.com (mail-qk0-f195.google.com [209.85.220.195]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 26EB168A083 for ; Wed, 30 Aug 2017 08:14:53 +0300 (EEST) Received: by mail-qk0-f195.google.com with SMTP id l65so4525118qkc.3 for ; Tue, 29 Aug 2017 22:14:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id; bh=yS+zJhvIUq4gGLdoVuGqY5NX1Ustq6/hv9UdOU2twtE=; b=tHC8TlC/QJcR0XhckKNynS5cZIepTvNFrkstU+Edth1N9i3nqTyVpYm5Y0rU1b5P98 RBMf1ZEbEWnSi+epA7hZ3ugNexsfMZ91kgRAHF41rtfEU1lylMsxsz75MQ1M1SSjB0C+ dSZxpmDyqPtcdd/BPCB0Q5Q//Uaf6Hn0sl2FxSPA54GLoXfVwRsbMBtYG7TuLB2vgd9g xqQFzSYPBASpF8CUhgaIprgtt7cDSXjxzmzJ0jNGjiJCHKSW/2t5YvKqBfoUZy47b9S8 GGuEDHuN0nkoyBHb2kegVShuh3VCPH74q8zupaduXLM1xWMWYF96zag0F+V9ve0OoKqW +XqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=yS+zJhvIUq4gGLdoVuGqY5NX1Ustq6/hv9UdOU2twtE=; b=jShPdkp+GOwWSbr7KM+f6PDc5HSwSb5B/9Zp9NNscnwrP3nl21rVwvh489F6JzgLks eVDnryQoLcSNPguY25dSqnWmG9aN8axJGMtOovU4QSPSJFdigEuRWtZJET6maWKZvyjI 1cHbloKyLKWQbx3ci32MCuAYOxRgdGYn3r1LvW24KGLFEHgW+/bZiS8ZOZA9Bjs1+73T D+Ji188ZgMT5FFakTuwNIhCn74lJ4c4kkrIi58Q0NTLs6SLusFk3DwG9lIG5Zk7S1v+E Uma6nYLQsOsccF+YHZUJ5kc3S6rDMoGS6Hx0KelJTY19nUJqQToLkzkF4t+sL3G2DBZ3 X3Hg== X-Gm-Message-State: AHYfb5hpGD1Jp/yadyy9C0kwgLfTU0G23rWD9eSUCQEDf9eU5M24mMW8 xyAULAd3d0CFbC7O X-Received: by 10.55.155.199 with SMTP id d190mr9400228qke.272.1504070092113; Tue, 29 Aug 2017 22:14:52 -0700 (PDT) Received: from localhost.localdomain ([181.231.116.134]) by smtp.gmail.com with ESMTPSA id q13sm3248295qkl.24.2017.08.29.22.14.50 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 29 Aug 2017 22:14:51 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 30 Aug 2017 02:14:33 -0300 Message-Id: <20170830051433.3312-1-jamrial@gmail.com> X-Mailer: git-send-email 2.13.3 Subject: [FFmpeg-devel] [PATCH] avfilter/lavfutils: remove usage of AVStream->codec X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Signed-off-by: James Almer --- libavfilter/lavfutils.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/libavfilter/lavfutils.c b/libavfilter/lavfutils.c index 35878b3d50..b6319cf027 100644 --- a/libavfilter/lavfutils.c +++ b/libavfilter/lavfutils.c @@ -29,6 +29,7 @@ int ff_load_image(uint8_t *data[4], int linesize[4], AVFormatContext *format_ctx = NULL; AVCodec *codec; AVCodecContext *codec_ctx; + AVCodecParameters *par; AVFrame *frame; int frame_decoded, ret = 0; AVPacket pkt; @@ -50,14 +51,27 @@ int ff_load_image(uint8_t *data[4], int linesize[4], return ret; } - codec_ctx = format_ctx->streams[0]->codec; - codec = avcodec_find_decoder(codec_ctx->codec_id); + par = format_ctx->streams[0]->codecpar; + codec = avcodec_find_decoder(par->codec_id); if (!codec) { av_log(log_ctx, AV_LOG_ERROR, "Failed to find codec\n"); ret = AVERROR(EINVAL); goto end; } + codec_ctx = avcodec_alloc_context3(codec); + if (!codec_ctx) { + av_log(log_ctx, AV_LOG_ERROR, "Failed to alloc video decoder context\n"); + ret = AVERROR(ENOMEM); + goto end; + } + + ret = avcodec_parameters_to_context(codec_ctx, par); + if (ret < 0) { + av_log(log_ctx, AV_LOG_ERROR, "Failed to copy codec parameters to decoder context\n"); + goto end; + } + av_dict_set(&opt, "thread_type", "slice", 0); if ((ret = avcodec_open2(codec_ctx, codec, &opt)) < 0) { av_log(log_ctx, AV_LOG_ERROR, "Failed to open codec\n"); @@ -96,7 +110,7 @@ int ff_load_image(uint8_t *data[4], int linesize[4], end: av_packet_unref(&pkt); - avcodec_close(codec_ctx); + avcodec_free_context(&codec_ctx); avformat_close_input(&format_ctx); av_frame_free(&frame); av_dict_free(&opt);