From: Anton Khirnov <anton@khirnov.net> To: ffmpeg-devel@ffmpeg.org Subject: [FFmpeg-devel] [PATCH 2/2] lavc/dxva: properly namespace public symbols Date: Thu, 17 Feb 2022 10:13:15 +0100 Message-ID: <20220217091315.21092-2-anton@khirnov.net> (raw) In-Reply-To: <20220217091315.21092-1-anton@khirnov.net> --- 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 /** * 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 +{ /** * 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".
next prev parent reply other threads:[~2022-02-17 9:13 UTC|newest] Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-02-17 9:13 [FFmpeg-devel] [PATCH 1/2] lavc/dxva2: rename drop AV prefix from AVDXVAContext Anton Khirnov 2022-02-17 9:13 ` Anton Khirnov [this message] 2022-02-17 9:46 ` [FFmpeg-devel] [PATCH 2/2] lavc/dxva: properly namespace public symbols Hendrik Leppkes 2022-02-17 12:10 ` Michael Niedermayer
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20220217091315.21092-2-anton@khirnov.net \ --to=anton@khirnov.net \ --cc=ffmpeg-devel@ffmpeg.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel This inbox may be cloned and mirrored by anyone: git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \ ffmpegdev@gitmailbox.com public-inbox-index ffmpegdev Example config snippet for mirrors. AGPL code for this site: git clone https://public-inbox.org/public-inbox.git