* [FFmpeg-devel] [PATCH 1/2] lavc/dxva2: rename drop AV prefix from AVDXVAContext
@ 2022-02-17 9:13 Anton Khirnov
2022-02-17 9:13 ` [FFmpeg-devel] [PATCH 2/2] lavc/dxva: properly namespace public symbols Anton Khirnov
0 siblings, 1 reply; 4+ messages in thread
From: Anton Khirnov @ 2022-02-17 9:13 UTC (permalink / raw)
To: ffmpeg-devel
It is not public.
---
libavcodec/dxva2.c | 10 +++++-----
libavcodec/dxva2_av1.c | 6 +++---
libavcodec/dxva2_h264.c | 14 +++++++-------
libavcodec/dxva2_hevc.c | 8 ++++----
libavcodec/dxva2_internal.h | 10 +++++-----
libavcodec/dxva2_mpeg2.c | 8 ++++----
libavcodec/dxva2_vc1.c | 6 +++---
libavcodec/dxva2_vp9.c | 6 +++---
8 files changed, 34 insertions(+), 34 deletions(-)
diff --git a/libavcodec/dxva2.c b/libavcodec/dxva2.c
index 568d686f39..c31a71ba3b 100644
--- a/libavcodec/dxva2.c
+++ b/libavcodec/dxva2.c
@@ -562,7 +562,7 @@ static void ff_dxva2_lock(AVCodecContext *avctx)
#if CONFIG_D3D11VA
if (ff_dxva2_is_d3d11(avctx)) {
FFDXVASharedContext *sctx = DXVA_SHARED_CONTEXT(avctx);
- AVDXVAContext *ctx = DXVA_CONTEXT(avctx);
+ DXVAContext *ctx = DXVA_CONTEXT(avctx);
if (D3D11VA_CONTEXT(ctx)->context_mutex != INVALID_HANDLE_VALUE)
WaitForSingleObjectEx(D3D11VA_CONTEXT(ctx)->context_mutex, INFINITE, FALSE);
if (sctx->device_ctx) {
@@ -578,7 +578,7 @@ static void ff_dxva2_unlock(AVCodecContext *avctx)
#if CONFIG_D3D11VA
if (ff_dxva2_is_d3d11(avctx)) {
FFDXVASharedContext *sctx = DXVA_SHARED_CONTEXT(avctx);
- AVDXVAContext *ctx = DXVA_CONTEXT(avctx);
+ DXVAContext *ctx = DXVA_CONTEXT(avctx);
if (D3D11VA_CONTEXT(ctx)->context_mutex != INVALID_HANDLE_VALUE)
ReleaseMutex(D3D11VA_CONTEXT(ctx)->context_mutex);
if (sctx->device_ctx) {
@@ -768,7 +768,7 @@ static void *get_surface(const AVCodecContext *avctx, const AVFrame *frame)
}
unsigned ff_dxva2_get_surface_index(const AVCodecContext *avctx,
- const AVDXVAContext *ctx,
+ const DXVAContext *ctx,
const AVFrame *frame)
{
void *surface = get_surface(avctx, frame);
@@ -795,7 +795,7 @@ unsigned ff_dxva2_get_surface_index(const AVCodecContext *avctx,
}
int ff_dxva2_commit_buffer(AVCodecContext *avctx,
- AVDXVAContext *ctx,
+ DXVAContext *ctx,
DECODER_BUFFER_DESC *dsc,
unsigned type, const void *data, unsigned size,
unsigned mb_count)
@@ -890,7 +890,7 @@ int ff_dxva2_common_end_frame(AVCodecContext *avctx, AVFrame *frame,
DECODER_BUFFER_DESC *bs,
DECODER_BUFFER_DESC *slice))
{
- AVDXVAContext *ctx = DXVA_CONTEXT(avctx);
+ DXVAContext *ctx = DXVA_CONTEXT(avctx);
unsigned buffer_count = 0;
#if CONFIG_D3D11VA
D3D11_VIDEO_DECODER_BUFFER_DESC buffer11[4];
diff --git a/libavcodec/dxva2_av1.c b/libavcodec/dxva2_av1.c
index 7b4483f855..66a4594550 100644
--- a/libavcodec/dxva2_av1.c
+++ b/libavcodec/dxva2_av1.c
@@ -53,7 +53,7 @@ static int get_bit_depth_from_seq(const AV1RawSequenceHeader *seq)
return 8;
}
-static int fill_picture_parameters(const AVCodecContext *avctx, AVDXVAContext *ctx, const AV1DecContext *h,
+static int fill_picture_parameters(const AVCodecContext *avctx, DXVAContext *ctx, const AV1DecContext *h,
DXVA_PicParams_AV1 *pp)
{
int i,j, uses_lr;
@@ -270,7 +270,7 @@ static int dxva2_av1_start_frame(AVCodecContext *avctx,
av_unused uint32_t size)
{
const AV1DecContext *h = avctx->priv_data;
- AVDXVAContext *ctx = DXVA_CONTEXT(avctx);
+ DXVAContext *ctx = DXVA_CONTEXT(avctx);
struct av1_dxva2_picture_context *ctx_pic = h->cur_frame.hwaccel_picture_private;
if (!DXVA_CONTEXT_VALID(avctx, ctx))
@@ -346,7 +346,7 @@ static int commit_bitstream_and_slice_buffer(AVCodecContext *avctx,
DECODER_BUFFER_DESC *sc)
{
const AV1DecContext *h = avctx->priv_data;
- AVDXVAContext *ctx = DXVA_CONTEXT(avctx);
+ DXVAContext *ctx = DXVA_CONTEXT(avctx);
struct av1_dxva2_picture_context *ctx_pic = h->cur_frame.hwaccel_picture_private;
void *dxva_data_ptr;
uint8_t *dxva_data;
diff --git a/libavcodec/dxva2_h264.c b/libavcodec/dxva2_h264.c
index 5b23b28f12..489b9bb0f5 100644
--- a/libavcodec/dxva2_h264.c
+++ b/libavcodec/dxva2_h264.c
@@ -45,7 +45,7 @@ static void fill_picture_entry(DXVA_PicEntry_H264 *pic,
pic->bPicEntry = index | (flag << 7);
}
-static void fill_picture_parameters(const AVCodecContext *avctx, AVDXVAContext *ctx, const H264Context *h,
+static void fill_picture_parameters(const AVCodecContext *avctx, DXVAContext *ctx, const H264Context *h,
DXVA_PicParams_H264 *pp)
{
const H264Picture *current_picture = h->cur_pic_ptr;
@@ -161,7 +161,7 @@ static void fill_picture_parameters(const AVCodecContext *avctx, AVDXVAContext *
//pp->SliceGroupMap[810]; /* XXX not implemented by FFmpeg */
}
-static void fill_scaling_lists(const AVCodecContext *avctx, AVDXVAContext *ctx, const H264Context *h, DXVA_Qmatrix_H264 *qm)
+static void fill_scaling_lists(const AVCodecContext *avctx, DXVAContext *ctx, const H264Context *h, DXVA_Qmatrix_H264 *qm)
{
const PPS *pps = h->ps.pps;
unsigned i, j;
@@ -187,7 +187,7 @@ static void fill_scaling_lists(const AVCodecContext *avctx, AVDXVAContext *ctx,
}
}
-static int is_slice_short(const AVCodecContext *avctx, AVDXVAContext *ctx)
+static int is_slice_short(const AVCodecContext *avctx, DXVAContext *ctx)
{
assert(DXVA_CONTEXT_CFG_BITSTREAM(avctx, ctx) == 1 ||
DXVA_CONTEXT_CFG_BITSTREAM(avctx, ctx) == 2);
@@ -218,7 +218,7 @@ static void fill_slice_long(AVCodecContext *avctx, DXVA_Slice_H264_Long *slice,
{
const H264Context *h = avctx->priv_data;
H264SliceContext *sl = &h->slice_ctx[0];
- AVDXVAContext *ctx = DXVA_CONTEXT(avctx);
+ DXVAContext *ctx = DXVA_CONTEXT(avctx);
unsigned list;
memset(slice, 0, sizeof(*slice));
@@ -300,7 +300,7 @@ static int commit_bitstream_and_slice_buffer(AVCodecContext *avctx,
{
const H264Context *h = avctx->priv_data;
const unsigned mb_count = h->mb_width * h->mb_height;
- AVDXVAContext *ctx = DXVA_CONTEXT(avctx);
+ DXVAContext *ctx = DXVA_CONTEXT(avctx);
const H264Picture *current_picture = h->cur_pic_ptr;
struct dxva2_picture_context *ctx_pic = current_picture->hwaccel_picture_private;
DXVA_Slice_H264_Short *slice = NULL;
@@ -443,7 +443,7 @@ static int dxva2_h264_start_frame(AVCodecContext *avctx,
av_unused uint32_t size)
{
const H264Context *h = avctx->priv_data;
- AVDXVAContext *ctx = DXVA_CONTEXT(avctx);
+ DXVAContext *ctx = DXVA_CONTEXT(avctx);
struct dxva2_picture_context *ctx_pic = h->cur_pic_ptr->hwaccel_picture_private;
if (!DXVA_CONTEXT_VALID(avctx, ctx))
@@ -468,7 +468,7 @@ static int dxva2_h264_decode_slice(AVCodecContext *avctx,
{
const H264Context *h = avctx->priv_data;
const H264SliceContext *sl = &h->slice_ctx[0];
- AVDXVAContext *ctx = DXVA_CONTEXT(avctx);
+ DXVAContext *ctx = DXVA_CONTEXT(avctx);
const H264Picture *current_picture = h->cur_pic_ptr;
struct dxva2_picture_context *ctx_pic = current_picture->hwaccel_picture_private;
unsigned position;
diff --git a/libavcodec/dxva2_hevc.c b/libavcodec/dxva2_hevc.c
index dbb701fb1c..ba8bbd28c7 100644
--- a/libavcodec/dxva2_hevc.c
+++ b/libavcodec/dxva2_hevc.c
@@ -54,7 +54,7 @@ static int get_refpic_index(const DXVA_PicParams_HEVC *pp, int surface_index)
return 0xff;
}
-static void fill_picture_parameters(const AVCodecContext *avctx, AVDXVAContext *ctx, const HEVCContext *h,
+static void fill_picture_parameters(const AVCodecContext *avctx, DXVAContext *ctx, const HEVCContext *h,
DXVA_PicParams_HEVC *pp)
{
const HEVCFrame *current_picture = h->ref;
@@ -197,7 +197,7 @@ static void fill_picture_parameters(const AVCodecContext *avctx, AVDXVAContext *
pp->StatusReportFeedbackNumber = 1 + DXVA_CONTEXT_REPORT_ID(avctx, ctx)++;
}
-static void fill_scaling_lists(AVDXVAContext *ctx, const HEVCContext *h, DXVA_Qmatrix_HEVC *qm)
+static void fill_scaling_lists(DXVAContext *ctx, const HEVCContext *h, DXVA_Qmatrix_HEVC *qm)
{
unsigned i, j, pos;
const ScalingList *sl = h->ps.pps->scaling_list_data_present_flag ?
@@ -239,7 +239,7 @@ static int commit_bitstream_and_slice_buffer(AVCodecContext *avctx,
DECODER_BUFFER_DESC *sc)
{
const HEVCContext *h = avctx->priv_data;
- AVDXVAContext *ctx = DXVA_CONTEXT(avctx);
+ DXVAContext *ctx = DXVA_CONTEXT(avctx);
const HEVCFrame *current_picture = h->ref;
struct hevc_dxva2_picture_context *ctx_pic = current_picture->hwaccel_picture_private;
DXVA_Slice_HEVC_Short *slice = NULL;
@@ -358,7 +358,7 @@ static int dxva2_hevc_start_frame(AVCodecContext *avctx,
av_unused uint32_t size)
{
const HEVCContext *h = avctx->priv_data;
- AVDXVAContext *ctx = DXVA_CONTEXT(avctx);
+ DXVAContext *ctx = DXVA_CONTEXT(avctx);
struct hevc_dxva2_picture_context *ctx_pic = h->ref->hwaccel_picture_private;
if (!DXVA_CONTEXT_VALID(avctx, ctx))
diff --git a/libavcodec/dxva2_internal.h b/libavcodec/dxva2_internal.h
index b822af59cd..d14b696a3b 100644
--- a/libavcodec/dxva2_internal.h
+++ b/libavcodec/dxva2_internal.h
@@ -62,7 +62,7 @@ typedef union {
#if CONFIG_DXVA2
struct dxva_context dxva2;
#endif
-} AVDXVAContext;
+} DXVAContext;
typedef struct FFDXVASharedContext {
AVBufferRef *decoder_ref;
@@ -91,12 +91,12 @@ typedef struct FFDXVASharedContext {
// Legacy (but used by code outside of setup)
// In generic mode, DXVA_CONTEXT() will return a pointer to this.
- AVDXVAContext ctx;
+ DXVAContext ctx;
} FFDXVASharedContext;
#define DXVA_SHARED_CONTEXT(avctx) ((FFDXVASharedContext *)((avctx)->internal->hwaccel_priv_data))
-#define DXVA_CONTEXT(avctx) (AVDXVAContext *)((avctx)->hwaccel_context ? (avctx)->hwaccel_context : (&(DXVA_SHARED_CONTEXT(avctx)->ctx)))
+#define DXVA_CONTEXT(avctx) (DXVAContext *)((avctx)->hwaccel_context ? (avctx)->hwaccel_context : (&(DXVA_SHARED_CONTEXT(avctx)->ctx)))
#define D3D11VA_CONTEXT(ctx) (&ctx->d3d11va)
#define DXVA2_CONTEXT(ctx) (&ctx->dxva2)
@@ -136,10 +136,10 @@ typedef struct FFDXVASharedContext {
#endif
unsigned ff_dxva2_get_surface_index(const AVCodecContext *avctx,
- const AVDXVAContext *,
+ const DXVAContext *,
const AVFrame *frame);
-int ff_dxva2_commit_buffer(AVCodecContext *, AVDXVAContext *,
+int ff_dxva2_commit_buffer(AVCodecContext *, DXVAContext *,
DECODER_BUFFER_DESC *,
unsigned type, const void *data, unsigned size,
unsigned mb_count);
diff --git a/libavcodec/dxva2_mpeg2.c b/libavcodec/dxva2_mpeg2.c
index 136f5f9e06..d2935b3620 100644
--- a/libavcodec/dxva2_mpeg2.c
+++ b/libavcodec/dxva2_mpeg2.c
@@ -38,7 +38,7 @@ struct dxva2_picture_context {
};
static void fill_picture_parameters(AVCodecContext *avctx,
- AVDXVAContext *ctx,
+ DXVAContext *ctx,
const struct MpegEncContext *s,
DXVA_PictureParameters *pp)
{
@@ -104,7 +104,7 @@ static void fill_picture_parameters(AVCodecContext *avctx,
}
static void fill_quantization_matrices(AVCodecContext *avctx,
- AVDXVAContext *ctx,
+ DXVAContext *ctx,
const struct MpegEncContext *s,
DXVA_QmatrixData *qm)
{
@@ -152,7 +152,7 @@ static int commit_bitstream_and_slice_buffer(AVCodecContext *avctx,
DECODER_BUFFER_DESC *sc)
{
const struct MpegEncContext *s = avctx->priv_data;
- AVDXVAContext *ctx = DXVA_CONTEXT(avctx);
+ DXVAContext *ctx = DXVA_CONTEXT(avctx);
struct dxva2_picture_context *ctx_pic =
s->current_picture_ptr->hwaccel_picture_private;
const int is_field = s->picture_structure != PICT_FRAME;
@@ -255,7 +255,7 @@ static int dxva2_mpeg2_start_frame(AVCodecContext *avctx,
av_unused uint32_t size)
{
const struct MpegEncContext *s = avctx->priv_data;
- AVDXVAContext *ctx = DXVA_CONTEXT(avctx);
+ DXVAContext *ctx = DXVA_CONTEXT(avctx);
struct dxva2_picture_context *ctx_pic =
s->current_picture_ptr->hwaccel_picture_private;
diff --git a/libavcodec/dxva2_vc1.c b/libavcodec/dxva2_vc1.c
index 5fd6957d0c..5be6272855 100644
--- a/libavcodec/dxva2_vc1.c
+++ b/libavcodec/dxva2_vc1.c
@@ -38,7 +38,7 @@ struct dxva2_picture_context {
};
static void fill_picture_parameters(AVCodecContext *avctx,
- AVDXVAContext *ctx, const VC1Context *v,
+ DXVAContext *ctx, const VC1Context *v,
DXVA_PictureParameters *pp)
{
const MpegEncContext *s = &v->s;
@@ -185,7 +185,7 @@ static int commit_bitstream_and_slice_buffer(AVCodecContext *avctx,
DECODER_BUFFER_DESC *sc)
{
const VC1Context *v = avctx->priv_data;
- AVDXVAContext *ctx = DXVA_CONTEXT(avctx);
+ DXVAContext *ctx = DXVA_CONTEXT(avctx);
const MpegEncContext *s = &v->s;
struct dxva2_picture_context *ctx_pic = s->current_picture_ptr->hwaccel_picture_private;
@@ -312,7 +312,7 @@ static int dxva2_vc1_start_frame(AVCodecContext *avctx,
av_unused uint32_t size)
{
const VC1Context *v = avctx->priv_data;
- AVDXVAContext *ctx = DXVA_CONTEXT(avctx);
+ DXVAContext *ctx = DXVA_CONTEXT(avctx);
struct dxva2_picture_context *ctx_pic = v->s.current_picture_ptr->hwaccel_picture_private;
if (!DXVA_CONTEXT_VALID(avctx, ctx))
diff --git a/libavcodec/dxva2_vp9.c b/libavcodec/dxva2_vp9.c
index eaeab3af7a..f7762b9e06 100644
--- a/libavcodec/dxva2_vp9.c
+++ b/libavcodec/dxva2_vp9.c
@@ -40,7 +40,7 @@ static void fill_picture_entry(DXVA_PicEntry_VPx *pic,
pic->bPicEntry = index | (flag << 7);
}
-static int fill_picture_parameters(const AVCodecContext *avctx, AVDXVAContext *ctx, const VP9SharedContext *h,
+static int fill_picture_parameters(const AVCodecContext *avctx, DXVAContext *ctx, const VP9SharedContext *h,
DXVA_PicParams_VP9 *pp)
{
int i;
@@ -166,7 +166,7 @@ static int commit_bitstream_and_slice_buffer(AVCodecContext *avctx,
DECODER_BUFFER_DESC *sc)
{
const VP9SharedContext *h = avctx->priv_data;
- AVDXVAContext *ctx = DXVA_CONTEXT(avctx);
+ DXVAContext *ctx = DXVA_CONTEXT(avctx);
struct vp9_dxva2_picture_context *ctx_pic = h->frames[CUR_FRAME].hwaccel_picture_private;
void *dxva_data_ptr;
uint8_t *dxva_data;
@@ -254,7 +254,7 @@ static int dxva2_vp9_start_frame(AVCodecContext *avctx,
av_unused uint32_t size)
{
const VP9SharedContext *h = avctx->priv_data;
- AVDXVAContext *ctx = DXVA_CONTEXT(avctx);
+ DXVAContext *ctx = DXVA_CONTEXT(avctx);
struct vp9_dxva2_picture_context *ctx_pic = h->frames[CUR_FRAME].hwaccel_picture_private;
if (!DXVA_CONTEXT_VALID(avctx, ctx))
--
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".
^ permalink raw reply [flat|nested] 4+ messages in thread
* [FFmpeg-devel] [PATCH 2/2] lavc/dxva: properly namespace public symbols
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
2022-02-17 9:46 ` Hendrik Leppkes
2022-02-17 12:10 ` Michael Niedermayer
0 siblings, 2 replies; 4+ messages in thread
From: Anton Khirnov @ 2022-02-17 9:13 UTC (permalink / raw)
To: ffmpeg-devel
---
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".
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [FFmpeg-devel] [PATCH 2/2] lavc/dxva: properly namespace public symbols
2022-02-17 9:13 ` [FFmpeg-devel] [PATCH 2/2] lavc/dxva: properly namespace public symbols Anton Khirnov
@ 2022-02-17 9:46 ` Hendrik Leppkes
2022-02-17 12:10 ` Michael Niedermayer
1 sibling, 0 replies; 4+ messages in thread
From: Hendrik Leppkes @ 2022-02-17 9:46 UTC (permalink / raw)
To: FFmpeg development discussions and patches
On Thu, Feb 17, 2022 at 10:13 AM Anton Khirnov <anton@khirnov.net> 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".
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [FFmpeg-devel] [PATCH 2/2] lavc/dxva: properly namespace public symbols
2022-02-17 9:13 ` [FFmpeg-devel] [PATCH 2/2] lavc/dxva: properly namespace public symbols Anton Khirnov
2022-02-17 9:46 ` Hendrik Leppkes
@ 2022-02-17 12:10 ` Michael Niedermayer
1 sibling, 0 replies; 4+ messages in thread
From: Michael Niedermayer @ 2022-02-17 12:10 UTC (permalink / raw)
To: FFmpeg development discussions and patches
[-- Attachment #1.1: Type: text/plain, Size: 8422 bytes --]
On Thu, Feb 17, 2022 at 10:13:15AM +0100, 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(-)
This doesnt build
CC libavcodec/dxva2.o
In file included from src/libavcodec/dxva2_internal.h:34:0,
from src/libavcodec/dxva2.c:33:
src/libavcodec/dxva2.h:23:0: error: unterminated #ifndef
#ifndef AVCODEC_DXVA2_H
In file included from src/libavcodec/dxva2_internal.h:35:0,
from src/libavcodec/dxva2.c:33:
src/libavutil/hwcontext_dxva2.h:39:1: error: duplicate ‘typedef’
typedef struct AVDXVA2DeviceContext {
^~~~~~~
src/libavutil/hwcontext_dxva2.h:39:9: error: two or more data types in declaration specifiers
typedef struct AVDXVA2DeviceContext {
^~~~~~
In file included from src/libavcodec/dxva2_internal.h:38:0,
from src/libavcodec/dxva2.c:33:
src/libavcodec/d3d11va.h:48:0: warning: "FF_DXVA2_WORKAROUND_SCALING_LIST_ZIGZAG" redefined
#define FF_DXVA2_WORKAROUND_SCALING_LIST_ZIGZAG 1 ///< Work around for Direct3D11 and old UVD/UVD+ ATI video cards
In file included from src/libavcodec/dxva2_internal.h:34:0,
from src/libavcodec/dxva2.c:33:
src/libavcodec/dxva2.h:52:0: note: this is the location of the previous definition
#define FF_DXVA2_WORKAROUND_SCALING_LIST_ZIGZAG AV_DXVA2_WORKAROUND_SCALING_LIST_ZIGZAG
In file included from src/libavcodec/dxva2_internal.h:38:0,
from src/libavcodec/dxva2.c:33:
src/libavcodec/d3d11va.h:49:0: warning: "FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO" redefined
#define FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO 2 ///< Work around for Direct3D11 and old Intel GPUs with ClearVideo interface
In file included from src/libavcodec/dxva2_internal.h:34:0,
from src/libavcodec/dxva2.c:33:
src/libavcodec/dxva2.h:53:0: note: this is the location of the previous definition
#define FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO AV_DXVA2_WORKAROUND_INTEL_CLEARVIDEO
In file included from src/libavcodec/dxva2.c:33:0:
src/libavcodec/dxva2_internal.h:63:5: error: unknown type name ‘AVDXVA2DecodeContext’
AVDXVA2DecodeContext dxva2;
^~~~~~~~~~~~~~~~~~~~
In file included from src/libavcodec/dxva2.h:39:0,
from src/libavcodec/dxva2_internal.h:34,
from src/libavcodec/dxva2.c:33:
src/libavcodec/dxva2.c: In function ‘dxva2_create_decoder’:
src/libavcodec/dxva2.c:359:63: error: dereferencing pointer to incomplete type ‘AVDXVA2DeviceContext {aka struct dxva_context}’
hr = IDirect3DDeviceManager9_OpenDeviceHandle(device_hwctx->devmgr,
^
src/libavcodec/dxva2.c: In function ‘ff_dxva2_decode_init’:
src/libavcodec/dxva2.c:707:9: error: unknown type name ‘AVDXVA2DecodeContext’; did you mean ‘AVDXVA2DeviceContext’?
AVDXVA2DecodeContext *dxva_ctx = &sctx->ctx.dxva2;
^~~~~~~~~~~~~~~~~~~~
AVDXVA2DeviceContext
src/libavcodec/dxva2.c:715:17: error: request for member ‘decoder’ in something not a structure or union
dxva_ctx->decoder = sctx->dxva2_decoder;
^~
src/libavcodec/dxva2.c:716:17: error: request for member ‘cfg’ in something not a structure or union
dxva_ctx->cfg = &sctx->dxva2_config;
^~
src/libavcodec/dxva2.c:717:17: error: request for member ‘surface’ in something not a structure or union
dxva_ctx->surface = frames_hwctx->surfaces;
^~
src/libavcodec/dxva2.c:718:17: error: request for member ‘surface_count’ in something not a structure or union
dxva_ctx->surface_count = frames_hwctx->nb_surfaces;
^~
src/libavcodec/dxva2.c:719:17: error: request for member ‘workaround’ in something not a structure or union
dxva_ctx->workaround = sctx->workaround;
^~
In file included from src/libavcodec/dxva2.c:33:0:
src/libavcodec/dxva2.c: In function ‘ff_dxva2_get_surface_index’:
src/libavcodec/dxva2_internal.h:106:116: error: request for member ‘surface_count’ in something not a structure or union
#define DXVA_CONTEXT_COUNT(avctx, ctx) (ff_dxva2_is_d3d11(avctx) ? ctx->d3d11va.surface_count : ctx->dxva2.surface_count)
^
src/libavcodec/dxva2.c:787:21: note: in expansion of macro ‘DXVA_CONTEXT_COUNT’
for (i = 0; i < DXVA_CONTEXT_COUNT(avctx, ctx); i++) {
^
src/libavcodec/dxva2.c:788:65: error: request for member ‘surface’ in something not a structure or union
if (avctx->pix_fmt == AV_PIX_FMT_DXVA2_VLD && ctx->dxva2.surface[i] == surface)
^
In file included from src/libavcodec/dxva2.h:39:0,
from src/libavcodec/dxva2_internal.h:34,
from src/libavcodec/dxva2.c:33:
src/libavcodec/dxva2.c: In function ‘ff_dxva2_commit_buffer’:
src/libavcodec/dxva2.c:817:63: error: request for member ‘decoder’ in something not a structure or union
hr = IDirectXVideoDecoder_GetBuffer(DXVA2_CONTEXT(ctx)->decoder, type,
^
src/libavcodec/dxva2.c:817:63: error: request for member ‘decoder’ in something not a structure or union
hr = IDirectXVideoDecoder_GetBuffer(DXVA2_CONTEXT(ctx)->decoder, type,
^
src/libavcodec/dxva2.c:859:67: error: request for member ‘decoder’ in something not a structure or union
hr = IDirectXVideoDecoder_ReleaseBuffer(DXVA2_CONTEXT(ctx)->decoder, type);
^
src/libavcodec/dxva2.c:859:67: error: request for member ‘decoder’ in something not a structure or union
hr = IDirectXVideoDecoder_ReleaseBuffer(DXVA2_CONTEXT(ctx)->decoder, type);
^
src/libavcodec/dxva2.c: In function ‘ff_dxva2_common_end_frame’:
src/libavcodec/dxva2.c:923:68: error: request for member ‘decoder’ in something not a structure or union
hr = IDirectXVideoDecoder_BeginFrame(DXVA2_CONTEXT(ctx)->decoder,
^
src/libavcodec/dxva2.c:923:68: error: request for member ‘decoder’ in something not a structure or union
hr = IDirectXVideoDecoder_BeginFrame(DXVA2_CONTEXT(ctx)->decoder,
^
src/libavcodec/dxva2.c:1025:61: error: request for member ‘decoder’ in something not a structure or union
hr = IDirectXVideoDecoder_Execute(DXVA2_CONTEXT(ctx)->decoder, &exec);
^
src/libavcodec/dxva2.c:1025:61: error: request for member ‘decoder’ in something not a structure or union
hr = IDirectXVideoDecoder_Execute(DXVA2_CONTEXT(ctx)->decoder, &exec);
^
src/libavcodec/dxva2.c:1040:62: error: request for member ‘decoder’ in something not a structure or union
hr = IDirectXVideoDecoder_EndFrame(DXVA2_CONTEXT(ctx)->decoder, NULL);
^
src/libavcodec/dxva2.c:1040:62: error: request for member ‘decoder’ in something not a structure or union
hr = IDirectXVideoDecoder_EndFrame(DXVA2_CONTEXT(ctx)->decoder, NULL);
^
src/ffbuild/common.mak:78: recipe for target 'libavcodec/dxva2.o' failed
make: *** [libavcodec/dxva2.o] Error 1
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
In fact, the RIAA has been known to suggest that students drop out
of college or go to community college in order to be able to afford
settlements. -- The RIAA
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
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".
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-02-17 12:10 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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 ` [FFmpeg-devel] [PATCH 2/2] lavc/dxva: properly namespace public symbols Anton Khirnov
2022-02-17 9:46 ` Hendrik Leppkes
2022-02-17 12:10 ` Michael Niedermayer
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