On 4/19/2025 4:07 PM, Mark Thompson wrote:
--- configure | 1 + libavcodec/Makefile | 1 + libavcodec/allcodecs.c | 1 + libavcodec/apv_decode.c | 327 +++++++++++++++++++++++++++++++++++++++ libavcodec/apv_decode.h | 80 ++++++++++ libavcodec/apv_dsp.c | 136 ++++++++++++++++ libavcodec/apv_dsp.h | 37 +++++ libavcodec/apv_entropy.c | 200 ++++++++++++++++++++++++ 8 files changed, 783 insertions(+) create mode 100644 libavcodec/apv_decode.c create mode 100644 libavcodec/apv_decode.h create mode 100644 libavcodec/apv_dsp.c create mode 100644 libavcodec/apv_dsp.h create mode 100644 libavcodec/apv_entropy.cdiff --git a/configure b/configure index ca404d2797..ee270b770c 100755 --- a/configure +++ b/configure @@ -2935,6 +2935,7 @@ apng_decoder_select="inflate_wrapper" apng_encoder_select="deflate_wrapper llvidencdsp" aptx_encoder_select="audio_frame_queue" aptx_hd_encoder_select="audio_frame_queue" +apv_decoder_select="cbs_apv" asv1_decoder_select="blockdsp bswapdsp idctdsp" asv1_encoder_select="aandcttables bswapdsp fdctdsp pixblockdsp" asv2_decoder_select="blockdsp bswapdsp idctdsp" diff --git a/libavcodec/Makefile b/libavcodec/Makefile index a5f5c4e904..e674671460 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -244,6 +244,7 @@ OBJS-$(CONFIG_APTX_HD_DECODER) += aptxdec.o aptx.o OBJS-$(CONFIG_APTX_HD_ENCODER) += aptxenc.o aptx.o OBJS-$(CONFIG_APNG_DECODER) += png.o pngdec.o pngdsp.o OBJS-$(CONFIG_APNG_ENCODER) += png.o pngenc.o +OBJS-$(CONFIG_APV_DECODER) += apv_decode.o apv_entropy.o apv_dsp.o OBJS-$(CONFIG_ARBC_DECODER) += arbc.o OBJS-$(CONFIG_ARGO_DECODER) += argo.o OBJS-$(CONFIG_SSA_DECODER) += assdec.o ass.o diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c index f10519617e..09f06c71d6 100644 --- a/libavcodec/allcodecs.c +++ b/libavcodec/allcodecs.c @@ -47,6 +47,7 @@ extern const FFCodec ff_anm_decoder; extern const FFCodec ff_ansi_decoder; extern const FFCodec ff_apng_encoder; extern const FFCodec ff_apng_decoder; +extern const FFCodec ff_apv_decoder; extern const FFCodec ff_arbc_decoder; extern const FFCodec ff_argo_decoder; extern const FFCodec ff_asv1_encoder; diff --git a/libavcodec/apv_decode.c b/libavcodec/apv_decode.c new file mode 100644 index 0000000000..066b5a9735 --- /dev/null +++ b/libavcodec/apv_decode.c
[...]
+static int apv_decode_tile_component(AVCodecContext *avctx, void *data, + int job, int thread) +{ + APVRawFrame *input = data; + APVDecodeContext *apv = avctx->priv_data; + const CodedBitstreamAPVContext *apv_cbc = apv->cbc->priv_data; + const APVDerivedTileInfo *tile_info = &apv_cbc->tile_info; + + int tile_index = job / apv_cbc->num_comp; + int comp_index = job % apv_cbc->num_comp; + + int sub_w = comp_index == 0 ? 1 : apv_cbc->sub_width_c; + int sub_h = comp_index == 0 ? 1 : apv_cbc->sub_height_c;
There's no need for these two in the CBS private context. You can achieve the same thing using log2_chroma_w and log2_chroma_h from the AVPixFmtDescriptor for the pixel format.
OpenPGP_signature.asc
Description: OpenPGP digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".