On Sat, Apr 22, 2017 at 6:33 AM, Luca Barbato <[email protected]> wrote:
> From: Paul B Mahol <[email protected]>
>
> Signed-off-by: Paul B Mahol <[email protected]>
> Signed-off-by: Luca Barbato <[email protected]>
> ---
>  libavcodec/utvideodec.c | 12 +++++++++++-
>  1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/libavcodec/utvideodec.c b/libavcodec/utvideodec.c
> index 910d64b..0f58c83 100644
> --- a/libavcodec/utvideodec.c
> +++ b/libavcodec/utvideodec.c
> @@ -228,6 +228,16 @@ fail:
>      return AVERROR_INVALIDDATA;
>  }
>
> +static int compute_cmask(int plane_no, int interlaced, int pix_fmt)
> +{
> +    const int is_luma = (pix_fmt == AV_PIX_FMT_YUV420P) && !plane_no;
> +
> +    if (interlaced)
> +        return ~(1 + 2 * is_luma);
> +
> +    return ~is_luma;
> +}
> +
>  static int decode_plane(UtvideoContext *c, int plane_no,
>                          uint8_t *dst, int step, ptrdiff_t stride,
>                          int width, int height,
> @@ -238,7 +248,7 @@ static int decode_plane(UtvideoContext *c, int plane_no,
>      VLC vlc;
>      BitstreamContext bc;
>      int prev, fsym;
> -    const int cmask = ~(!plane_no && c->avctx->pix_fmt == 
> AV_PIX_FMT_YUV420P);
> +    const int cmask = compute_cmask(plane_no, c->interlaced, 
> c->avctx->pix_fmt);
>
>      if (build_huff(src, &vlc, &fsym)) {
>          av_log(c->avctx, AV_LOG_ERROR, "Cannot build Huffman codes\n");
> --

ok i think
-- 
Vittorio
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to