From patchwork Wed Mar 22 06:47:26 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: wm4 X-Patchwork-Id: 3061 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.50.79 with SMTP id y76csp173597vsy; Tue, 21 Mar 2017 23:47:36 -0700 (PDT) X-Received: by 10.28.166.208 with SMTP id p199mr6064661wme.25.1490165256617; Tue, 21 Mar 2017 23:47:36 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 1si726003wrw.186.2017.03.21.23.47.35; Tue, 21 Mar 2017 23:47:36 -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=@googlemail.com; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=googlemail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 158346882E3; Wed, 22 Mar 2017 08:47:14 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm0-f66.google.com (mail-wm0-f66.google.com [74.125.82.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 84FF06882BA for ; Wed, 22 Mar 2017 08:47:07 +0200 (EET) Received: by mail-wm0-f66.google.com with SMTP id n11so6965122wma.0 for ; Tue, 21 Mar 2017 23:47:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=qyjTHVPXHrAbxuLM7AMc6dZHJmSVSYN7Z/cgd7dF9bI=; b=WFKVDLLC1I2pqsFjhTMoz0ice+Dze4v1MtGlbSPITCSjxSSXn5YZRg1o+dp6gEGtAV T40eVw5U2T1QYw7z5xPGSzAVZ9stCEHLXLv9rIcVYOhbZedtF3OSlVQXWwCiEhFCwrKv IhHnrheoZU5saQByA+MRu6XNUmwqWKx4s5PV5b5sbhg3khibZRflHXtF3UIlyeV0wEW2 vWNSfnRjqZBSI7J4ZZ4F0Xfo7PTazuyPESM66bd9MrsGQ0sZJ9ia1NoNQX2+/DuER7nl EjAIXGZN8vIXBILVLbgUteKMfAyMZB/1YXVwqoTrslG60IQzcSxSsKU8ZUK/j8LTNbvS XHpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=qyjTHVPXHrAbxuLM7AMc6dZHJmSVSYN7Z/cgd7dF9bI=; b=VqkkudGV3KJRj/SV5f/RYgBQazz1qJpOT8QKDTjumtRHThUtRtmNz9Wl+tVSkSmzYT TETQ0cTfBi44FlvN8rRj23JIz1HOFwOadiRLKacHuRvFavE2Ewuj6cnxz34ZAbgmWWeQ m3f3Y7vnCys+2KL3cV8GHAh9Va4UpmhIzEUQwk0wPeFtuXWB3gOs4yVmHE4EKbMXfyqy gixoiN4ur4vcuMzrkjWcZC/qNh8Uio9P0GJN4JBqNnosTHFjPOugGK5Zf8S3GqTmaN3z arQUB1v3jus6f1rh1UhENzqt0Em790HewYcLJ2B2CqUcvFhrPRhpAVTEmd5UqKIG+oEF 9bsg== X-Gm-Message-State: AFeK/H09jLa9a0XeRe4XHcVUXc+LgxcJ/js6w/X4fuDyn4GTQQ2uDrU4BL7jdVO5wSykug== X-Received: by 10.28.213.142 with SMTP id m136mr5667591wmg.31.1490165245846; Tue, 21 Mar 2017 23:47:25 -0700 (PDT) Received: from localhost.localdomain (p4FF0073D.dip0.t-ipconnect.de. [79.240.7.61]) by smtp.googlemail.com with ESMTPSA id m188sm914626wmm.7.2017.03.21.23.47.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 21 Mar 2017 23:47:24 -0700 (PDT) From: wm4 To: ffmpeg-devel@ffmpeg.org Date: Wed, 22 Mar 2017 07:47:26 +0100 Message-Id: <20170322064727.21772-1-nfxjfg@googlemail.com> X-Mailer: git-send-email 2.11.0 Subject: [FFmpeg-devel] [PATCH 1/2] lavc: Add hwaccel_flags field to AVCodecContext 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: wm4 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" This "reuses" the flags introduced for the av_vdpau_bind_context() API function, and makes them available to all hwaccels. This does not affect the current vdpau API, as av_vdpau_bind_context() should obviously override the AVCodecContext.hwaccel_flags flags for the sake of compatibility. --- Libav merge. --- doc/APIchanges | 8 ++++++++ libavcodec/avcodec.h | 9 +++++++++ libavcodec/pthread_frame.c | 2 ++ libavcodec/version.h | 4 ++-- 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/doc/APIchanges b/doc/APIchanges index eccfb70899..bd0ad30a04 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -15,6 +15,10 @@ libavutil: 2015-08-28 API changes, most recent first: +2017-03-xx - xxxxxxx - lavc 57.84.100 - avcodec.h + Add AVCodecContext.hwaccel_flags field. This will control some hwaccels at + a later point. + 2017-03-21 - xxxxxxx - lavf 57.67.100 / 57.08.0 - avio.h Add AVIO_SEEKABLE_TIME flag. @@ -27,6 +31,10 @@ API changes, most recent first: Add av_image_copy_uc_from(), a version of av_image_copy() for copying from GPU mapped memory. +2017-03-xx - xxxxxxx - lavu 55.35.0 - hwcontext.h + Add AV_HWDEVICE_TYPE_NONE, av_hwdevice_find_type_by_name(), + av_hwdevice_get_type_name() and av_hwdevice_iterate_types(). + 2017-03-20 - 9c2436e - lavu 55.49.100 - pixdesc.h Add AV_PIX_FMT_FLAG_BAYER pixel format flag. diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 3e3c37278a..b3479a7223 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -3620,6 +3620,15 @@ typedef struct AVCodecContext { * contexts used must be created on the same device. */ AVBufferRef *hw_device_ctx; + + /** + * Bit set of AV_HWACCEL_FLAG_* flags, which affect hardware accelerated + * decoding (if active). + * - encoding: unused + * - decoding: Set by user (either before avcodec_open2(), or in the + * AVCodecContext.get_format callback) + */ + int hwaccel_flags; } AVCodecContext; AVRational av_codec_get_pkt_timebase (const AVCodecContext *avctx); diff --git a/libavcodec/pthread_frame.c b/libavcodec/pthread_frame.c index a52160145e..6768402ed8 100644 --- a/libavcodec/pthread_frame.c +++ b/libavcodec/pthread_frame.c @@ -275,6 +275,8 @@ FF_ENABLE_DEPRECATION_WARNINGS return AVERROR(ENOMEM); } } + + dst->hwaccel_flags = src->hwaccel_flags; } if (for_user) { diff --git a/libavcodec/version.h b/libavcodec/version.h index ec8651f086..97cccef000 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -28,8 +28,8 @@ #include "libavutil/version.h" #define LIBAVCODEC_VERSION_MAJOR 57 -#define LIBAVCODEC_VERSION_MINOR 83 -#define LIBAVCODEC_VERSION_MICRO 101 +#define LIBAVCODEC_VERSION_MINOR 84 +#define LIBAVCODEC_VERSION_MICRO 100 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ LIBAVCODEC_VERSION_MINOR, \