On 21/07/15 00:47, Vittorio Giovara wrote:
> From: Michael Niedermayer <[email protected]>
>
> Found-By: ami_stuff
> Signed-off-by: Vittorio Giovara <[email protected]>
> ---
> libavcodec/dds.c | 12 +++++++-----
> 1 file changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/libavcodec/dds.c b/libavcodec/dds.c
> index 19f7dd0..1266ef2 100644
> --- a/libavcodec/dds.c
> +++ b/libavcodec/dds.c
> @@ -357,13 +357,13 @@ static int parse_pixel_format(AVCodecContext *avctx)
> avctx->pix_fmt = AV_PIX_FMT_BGR24;
> /* 32 bpp */
> else if (bpp == 32 && r == 0xff0000 && g == 0xff00 && b == 0xff && a
> == 0)
> - avctx->pix_fmt = AV_PIX_FMT_RGBA; // opaque
> - else if (bpp == 32 && r == 0xff && g == 0xff00 && b == 0xff0000 && a
> == 0)
> avctx->pix_fmt = AV_PIX_FMT_BGRA; // opaque
> + else if (bpp == 32 && r == 0xff && g == 0xff00 && b == 0xff0000 && a
> == 0)
> + avctx->pix_fmt = AV_PIX_FMT_RGBA; // opaque
> else if (bpp == 32 && r == 0xff0000 && g == 0xff00 && b == 0xff && a
> == 0xff000000)
> - avctx->pix_fmt = AV_PIX_FMT_RGBA;
> - else if (bpp == 32 && r == 0xff && g == 0xff00 && b == 0xff0000 && a
> == 0xff000000)
> avctx->pix_fmt = AV_PIX_FMT_BGRA;
> + else if (bpp == 32 && r == 0xff && g == 0xff00 && b == 0xff0000 && a
> == 0xff000000)
> + avctx->pix_fmt = AV_PIX_FMT_RGBA;
RGBA -> BGRA basically?
> /* give up */
> else {
> av_log(avctx, AV_LOG_ERROR, "Unknown pixel format "
> @@ -646,7 +646,9 @@ static int dds_decode(AVCodecContext *avctx, void *data,
> }
>
> /* Run any post processing here if needed. */
> - if (avctx->pix_fmt == AV_PIX_FMT_RGBA || avctx->pix_fmt ==
> AV_PIX_FMT_YA8)
> + if (avctx->pix_fmt == AV_PIX_FMT_BGRA ||
> + avctx->pix_fmt == AV_PIX_FMT_RGBA ||
> + avctx->pix_fmt == AV_PIX_FMT_YA8)
> run_postproc(avctx, frame);
Possibly ok, do you have other 32bit or 4 channel pixel formats that
would require post processing?
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel