From patchwork Mon Dec 4 01:32:22 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aman Karmani X-Patchwork-Id: 6533 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.161.94 with SMTP id m30csp3848392jah; Sun, 3 Dec 2017 17:39:55 -0800 (PST) X-Google-Smtp-Source: AGs4zMZccDBEoVXyxjD0FQakUnNP/xtNxeoi2pfo9zU7PKtN/XQakTRy7t3tqFo+o0/gS1JgCWH8 X-Received: by 10.28.105.14 with SMTP id e14mr1687799wmc.74.1512351594920; Sun, 03 Dec 2017 17:39:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1512351594; cv=none; d=google.com; s=arc-20160816; b=SGcaeTxYQO+Ga8Ls8TBOdiTNCzM9FAu0nGXlFStgKYWvil0BbzjKuAjsfI57CRMIsl o/fm6Io13I+4rJQs2Vm/6+C/Bc01gEBlPhmyaHgHANOaYqBlXan11k0VMC81pc22Wu/V MgwCUOOkIUxwBjY3MJ4iJY2fEzTrtXj9uc79rREqVTcfnMpYkGlnMmqemXCAM0Dm8D7y ZhWYXgCfbomMQc5Py3P1/1xpmiddCFC8jj5PQMr0vHPjQZHMQDdVhen4kmb6Szq6iXZm jndJ9D62duUFI0ygkfO4UHBdA7fwHwO2skCmXpKFuFVSWK/INhk/Hq9/N8DyUno5V8JX yRGA== 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:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:references :in-reply-to:message-id:date:to:from:dkim-signature:delivered-to :arc-authentication-results; bh=8ktGdPSdyZ0IXxIFJJuiQszAkDFU4K8J/FoxBm72Kh0=; b=qOjqbKJTBc/i4sTB1jEkQOsRV4tvTRmvDHYzgtlckb32Gf2DFx8H9RSE40NicCceQq wL7C7dVcW3k1M6mjHnYlY18sLKuUVVNTELnBNg+2C1r6c4gB5YhaPltCE1zOz5fal5S/ 3S2DaRlUIyhyTzaSjP5r801cAz7zboUV8pCll6vBdBaUJWdUSVWTyOSKKKvTzgV6P4Ru iEA0aZ1w9MfeycS78vcofBqROE+aMnbWLEAsSMok62Wz2YGfmRVGWFvij8kJdYPygtqz UZhCb69UjTfyk2xt/p6XWhLB3iYQzN3+vF5tjL/CZJfeErA6wKF1gwt5IK4jBm2C/SHv Brfg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@tmm1-net.20150623.gappssmtp.com header.s=20150623 header.b=gsXyC+YA; 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 t9si9353386wra.449.2017.12.03.17.39.54; Sun, 03 Dec 2017 17:39:54 -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=@tmm1-net.20150623.gappssmtp.com header.s=20150623 header.b=gsXyC+YA; 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 C767F68A338; Mon, 4 Dec 2017 03:39:48 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-it0-f52.google.com (mail-it0-f52.google.com [209.85.214.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 02F9D68A195 for ; Mon, 4 Dec 2017 03:39:42 +0200 (EET) Received: by mail-it0-f52.google.com with SMTP id z6so9048588iti.4 for ; Sun, 03 Dec 2017 17:39:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tmm1-net.20150623.gappssmtp.com; s=20150623; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=04OClut8jG0mXVhbhNU5HUhuOBI4BN/UR11lEaJRptU=; b=gsXyC+YAJrVmwgue34Lmrjjs78W2qbs47H95muvGE4byL0L9AigrccRk8OdW0I4fIx 6nnqFybQkzJZlJ4eFfOYQmzq61YF5EFt2CJiggVOH1eVNOYuMNdPZvey7iTXYgufwPuD 72wP7gk6i2VJlna6HrRgCMoCQXsP5O464RCuEEI08R8493tGFmu/oEx1sZMFaNepVSwb zMyiyIfJubSUg96eCuV3XB+L0YEPGWiKPrNRExDI4KFSuFZw8OpFiW98v6AAHnIXCfvq qgAuvtgKf8s4APWx7PCSUzYjstFj7YMlgsfy4rFyFpMEsEL8Ny0FPSPzKRL2bMNOBw0n SCqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:in-reply-to:references; bh=04OClut8jG0mXVhbhNU5HUhuOBI4BN/UR11lEaJRptU=; b=Z75HKHawqn8iGTB1FyZKLMxXommtDX1wGaTERETBu0ktSEQflus6XPpPfWzW06q0q0 16QO999GrK0O3+bIGg39M/C2ykXF57IzpuLtHqFF7EOgeD4plLnzqCfBl71zUej4b73s nRi0FLb3IfjySTldGghTFVOoRspt5kEf6HDTf6BBDswrcSOmvpv5NOqw2zOIZ64Cv+Br PIKlPpc4QWwqLBtCHtN5n38xQh+Mr7Z5w7MYBSrQGt+hiEDxU+8mUvjw2JlOc7tXCydr GPa7mc7ZCKZd/SWiCXcKPyCILpOPQwIdER1nhqSayVWrOKFYUb3qkfJlEHxZ5QdAcfu8 /eBg== X-Gm-Message-State: AKGB3mKfiG2nxrrPtSOMGh3VHncFwZfyqg9sIqOyAQZF6XvLLKm65tqR Tb7EjUI/IvzRB5qY6iHdqTFa78mA X-Received: by 10.36.218.6 with SMTP id z6mr10937500itg.24.1512351149960; Sun, 03 Dec 2017 17:32:29 -0800 (PST) Received: from localhost.localdomain (24-196-247-173.dhcp.reno.nv.charter.com. [24.196.247.173]) by smtp.gmail.com with ESMTPSA id m72sm5399819ioe.40.2017.12.03.17.32.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 03 Dec 2017 17:32:29 -0800 (PST) From: Aman Gupta To: ffmpeg-devel@ffmpeg.org Date: Sun, 3 Dec 2017 17:32:22 -0800 Message-Id: <20171204013222.36272-2-ffmpeg@tmm1.net> X-Mailer: git-send-email 2.13.6 (Apple Git-96) In-Reply-To: <20171204013222.36272-1-ffmpeg@tmm1.net> References: <20171204013222.36272-1-ffmpeg@tmm1.net> In-Reply-To: <20171202231409.32371-1-ffmpeg@tmm1.net> References: <20171202231409.32371-1-ffmpeg@tmm1.net> Subject: [FFmpeg-devel] [PATCH v2 2/2] libavcodec/mediacodec: use AVMediaCodecDeviceContext hw_device_ctx if set 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 Cc: matthieu.bouron@stupeflix.com, nfxjfg@googlemail.com, Aman Gupta , sw@jkqxz.net MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Aman Gupta --- libavcodec/mediacodecdec.c | 2 +- libavcodec/mediacodecdec_common.c | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/libavcodec/mediacodecdec.c b/libavcodec/mediacodecdec.c index 39f5cbc045..eabf6d0648 100644 --- a/libavcodec/mediacodecdec.c +++ b/libavcodec/mediacodecdec.c @@ -520,7 +520,7 @@ static const AVCodecHWConfigInternal *mediacodec_hw_configs[] = { &(const AVCodecHWConfigInternal) { .public = { .pix_fmt = AV_PIX_FMT_MEDIACODEC, - .methods = AV_CODEC_HW_CONFIG_METHOD_AD_HOC, + .methods = AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX, .device_type = AV_HWDEVICE_TYPE_NONE, }, .hwaccel = NULL, diff --git a/libavcodec/mediacodecdec_common.c b/libavcodec/mediacodecdec_common.c index cb2f6ae5e5..a9147f3a08 100644 --- a/libavcodec/mediacodecdec_common.c +++ b/libavcodec/mediacodecdec_common.c @@ -24,6 +24,7 @@ #include #include "libavutil/common.h" +#include "libavutil/hwcontext_mediacodec.h" #include "libavutil/mem.h" #include "libavutil/log.h" #include "libavutil/pixfmt.h" @@ -476,7 +477,18 @@ int ff_mediacodec_dec_init(AVCodecContext *avctx, MediaCodecDecContext *s, if (pix_fmt == AV_PIX_FMT_MEDIACODEC) { AVMediaCodecContext *user_ctx = avctx->hwaccel_context; - if (user_ctx && user_ctx->surface) { + if (avctx->hw_device_ctx) { + AVHWDeviceContext *device_ctx = (AVHWDeviceContext*)(avctx->hw_device_ctx->data); + if (device_ctx->type == AV_HWDEVICE_TYPE_MEDIACODEC) { + if (device_ctx->hwctx) { + AVMediaCodecDeviceContext *mediacodec_ctx = (AVMediaCodecDeviceContext *)device_ctx->hwctx; + s->surface = ff_mediacodec_surface_ref(mediacodec_ctx->surface, avctx); + av_log(avctx, AV_LOG_INFO, "Using surface %p\n", s->surface); + } + } + } + + if (!s->surface && user_ctx && user_ctx->surface) { s->surface = ff_mediacodec_surface_ref(user_ctx->surface, avctx); av_log(avctx, AV_LOG_INFO, "Using surface %p\n", s->surface); }