From patchwork Wed Aug 7 14:29:25 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhong Li X-Patchwork-Id: 14288 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 93FD4447AF0 for ; Wed, 7 Aug 2019 17:29:19 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 61D1868AB0B; Wed, 7 Aug 2019 17:29:19 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 39A7F68A641 for ; Wed, 7 Aug 2019 17:29:12 +0300 (EEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 07 Aug 2019 07:29:10 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,357,1559545200"; d="scan'208";a="176210004" Received: from media_ffmpeg_skl_e3.sh.intel.com ([10.239.159.38]) by fmsmga007.fm.intel.com with ESMTP; 07 Aug 2019 07:29:09 -0700 From: Zhong Li To: ffmpeg-devel@ffmpeg.org Date: Wed, 7 Aug 2019 22:29:25 +0800 Message-Id: <1565188166-21108-1-git-send-email-zhong.li@intel.com> X-Mailer: git-send-email 2.7.4 Subject: [FFmpeg-devel] [PATCH 1/2] Revert "lavf/vf_vpp_qsv: add support for QSV transpose filter" 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: Zhong Li MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" This reverts commit af3ddd581faf2c3c4748ae589947c662b1a2271e. Revert it due to the uncorrect subject, should be: "lavf" -> "lavfi" --- libavfilter/vf_vpp_qsv.c | 101 +---------------------------------------------- 1 file changed, 2 insertions(+), 99 deletions(-) diff --git a/libavfilter/vf_vpp_qsv.c b/libavfilter/vf_vpp_qsv.c index f185133..915cf74 100644 --- a/libavfilter/vf_vpp_qsv.c +++ b/libavfilter/vf_vpp_qsv.c @@ -36,15 +36,12 @@ #include "libavformat/avformat.h" #include "qsvvpp.h" -#include "transpose.h" #define OFFSET(x) offsetof(VPPContext, x) #define FLAGS (AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_FILTERING_PARAM) /* number of video enhancement filters */ -#define ENH_FILTERS_COUNT (7) -#define QSV_HAVE_ROTATION QSV_VERSION_ATLEAST(1, 17) -#define QSV_HAVE_MIRRORING QSV_VERSION_ATLEAST(1, 19) +#define ENH_FILTERS_COUNT (5) typedef struct VPPContext{ const AVClass *class; @@ -57,8 +54,6 @@ typedef struct VPPContext{ mfxExtVPPDenoise denoise_conf; mfxExtVPPDetail detail_conf; mfxExtVPPProcAmp procamp_conf; - mfxExtVPPRotation rotation_conf; - mfxExtVPPMirroring mirroring_conf; int out_width; int out_height; @@ -79,10 +74,6 @@ typedef struct VPPContext{ int crop_x; int crop_y; - int transpose; - int rotate; /* rotate angle : [0, 90, 180, 270] */ - int hflip; /* flip mode : 0 = off, 1 = HORIZONTAL flip */ - /* param for the procamp */ int procamp; /* enable procamp */ float hue; @@ -109,15 +100,6 @@ static const AVOption options[] = { { "contrast", "ProcAmp contrast", OFFSET(contrast), AV_OPT_TYPE_FLOAT, { .dbl = 1.0 }, 0.0, 10.0, .flags = FLAGS}, { "brightness", "ProcAmp brightness", OFFSET(brightness), AV_OPT_TYPE_FLOAT, { .dbl = 0.0 }, -100.0, 100.0, .flags = FLAGS}, - { "transpose", "set transpose direction", OFFSET(transpose), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 6, FLAGS, "transpose"}, - { "cclock_hflip", "rotate counter-clockwise with horizontal flip", 0, AV_OPT_TYPE_CONST, { .i64 = TRANSPOSE_CCLOCK_FLIP }, .flags=FLAGS, .unit = "transpose" }, - { "clock", "rotate clockwise", 0, AV_OPT_TYPE_CONST, { .i64 = TRANSPOSE_CLOCK }, .flags=FLAGS, .unit = "transpose" }, - { "cclock", "rotate counter-clockwise", 0, AV_OPT_TYPE_CONST, { .i64 = TRANSPOSE_CCLOCK }, .flags=FLAGS, .unit = "transpose" }, - { "clock_hflip", "rotate clockwise with horizontal flip", 0, AV_OPT_TYPE_CONST, { .i64 = TRANSPOSE_CLOCK_FLIP }, .flags=FLAGS, .unit = "transpose" }, - { "reversal", "rotate by half-turn", 0, AV_OPT_TYPE_CONST, { .i64 = TRANSPOSE_REVERSAL }, .flags=FLAGS, .unit = "transpose" }, - { "hflip", "flip horizontally", 0, AV_OPT_TYPE_CONST, { .i64 = TRANSPOSE_HFLIP }, .flags=FLAGS, .unit = "transpose" }, - { "vflip", "flip vertically", 0, AV_OPT_TYPE_CONST, { .i64 = TRANSPOSE_VFLIP }, .flags=FLAGS, .unit = "transpose" }, - { "cw", "set the width crop area expression", OFFSET(cw), AV_OPT_TYPE_STRING, { .str = "iw" }, CHAR_MIN, CHAR_MAX, FLAGS }, { "ch", "set the height crop area expression", OFFSET(ch), AV_OPT_TYPE_STRING, { .str = "ih" }, CHAR_MIN, CHAR_MAX, FLAGS }, { "cx", "set the x crop area expression", OFFSET(cx), AV_OPT_TYPE_STRING, { .str = "(in_w-out_w)/2" }, CHAR_MIN, CHAR_MAX, FLAGS }, @@ -374,87 +356,8 @@ static int config_output(AVFilterLink *outlink) param.ext_buf[param.num_ext_buf++] = (mfxExtBuffer*)&vpp->procamp_conf; } - if (vpp->transpose >= 0) { -#ifdef QSV_HAVE_ROTATION - switch (vpp->transpose) { - case TRANSPOSE_CCLOCK_FLIP: - vpp->rotate = MFX_ANGLE_270; - vpp->hflip = MFX_MIRRORING_HORIZONTAL; - break; - case TRANSPOSE_CLOCK: - vpp->rotate = MFX_ANGLE_90; - vpp->hflip = MFX_MIRRORING_DISABLED; - break; - case TRANSPOSE_CCLOCK: - vpp->rotate = MFX_ANGLE_270; - vpp->hflip = MFX_MIRRORING_DISABLED; - break; - case TRANSPOSE_CLOCK_FLIP: - vpp->rotate = MFX_ANGLE_90; - vpp->hflip = MFX_MIRRORING_HORIZONTAL; - break; - case TRANSPOSE_REVERSAL: - vpp->rotate = MFX_ANGLE_180; - vpp->hflip = MFX_MIRRORING_DISABLED; - break; - case TRANSPOSE_HFLIP: - vpp->rotate = MFX_ANGLE_0; - vpp->hflip = MFX_MIRRORING_HORIZONTAL; - break; - case TRANSPOSE_VFLIP: - vpp->rotate = MFX_ANGLE_180; - vpp->hflip = MFX_MIRRORING_HORIZONTAL; - break; - default: - av_log(ctx, AV_LOG_ERROR, "Failed to set transpose mode to %d.\n", vpp->transpose); - return AVERROR(EINVAL); - } -#else - av_log(ctx, AV_LOG_WARNING, "The QSV VPP transpose option is " - "not supported with this MSDK version.\n"); - vpp->transpose = 0; -#endif - } - - if (vpp->rotate) { -#ifdef QSV_HAVE_ROTATION - memset(&vpp->rotation_conf, 0, sizeof(mfxExtVPPRotation)); - vpp->rotation_conf.Header.BufferId = MFX_EXTBUFF_VPP_ROTATION; - vpp->rotation_conf.Header.BufferSz = sizeof(mfxExtVPPRotation); - vpp->rotation_conf.Angle = vpp->rotate; - - if (MFX_ANGLE_90 == vpp->rotate || MFX_ANGLE_270 == vpp->rotate) { - FFSWAP(int, vpp->out_width, vpp->out_height); - FFSWAP(int, outlink->w, outlink->h); - av_log(ctx, AV_LOG_DEBUG, "Swap width and height for clock/cclock rotation.\n"); - } - - param.ext_buf[param.num_ext_buf++] = (mfxExtBuffer*)&vpp->rotation_conf; -#else - av_log(ctx, AV_LOG_WARNING, "The QSV VPP rotate option is " - "not supported with this MSDK version.\n"); - vpp->rotate = 0; -#endif - } - - if (vpp->hflip) { -#ifdef QSV_HAVE_MIRRORING - memset(&vpp->mirroring_conf, 0, sizeof(mfxExtVPPMirroring)); - vpp->mirroring_conf.Header.BufferId = MFX_EXTBUFF_VPP_MIRRORING; - vpp->mirroring_conf.Header.BufferSz = sizeof(mfxExtVPPMirroring); - vpp->mirroring_conf.Type = vpp->hflip; - - param.ext_buf[param.num_ext_buf++] = (mfxExtBuffer*)&vpp->mirroring_conf; -#else - av_log(ctx, AV_LOG_WARNING, "The QSV VPP hflip option is " - "not supported with this MSDK version.\n"); - vpp->hflip = 0; -#endif - } - if (vpp->use_frc || vpp->use_crop || vpp->deinterlace || vpp->denoise || - vpp->detail || vpp->procamp || vpp->rotate || vpp->hflip || - inlink->w != outlink->w || inlink->h != outlink->h) + vpp->detail || vpp->procamp || inlink->w != outlink->w || inlink->h != outlink->h) return ff_qsvvpp_create(ctx, &vpp->qsv, ¶m); else { av_log(ctx, AV_LOG_VERBOSE, "qsv vpp pass through mode.\n");