Browse code

avcodec/huffyuv: support gbrp9/10/12/14

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>

Michael Niedermayer authored on 2014/01/27 10:05:13
Showing 2 changed files
... ...
@@ -389,6 +389,21 @@ static av_cold int decode_init(AVCodecContext *avctx)
389 389
         case 0x470:
390 390
             avctx->pix_fmt = AV_PIX_FMT_GBRP;
391 391
             break;
392
+        case 0x480:
393
+            avctx->pix_fmt = AV_PIX_FMT_GBRP9;
394
+            break;
395
+        case 0x490:
396
+            avctx->pix_fmt = AV_PIX_FMT_GBRP10;
397
+            break;
398
+        case 0x4B0:
399
+            avctx->pix_fmt = AV_PIX_FMT_GBRP12;
400
+            break;
401
+        case 0x4D0:
402
+            avctx->pix_fmt = AV_PIX_FMT_GBRP14;
403
+            break;
404
+        case 0x4F0:
405
+            avctx->pix_fmt = AV_PIX_FMT_GBRP16;
406
+            break;
392 407
         case 0x570:
393 408
             avctx->pix_fmt = AV_PIX_FMT_GBRAP;
394 409
             break;
... ...
@@ -254,6 +254,11 @@ static av_cold int encode_init(AVCodecContext *avctx)
254 254
     case AV_PIX_FMT_YUV411P:
255 255
     case AV_PIX_FMT_YUV440P:
256 256
     case AV_PIX_FMT_GBRP:
257
+    case AV_PIX_FMT_GBRP9:
258
+    case AV_PIX_FMT_GBRP10:
259
+    case AV_PIX_FMT_GBRP12:
260
+    case AV_PIX_FMT_GBRP14:
261
+    case AV_PIX_FMT_GBRP16:
257 262
     case AV_PIX_FMT_GRAY8:
258 263
     case AV_PIX_FMT_GRAY16:
259 264
     case AV_PIX_FMT_YUVA444P:
... ...
@@ -301,7 +306,7 @@ static av_cold int encode_init(AVCodecContext *avctx)
301 301
     s->vlc_n = FFMIN(s->n, MAX_VLC_N);
302 302
 
303 303
     avctx->bits_per_coded_sample = s->bitstream_bpp;
304
-    s->decorrelate = s->bitstream_bpp >= 24 && !s->yuv && avctx->pix_fmt != AV_PIX_FMT_GBRP;
304
+    s->decorrelate = s->bitstream_bpp >= 24 && !s->yuv && !(desc->flags & AV_PIX_FMT_FLAG_PLANAR);
305 305
     s->predictor = avctx->prediction_method;
306 306
     s->interlaced = avctx->flags&CODEC_FLAG_INTERLACED_ME ? 1 : 0;
307 307
     if (avctx->context_model == 1) {
... ...
@@ -1012,6 +1017,7 @@ AVCodec ff_ffvhuff_encoder = {
1012 1012
         AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV411P,
1013 1013
         AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV440P,
1014 1014
         AV_PIX_FMT_GBRP,
1015
+        AV_PIX_FMT_GBRP9, AV_PIX_FMT_GBRP10, AV_PIX_FMT_GBRP12, AV_PIX_FMT_GBRP14,
1015 1016
         AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY16,
1016 1017
         AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUVA444P,
1017 1018
         AV_PIX_FMT_GBRAP,