On Mon, Apr 10, 2017 at 6:42 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 | 30 ++++++++++++++++++++++++++++++
>  libavformat/riff.c      |  2 ++
>  2 files changed, 32 insertions(+)
>
> diff --git a/libavcodec/utvideodec.c b/libavcodec/utvideodec.c
> index cc18e3d..f5fae8b 100644
> --- a/libavcodec/utvideodec.c
> +++ b/libavcodec/utvideodec.c
> @@ -681,6 +681,26 @@ static int decode_frame(AVCodecContext *avctx, void 
> *data, int *got_frame,
>              }
>          }
>          break;
> +    case AV_PIX_FMT_YUV444P:
> +        for (i = 0; i < 3; i++) {
> +            ret = decode_plane(c, i, frame.f->data[i], 1, 
> frame.f->linesize[i],
> +                               avctx->width, avctx->height,
> +                               plane_start[i], c->frame_pred == PRED_LEFT);
> +            if (ret)
> +                return ret;
> +            if (c->frame_pred == PRED_MEDIAN) {
> +                if (!c->interlaced) {
> +                    restore_median(frame.f->data[i], 1, frame.f->linesize[i],
> +                                   avctx->width, avctx->height,
> +                                   c->slices, 0);
> +                } else {
> +                    restore_median_il(frame.f->data[i], 1, 
> frame.f->linesize[i],
> +                                      avctx->width, avctx->height,
> +                                      c->slices, 0);
> +                }
> +            }
> +        }
> +        break;
>      case AV_PIX_FMT_YUV422P10:
>          for (i = 0; i < 3; i++) {
>              ret = decode_plane10(c, i, (uint16_t *)frame.f->data[i], 1, 
> frame.f->linesize[i] / 2,
> @@ -762,6 +782,11 @@ static av_cold int decode_init(AVCodecContext *avctx)
>          avctx->pix_fmt = AV_PIX_FMT_YUV422P;
>          avctx->colorspace = AVCOL_SPC_BT470BG;
>          break;
> +    case MKTAG('U', 'L', 'Y', '4'):
> +        c->planes      = 3;
> +        avctx->pix_fmt = AV_PIX_FMT_YUV444P;
> +        avctx->colorspace = AVCOL_SPC_BT470BG;
> +        break;
>      case MKTAG('U', 'Q', 'Y', '2'):
>          c->planes      = 3;
>          avctx->pix_fmt = AV_PIX_FMT_YUV422P10;
> @@ -784,6 +809,11 @@ static av_cold int decode_init(AVCodecContext *avctx)
>          avctx->pix_fmt = AV_PIX_FMT_YUV422P;
>          avctx->colorspace = AVCOL_SPC_BT709;
>          break;
> +    case MKTAG('U', 'L', 'H', '4'):
> +        c->planes      = 3;
> +        avctx->pix_fmt = AV_PIX_FMT_YUV444P;
> +        avctx->colorspace = AVCOL_SPC_BT709;
> +        break;
>      default:
>          av_log(avctx, AV_LOG_ERROR, "Unknown Ut Video FOURCC provided 
> (%08X)\n",
>                 avctx->codec_tag);
> diff --git a/libavformat/riff.c b/libavformat/riff.c
> index 2e884eb..2046a6d 100644
> --- a/libavformat/riff.c
> +++ b/libavformat/riff.c
> @@ -340,8 +340,10 @@ const AVCodecTag ff_codec_bmp_tags[] = {
>      { AV_CODEC_ID_UTVIDEO,      MKTAG('U', 'L', 'R', 'G') },
>      { AV_CODEC_ID_UTVIDEO,      MKTAG('U', 'L', 'Y', '0') },
>      { AV_CODEC_ID_UTVIDEO,      MKTAG('U', 'L', 'Y', '2') },
> +    { AV_CODEC_ID_UTVIDEO,      MKTAG('U', 'L', 'Y', '4') },
>      { AV_CODEC_ID_UTVIDEO,      MKTAG('U', 'L', 'H', '0') },
>      { AV_CODEC_ID_UTVIDEO,      MKTAG('U', 'L', 'H', '2') },
> +    { AV_CODEC_ID_UTVIDEO,      MKTAG('U', 'L', 'H', '4') },
>      { AV_CODEC_ID_UTVIDEO,      MKTAG('U', 'Q', 'Y', '2') },
>      { AV_CODEC_ID_UTVIDEO,      MKTAG('U', 'Q', 'R', 'A') },
>      { AV_CODEC_ID_UTVIDEO,      MKTAG('U', 'Q', 'R', 'G') },
> --

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

Reply via email to