[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