LGTM, will apply.

On Mon, Jun 22, 2026 at 3:11 AM Jonathan Harris via ffmpeg-devel <
[email protected]> wrote:

> The Resolume DXV codec is based on 4x4 pixel DXT1/DXT5/BC4/BC5 blocks, so
> it's natural to assume that files would be padded to multiples of 4 in
> width
> and height. But in practice .mov files produced by the Resolume software
> are
> always padded to multiples of 16 in width and height, so FFmpeg currently
> decodes them incorrectly.
>
> When encoding FFmpeg already pads both width and height to 16 so no change
> is required - see libavcodec/dxvenc.c:37-40 (commit
> d4556c98f02e4f2d3deb86efeb060ebe4659be96):
>
> /*
>   * Resolume will refuse to display frames that are not padded to 16x16
> pixels.
>   */
> #define DXV_ALIGN(x) FFALIGN(x, 16)
>
>
> Signed-off-by: Jonathan Harris <[email protected]>
> ---
>   libavcodec/dxv.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/libavcodec/dxv.c b/libavcodec/dxv.c
> index 344c7b2f3c..bae46cdee0 100644
> --- a/libavcodec/dxv.c
> +++ b/libavcodec/dxv.c
> @@ -1089,8 +1089,8 @@ static av_cold int dxv_init(AVCodecContext *avctx)
>           return ret;
>       }
> -    /* Since codec is based on 4x4 blocks, size is aligned to 4 */
> -    avctx->coded_width  = FFALIGN(avctx->width,  TEXTURE_BLOCK_W);
> +    /* Codec is based on 4x4 blocks, but in practice width is aligned to
> 16 */
> +    avctx->coded_width  = FFALIGN(avctx->width,  16);
>       avctx->coded_height = FFALIGN(avctx->height, TEXTURE_BLOCK_H);
>        ff_texturedsp_init(&ctx->texdsp);
> --
> 2.53.0
>
> _______________________________________________
> ffmpeg-devel mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
>


-- 
Best regards,
Emma Worley
_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to