From patchwork Mon Apr 13 15:33:17 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Thompson X-Patchwork-Id: 18921 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 81CF9449F3D for ; Mon, 13 Apr 2020 18:33:40 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 679FC68B962; Mon, 13 Apr 2020 18:33:40 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D1E7668B947 for ; Mon, 13 Apr 2020 18:33:31 +0300 (EEST) Received: by mail-wm1-f51.google.com with SMTP id v8so10340886wma.0 for ; Mon, 13 Apr 2020 08:33:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jkqxz-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=Xpai8rRuGzKrB+JXCgTOAU3XDjF3JXW+xMDUhbuqSNE=; b=1w9+1SwUfB3MF6QJufDBPCZkRV7Ci7krDxgcRINUm6AXEJIqUT04OqkZJXG6u9CN8O W5VDYRmS7z15GixFWkpz0gzS/ypo8si8J9d57aQsPALM6TB9dG6zytKyAjW0xEWtiT2F fXz1ZJsxtwncFFdZq8phmRc4FpdjwHhM6kIdLaimEs8T8Vz+eN1nPZy408PIE21Hw8p7 ccx3u7/xzvpXaups8Zv3L+zz3Z9I1ICLkrgJal3IaN0HeyC2Q+mKkA1n1rFO81uliBrr dQYR6CQoTAFo/0Jv03tOW48YgKS5ZPdmbpfoT5DSpAMRvdAIixjxHao1D+SVepYW0QC3 t2iw== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=Xpai8rRuGzKrB+JXCgTOAU3XDjF3JXW+xMDUhbuqSNE=; b=YyYuJ0fEL0yaH1yhhGO9+T+SYvt1p0ue+NM3IeoRuOW17nzzWwPyiYcCvU86ubyauq 1o2ebn/RFheNI5bfoo6eeu9Q/BPUf7SsoZNXlQinXlGKPdhZ1umdTqfoCz9DpzE80kKE Jvkr/quM9tPVKMRrLYxIUI1NNeYO7uqz307efvhCivS1i5cJJLyLDIOcf3bYKJAzi7hZ jbL8OiK08xdc1IKIjXW3skaNoXQMXsssaH5nSmL7gVqW72kkLPweoz4ftIgqgQS1MpXe 0/k44rmBuccPvd/c3bPz3Qush1dwLbWL899LRVVpaK1r11OlP8jmDVj/2OwSOi9mjmwY EWOA== X-Gm-Message-State: AGi0PuaYINBpGykfHP2iweft2LYsj04FE3C+qtjG3fF3/zBmsVcdUJw7 Wp9tkW9iu2qb+mowz/XKeE+ZgwFIn9M= X-Google-Smtp-Source: APiQypJzgz6OKlxrIe5khlhFEUm+ywGIJa85dEVCx92uFoCsNvmzqUHTB8g4NqwVXDF3SY9vUCsg7Q== X-Received: by 2002:a05:600c:114d:: with SMTP id z13mr19305641wmz.54.1586792010827; Mon, 13 Apr 2020 08:33:30 -0700 (PDT) Received: from rywe.jkqxz.net (cpc91242-cmbg18-2-0-cust650.5-4.cable.virginm.net. [82.8.130.139]) by smtp.gmail.com with ESMTPSA id t8sm15157557wrq.88.2020.04.13.08.33.30 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Apr 2020 08:33:30 -0700 (PDT) From: Mark Thompson To: ffmpeg-devel@ffmpeg.org Date: Mon, 13 Apr 2020 16:33:17 +0100 Message-Id: <20200413153321.5956-4-sw@jkqxz.net> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200413153321.5956-1-sw@jkqxz.net> References: <20200413153321.5956-1-sw@jkqxz.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 4/8] lavc/vaapi_encode: Add hardware config metadata 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" These encoders all accept VAAPI surfaces in a hardware frames context. --- libavcodec/vaapi_encode.c | 5 +++++ libavcodec/vaapi_encode.h | 3 +++ libavcodec/vaapi_encode_h264.c | 1 + libavcodec/vaapi_encode_h265.c | 1 + libavcodec/vaapi_encode_mjpeg.c | 1 + libavcodec/vaapi_encode_mpeg2.c | 1 + libavcodec/vaapi_encode_vp8.c | 1 + libavcodec/vaapi_encode_vp9.c | 1 + 8 files changed, 14 insertions(+) diff --git a/libavcodec/vaapi_encode.c b/libavcodec/vaapi_encode.c index 8ff720e395..f551967ad6 100644 --- a/libavcodec/vaapi_encode.c +++ b/libavcodec/vaapi_encode.c @@ -27,6 +27,11 @@ #include "vaapi_encode.h" #include "avcodec.h" +const AVCodecHWConfigInternal *ff_vaapi_encode_hw_configs[] = { + HW_CONFIG_ENCODER_FRAMES(VAAPI, VAAPI), + NULL, +}; + static const char * const picture_type_name[] = { "IDR", "I", "P", "B" }; static int vaapi_encode_make_packed_header(AVCodecContext *avctx, diff --git a/libavcodec/vaapi_encode.h b/libavcodec/vaapi_encode.h index b9a3defd72..1329f6428f 100644 --- a/libavcodec/vaapi_encode.h +++ b/libavcodec/vaapi_encode.h @@ -31,6 +31,7 @@ #include "libavutil/hwcontext_vaapi.h" #include "avcodec.h" +#include "hwconfig.h" struct VAAPIEncodeType; struct VAAPIEncodePicture; @@ -44,6 +45,8 @@ enum { MAX_PARAM_BUFFER_SIZE = 1024, }; +extern const AVCodecHWConfigInternal *ff_vaapi_encode_hw_configs[]; + enum { PICTURE_TYPE_IDR = 0, PICTURE_TYPE_I = 1, diff --git a/libavcodec/vaapi_encode_h264.c b/libavcodec/vaapi_encode_h264.c index f4965d8b09..67b1ecae1b 100644 --- a/libavcodec/vaapi_encode_h264.c +++ b/libavcodec/vaapi_encode_h264.c @@ -1361,5 +1361,6 @@ AVCodec ff_h264_vaapi_encoder = { AV_PIX_FMT_VAAPI, AV_PIX_FMT_NONE, }, + .hw_configs = ff_vaapi_encode_hw_configs, .wrapper_name = "vaapi", }; diff --git a/libavcodec/vaapi_encode_h265.c b/libavcodec/vaapi_encode_h265.c index 97dc5a7e75..e20e8cbdd0 100644 --- a/libavcodec/vaapi_encode_h265.c +++ b/libavcodec/vaapi_encode_h265.c @@ -1297,5 +1297,6 @@ AVCodec ff_hevc_vaapi_encoder = { AV_PIX_FMT_VAAPI, AV_PIX_FMT_NONE, }, + .hw_configs = ff_vaapi_encode_hw_configs, .wrapper_name = "vaapi", }; diff --git a/libavcodec/vaapi_encode_mjpeg.c b/libavcodec/vaapi_encode_mjpeg.c index bd029cc903..2b5d3bf4f9 100644 --- a/libavcodec/vaapi_encode_mjpeg.c +++ b/libavcodec/vaapi_encode_mjpeg.c @@ -570,5 +570,6 @@ AVCodec ff_mjpeg_vaapi_encoder = { AV_PIX_FMT_VAAPI, AV_PIX_FMT_NONE, }, + .hw_configs = ff_vaapi_encode_hw_configs, .wrapper_name = "vaapi", }; diff --git a/libavcodec/vaapi_encode_mpeg2.c b/libavcodec/vaapi_encode_mpeg2.c index bac9ea1fa6..0398c4cd8c 100644 --- a/libavcodec/vaapi_encode_mpeg2.c +++ b/libavcodec/vaapi_encode_mpeg2.c @@ -707,5 +707,6 @@ AVCodec ff_mpeg2_vaapi_encoder = { AV_PIX_FMT_VAAPI, AV_PIX_FMT_NONE, }, + .hw_configs = ff_vaapi_encode_hw_configs, .wrapper_name = "vaapi", }; diff --git a/libavcodec/vaapi_encode_vp8.c b/libavcodec/vaapi_encode_vp8.c index 6e7bf9d106..16cbcbd81c 100644 --- a/libavcodec/vaapi_encode_vp8.c +++ b/libavcodec/vaapi_encode_vp8.c @@ -262,5 +262,6 @@ AVCodec ff_vp8_vaapi_encoder = { AV_PIX_FMT_VAAPI, AV_PIX_FMT_NONE, }, + .hw_configs = ff_vaapi_encode_hw_configs, .wrapper_name = "vaapi", }; diff --git a/libavcodec/vaapi_encode_vp9.c b/libavcodec/vaapi_encode_vp9.c index d7f415d704..d05319ef39 100644 --- a/libavcodec/vaapi_encode_vp9.c +++ b/libavcodec/vaapi_encode_vp9.c @@ -296,5 +296,6 @@ AVCodec ff_vp9_vaapi_encoder = { AV_PIX_FMT_VAAPI, AV_PIX_FMT_NONE, }, + .hw_configs = ff_vaapi_encode_hw_configs, .wrapper_name = "vaapi", };