[MPlayer-cvslog] r34653 - in trunk: codec-cfg.c etc/codecs.conf fmt-conversion.c libmpcodecs/img_format.c libmpcodecs/img_format.h libmpcodecs/mp_image.c libmpcodecs/vf_scale.c m_option.c

cehoyos subversion at mplayerhq.hu
Sun Feb 5 22:20:51 CET 2012


Author: cehoyos
Date: Sun Feb  5 22:20:51 2012
New Revision: 34653

Log:
Support v408 and AYUV decoding via FFmpeg.

Modified:
   trunk/codec-cfg.c
   trunk/etc/codecs.conf
   trunk/fmt-conversion.c
   trunk/libmpcodecs/img_format.c
   trunk/libmpcodecs/img_format.h
   trunk/libmpcodecs/mp_image.c
   trunk/libmpcodecs/vf_scale.c
   trunk/m_option.c

Modified: trunk/codec-cfg.c
==============================================================================
--- trunk/codec-cfg.c	Sat Feb  4 00:11:48 2012	(r34652)
+++ trunk/codec-cfg.c	Sun Feb  5 22:20:51 2012	(r34653)
@@ -188,6 +188,7 @@ static const struct {
     {"420P9",       IMGFMT_420P9},
     {"420A",        IMGFMT_420A},
     {"444P",        IMGFMT_444P},
+    {"444A",        IMGFMT_444A},
     {"422P",        IMGFMT_422P},
     {"411P",        IMGFMT_411P},
     {"440P",        IMGFMT_440P},

Modified: trunk/etc/codecs.conf
==============================================================================
--- trunk/etc/codecs.conf	Sat Feb  4 00:11:48 2012	(r34652)
+++ trunk/etc/codecs.conf	Sun Feb  5 22:20:51 2012	(r34653)
@@ -234,6 +234,22 @@ videocodec ffv308
   dll v308
   out 444P
 
+videocodec ffv408
+  info "FFmpeg Quicktime v408 packed 4:4:4:4"
+  status working
+  fourcc v408
+  driver ffmpeg
+  dll v408
+  out 444A
+
+videocodec ffayuv
+  info "FFmpeg Microsoft ayuv packed 4:4:4:4"
+  status working
+  fourcc AYUV
+  driver ffmpeg
+  dll ayuv
+  out 444A
+
 videocodec ffyuv4
   info "FFmpeg libquicktime yuv4 packed 4:2:0"
   status working

Modified: trunk/fmt-conversion.c
==============================================================================
--- trunk/fmt-conversion.c	Sat Feb  4 00:11:48 2012	(r34652)
+++ trunk/fmt-conversion.c	Sun Feb  5 22:20:51 2012	(r34653)
@@ -63,6 +63,7 @@ static const struct {
     {IMGFMT_BGR32,   PIX_FMT_0RGB32},
     {IMGFMT_BGRA,    PIX_FMT_BGR0},
     {IMGFMT_RGBA,    PIX_FMT_RGB0},
+    {IMGFMT_444A,    PIX_FMT_YUVA444P},
 #endif
 #if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(51, 20, 1)
     {IMGFMT_GBR24P,  PIX_FMT_GBRP},

Modified: trunk/libmpcodecs/img_format.c
==============================================================================
--- trunk/libmpcodecs/img_format.c	Sat Feb  4 00:11:48 2012	(r34652)
+++ trunk/libmpcodecs/img_format.c	Sun Feb  5 22:20:51 2012	(r34653)
@@ -79,6 +79,7 @@ const char *vo_format_name(int format)
     case IMGFMT_444P9_BE:  return "Planar 444P 9-bit big-endian";
     case IMGFMT_420A: return "Planar 420P with alpha";
     case IMGFMT_444P: return "Planar 444P";
+    case IMGFMT_444A: return "Planar 444P with alpha";
     case IMGFMT_422P: return "Planar 422P";
     case IMGFMT_411P: return "Planar 411P";
     case IMGFMT_NV12: return "Planar NV12";
@@ -172,6 +173,10 @@ int mp_get_chroma_shift(int format, int 
             break;
         }
     } else switch (format) {
+    case IMGFMT_444A:
+        xs = 0;
+        ys = 0;
+        break;
     case IMGFMT_420A:
     case IMGFMT_I420:
     case IMGFMT_IYUV:
@@ -197,7 +202,7 @@ int mp_get_chroma_shift(int format, int 
     if (y_shift) *y_shift = ys;
     if (component_bits) *component_bits = bits;
     bpp = 8 + ((16 >> xs) >> ys);
-    if (format == IMGFMT_420A)
+    if (format == IMGFMT_420A || format == IMGFMT_444A)
         bpp += 8;
     bpp *= (bits + 7) >> 3;
     return err ? 0 : bpp;

Modified: trunk/libmpcodecs/img_format.h
==============================================================================
--- trunk/libmpcodecs/img_format.h	Sat Feb  4 00:11:48 2012	(r34652)
+++ trunk/libmpcodecs/img_format.h	Sun Feb  5 22:20:51 2012	(r34653)
@@ -122,6 +122,8 @@
 
 // 4:2:0 planar with alpha
 #define IMGFMT_420A 0x41303234
+// 4:4:4 planar with alpha
+#define IMGFMT_444A 0x41343434
 
 #define IMGFMT_444P16_LE 0x51343434
 #define IMGFMT_444P16_BE 0x34343451

Modified: trunk/libmpcodecs/mp_image.c
==============================================================================
--- trunk/libmpcodecs/mp_image.c	Sat Feb  4 00:11:48 2012	(r34652)
+++ trunk/libmpcodecs/mp_image.c	Sun Feb  5 22:20:51 2012	(r34653)
@@ -141,6 +141,7 @@ void mp_image_setfmt(mp_image_t* mpi,uns
     case IMGFMT_YV12:
         return;
     case IMGFMT_420A:
+    case IMGFMT_444A:
     case IMGFMT_IF09:
         mpi->num_planes=4;
     case IMGFMT_YVU9:

Modified: trunk/libmpcodecs/vf_scale.c
==============================================================================
--- trunk/libmpcodecs/vf_scale.c	Sat Feb  4 00:11:48 2012	(r34652)
+++ trunk/libmpcodecs/vf_scale.c	Sun Feb  5 22:20:51 2012	(r34653)
@@ -88,6 +88,7 @@ static const unsigned int outfmt_list[]=
     IMGFMT_420P9_LE,
     IMGFMT_420P9_BE,
     IMGFMT_420A,
+    IMGFMT_444A,
     IMGFMT_IYUV,
     IMGFMT_YVU9,
     IMGFMT_IF09,

Modified: trunk/m_option.c
==============================================================================
--- trunk/m_option.c	Sat Feb  4 00:11:48 2012	(r34652)
+++ trunk/m_option.c	Sun Feb  5 22:20:51 2012	(r34653)
@@ -1098,6 +1098,7 @@ static struct {
   {"420p16",   IMGFMT_420P16},
   {"420p10",   IMGFMT_420P10},
   {"420p9",    IMGFMT_420P9},
+  {"444a", IMGFMT_444A},
   {"420a", IMGFMT_420A},
   {"444p", IMGFMT_444P},
   {"422p", IMGFMT_422P},


More information about the MPlayer-cvslog mailing list