From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id A16CA4005C for ; Thu, 17 Feb 2022 09:46:52 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 601AF68B137; Thu, 17 Feb 2022 11:46:49 +0200 (EET) Received: from mail-yb1-f176.google.com (mail-yb1-f176.google.com [209.85.219.176]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1EA5568AEEA for ; Thu, 17 Feb 2022 11:46:43 +0200 (EET) Received: by mail-yb1-f176.google.com with SMTP id p19so11830799ybc.6 for ; Thu, 17 Feb 2022 01:46:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=owJIp2tJL1ToxHn9zWy1AQHJK3E357kVzmIfY/SBeFs=; b=LYrNyfLBdhMfyGA0+6t0Hb/W9lnXr7Unpn2WTZrdFIMQLziT8x+8eyWwmvtFFwOTYj gTrQDkXk/Mrv3xmzxDiz6Y5+9lvpn+F1EnnE9X6XpM55yUDY2lOkJRFIpRceUjS8eca0 0ZahhO5KaF7yeAFz8v+ChFYIgWNnvPGK08ABzl1w9nnbWEeDtiz6DjsjKrng+QMXvQ2h yGoyXkYbM6kVQNhGEDlsR4sbbTuhLFpuDgElpB9AHsdue1C3rGNxW+yXb+1y5Kv2xyON 9l+gawdeFo8pjM6sFgAE8vS8+PvJXoKfgW5ZzfkbqMKc0fD+mqqU10PllSX3gt64YaqK cKqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=owJIp2tJL1ToxHn9zWy1AQHJK3E357kVzmIfY/SBeFs=; b=dkky4J6MylUfj1Pl8zj208QouShUTilFIlx+B5Xy4DNgoNATopTdVG1Rt3i1t+7+1Q YJ4j2MiphBb+Wo26+X+RSXQcNJdueWihpNbftXScSZyNM1oe680aLDp3XHsX3U/N2vqN BQtdouylCdVOJu48NFBCKW8s79L+4RTQtm+XpeYYWZ5CJq+TkpaeKL/MehmXfc7FVd/v VZiAZgpYgOMxCmeLDNymWNg9rIAWiSTXctrWCiGvoHpBx1vOfLSvdz+rvq67plyRNREU 3pNjsB2RRIL+7qsEqMDEOqdQXkI2Ur9A9xS1zqczEzTvmalYmfeSmTd++Ef6s3bOs/ML SjcQ== X-Gm-Message-State: AOAM53339v80bpiPaVQhW5j2IYeF1WNzdoPZ5A6Tiy5Kdrudl6CAziRd 7taVP5LsMqNon4dywvnboE2sNnxmnRLOAdYM5otMLbla X-Google-Smtp-Source: ABdhPJyClGZsM0GS9wBa5kMJ0bbZRbf6OhF4NlbeMs/qKzeTg+tv/LNbGPdbDcXa9agKCqMl6iPaxxZoP1Hb+kuI188= X-Received: by 2002:a5b:47:0:b0:61e:12b2:a473 with SMTP id e7-20020a5b0047000000b0061e12b2a473mr1671084ybp.338.1645091201244; Thu, 17 Feb 2022 01:46:41 -0800 (PST) MIME-Version: 1.0 References: <20220217091315.21092-1-anton@khirnov.net> <20220217091315.21092-2-anton@khirnov.net> In-Reply-To: <20220217091315.21092-2-anton@khirnov.net> From: Hendrik Leppkes Date: Thu, 17 Feb 2022 10:46:30 +0100 Message-ID: To: FFmpeg development discussions and patches Subject: Re: [FFmpeg-devel] [PATCH 2/2] lavc/dxva: properly namespace public symbols X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: On Thu, Feb 17, 2022 at 10:13 AM Anton Khirnov wrote: > > --- > doc/APIchanges | 6 ++++++ > libavcodec/dxva2.c | 4 ++-- > libavcodec/dxva2.h | 18 ++++++++++++++---- > libavcodec/dxva2_h264.c | 8 ++++---- > libavcodec/dxva2_internal.h | 4 ++-- > libavcodec/version.h | 3 ++- > 6 files changed, 30 insertions(+), 13 deletions(-) > > diff --git a/doc/APIchanges b/doc/APIchanges > index ea402f6118..3447872752 100644 > --- a/doc/APIchanges > +++ b/doc/APIchanges > @@ -14,6 +14,12 @@ libavutil: 2021-04-27 > > API changes, most recent first: > > +2022-02-xx - xxxxxxxxxx - lavc 59.22.100 - dxva2.h > + Rename struct dxva_context to (typedeffed) AVDXVA2DecodeContext. > + Rename FF_DXVA2_WORKAROUND_SCALING_LIST_ZIGZAG and FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO > + to AV_DXVA2_WORKAROUND_SCALING_LIST_ZIGZAG and AV_DXVA2_WORKAROUND_INTEL_CLEARVIDEO, > + respectively. The previous names are now deprecated. > + > 2022-02-07 - xxxxxxxxxx - lavu 57.21.100 - fifo.h > Deprecate AVFifoBuffer and the API around it, namely av_fifo_alloc(), > av_fifo_alloc_array(), av_fifo_free(), av_fifo_freep(), av_fifo_reset(), > diff --git a/libavcodec/dxva2.c b/libavcodec/dxva2.c > index c31a71ba3b..ab6995940b 100644 > --- a/libavcodec/dxva2.c > +++ b/libavcodec/dxva2.c > @@ -299,7 +299,7 @@ static int dxva_get_decoder_guid(AVCodecContext *avctx, void *service, void *sur > } > > if (IsEqualGUID(decoder_guid, &ff_DXVADDI_Intel_ModeH264_E)) > - sctx->workaround |= FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO; > + sctx->workaround |= AV_DXVA2_WORKAROUND_INTEL_CLEARVIDEO; > > return 0; > } > @@ -704,7 +704,7 @@ int ff_dxva2_decode_init(AVCodecContext *avctx) > #if CONFIG_DXVA2 > if (sctx->pix_fmt == AV_PIX_FMT_DXVA2_VLD) { > AVDXVA2FramesContext *frames_hwctx = frames_ctx->hwctx; > - struct dxva_context *dxva_ctx = &sctx->ctx.dxva2; > + AVDXVA2DecodeContext *dxva_ctx = &sctx->ctx.dxva2; > > ff_dxva2_lock(avctx); > ret = dxva2_create_decoder(avctx); > diff --git a/libavcodec/dxva2.h b/libavcodec/dxva2.h > index 22c93992f2..7892da693c 100644 > --- a/libavcodec/dxva2.h > +++ b/libavcodec/dxva2.h > @@ -45,8 +45,13 @@ > * @{ > */ > > -#define FF_DXVA2_WORKAROUND_SCALING_LIST_ZIGZAG 1 ///< Work around for DXVA2 and old UVD/UVD+ ATI video cards > -#define FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO 2 ///< Work around for DXVA2 and old Intel GPUs with ClearVideo interface > +#define AV_DXVA2_WORKAROUND_SCALING_LIST_ZIGZAG 1 ///< Work around for DXVA2 and old UVD/UVD+ ATI video cards > +#define AV_DXVA2_WORKAROUND_INTEL_CLEARVIDEO 2 ///< Work around for DXVA2 and old Intel GPUs with ClearVideo interface > + > +#if FF_API_DXVA_NAMING > +#define FF_DXVA2_WORKAROUND_SCALING_LIST_ZIGZAG AV_DXVA2_WORKAROUND_SCALING_LIST_ZIGZAG > +#define FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO AV_DXVA2_WORKAROUND_INTEL_CLEARVIDEO > +#endif Why not rename the constants in d3d11va.h at the same time? they are the same afterall. This header likely needs to include version.h now to ensure the FF_API_ macros are available. > > /** > * This structure is used to provides the necessary configurations and data > @@ -54,7 +59,12 @@ > * > * The application must make it available as AVCodecContext.hwaccel_context. > */ > -struct dxva_context { > +typedef struct > +#if FF_API_DXVA_NAMING > +dxva_context > +#else > +AVDXVA2DecodeContext #endif missing here > +{ > /** > * DXVA2 decoder object > */ > @@ -84,7 +94,7 @@ struct dxva_context { > * Private to the FFmpeg AVHWAccel implementation > */ > unsigned report_id; > -}; > +} AVDXVA2DecodeContext; > > /** > * @} > diff --git a/libavcodec/dxva2_h264.c b/libavcodec/dxva2_h264.c > index 489b9bb0f5..f4d6098e0e 100644 > --- a/libavcodec/dxva2_h264.c > +++ b/libavcodec/dxva2_h264.c > @@ -119,9 +119,9 @@ static void fill_picture_parameters(const AVCodecContext *avctx, DXVAContext *ct > > pp->bit_depth_luma_minus8 = sps->bit_depth_luma - 8; > pp->bit_depth_chroma_minus8 = sps->bit_depth_chroma - 8; > - if (DXVA_CONTEXT_WORKAROUND(avctx, ctx) & FF_DXVA2_WORKAROUND_SCALING_LIST_ZIGZAG) > + if (DXVA_CONTEXT_WORKAROUND(avctx, ctx) & AV_DXVA2_WORKAROUND_SCALING_LIST_ZIGZAG) > pp->Reserved16Bits = 0; > - else if (DXVA_CONTEXT_WORKAROUND(avctx, ctx) & FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO) > + else if (DXVA_CONTEXT_WORKAROUND(avctx, ctx) & AV_DXVA2_WORKAROUND_INTEL_CLEARVIDEO) > pp->Reserved16Bits = 0x34c; > else > pp->Reserved16Bits = 3; /* FIXME is there a way to detect the right mode ? */ > @@ -166,7 +166,7 @@ static void fill_scaling_lists(const AVCodecContext *avctx, DXVAContext *ctx, co > const PPS *pps = h->ps.pps; > unsigned i, j; > memset(qm, 0, sizeof(*qm)); > - if (DXVA_CONTEXT_WORKAROUND(avctx, ctx) & FF_DXVA2_WORKAROUND_SCALING_LIST_ZIGZAG) { > + if (DXVA_CONTEXT_WORKAROUND(avctx, ctx) & AV_DXVA2_WORKAROUND_SCALING_LIST_ZIGZAG) { > for (i = 0; i < 6; i++) > for (j = 0; j < 16; j++) > qm->bScalingLists4x4[i][j] = pps->scaling_matrix4[i][j]; > @@ -249,7 +249,7 @@ static void fill_slice_long(AVCodecContext *avctx, DXVA_Slice_H264_Long *slice, > const H264Picture *r = sl->ref_list[list][i].parent; > unsigned plane; > unsigned index; > - if (DXVA_CONTEXT_WORKAROUND(avctx, ctx) & FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO) > + if (DXVA_CONTEXT_WORKAROUND(avctx, ctx) & AV_DXVA2_WORKAROUND_INTEL_CLEARVIDEO) > index = ff_dxva2_get_surface_index(avctx, ctx, r->f); > else > index = get_refpic_index(pp, ff_dxva2_get_surface_index(avctx, ctx, r->f)); > diff --git a/libavcodec/dxva2_internal.h b/libavcodec/dxva2_internal.h > index d14b696a3b..987d89a2cf 100644 > --- a/libavcodec/dxva2_internal.h > +++ b/libavcodec/dxva2_internal.h > @@ -60,14 +60,14 @@ typedef union { > struct AVD3D11VAContext d3d11va; > #endif > #if CONFIG_DXVA2 > - struct dxva_context dxva2; > + AVDXVA2DecodeContext dxva2; > #endif > } DXVAContext; > > typedef struct FFDXVASharedContext { > AVBufferRef *decoder_ref; > > - // FF_DXVA2_WORKAROUND_* flags > + // AV_DXVA2_WORKAROUND_* flags > uint64_t workaround; > > // E.g. AV_PIX_FMT_D3D11 (same as AVCodecContext.pix_fmt, except during init) > diff --git a/libavcodec/version.h b/libavcodec/version.h > index d900503954..2da6b21497 100644 > --- a/libavcodec/version.h > +++ b/libavcodec/version.h > @@ -28,7 +28,7 @@ > #include "libavutil/version.h" > > #define LIBAVCODEC_VERSION_MAJOR 59 > -#define LIBAVCODEC_VERSION_MINOR 21 > +#define LIBAVCODEC_VERSION_MINOR 22 > #define LIBAVCODEC_VERSION_MICRO 100 > > #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ > @@ -65,5 +65,6 @@ > #define FF_API_SUB_TEXT_FORMAT (LIBAVCODEC_VERSION_MAJOR < 60) > #define FF_API_MJPEG_PRED (LIBAVCODEC_VERSION_MAJOR < 60) > #define FF_API_IDCT_NONE (LIBAVCODEC_VERSION_MAJOR < 60) > +#define FF_API_DXVA_NAMING (LIBAVCODEC_VERSION_MAJOR < 60) > > #endif /* AVCODEC_VERSION_H */ > -- > 2.34.1 > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".