CVS Root: /cvs/gstreamer
Module: gst-plugins-ugly
Changes by: ds
Date: Tue Nov 25 2008 03:44:21 UTC
Log message:
* ext/mpeg2dec/gstmpeg2dec.c:
* ext/mpeg2dec/gstmpeg2dec.h:
Add support for 4:4:4 video. Fixes #562086
Modified files:
. : ChangeLog
ext/mpeg2dec : gstmpeg2dec.c gstmpeg2dec.h
Links:
http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-ugly/ChangeLog.diff?r1=1.2436&r2=1.2437
http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-ugly/ext/mpeg2dec/gstmpeg2dec.c.diff?r1=1.130&r2=1.131
http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-ugly/ext/mpeg2dec/gstmpeg2dec.h.diff?r1=1.36&r2=1.37
====Begin Diffs====
Index: ChangeLog
===================================================================
RCS file: /cvs/gstreamer/gst-plugins-ugly/ChangeLog,v
retrieving revision 1.2436
retrieving revision 1.2437
diff -u -d -r1.2436 -r1.2437
--- ChangeLog 24 Nov 2008 09:51:37 -0000 1.2436
+++ ChangeLog 25 Nov 2008 03:44:05 -0000 1.2437
@@ -1,3 +1,9 @@
+2008-11-24 David Schleef <[email protected]>
+
+ * ext/mpeg2dec/gstmpeg2dec.c:
+ * ext/mpeg2dec/gstmpeg2dec.h:
+ Add support for 4:4:4 video. Fixes #562086
2008-11-24 Sebastian Dröge <[email protected]>
Patch by: Simon Holm Thøgersen <odie at cs dot aau dot dk>
Index: gstmpeg2dec.c
RCS file: /cvs/gstreamer/gst-plugins-ugly/ext/mpeg2dec/gstmpeg2dec.c,v
retrieving revision 1.130
retrieving revision 1.131
diff -u -d -r1.130 -r1.131
--- gstmpeg2dec.c 24 Nov 2008 09:51:39 -0000 1.130
+++ gstmpeg2dec.c 25 Nov 2008 03:44:06 -0000 1.131
@@ -57,6 +57,7 @@
*/
#define WARN_THRESHOLD (5)
+//#define enable_user_data
#ifdef enable_user_data
static GstStaticPadTemplate user_data_template_factory =
GST_STATIC_PAD_TEMPLATE ("user_data",
@@ -78,7 +79,7 @@
GST_PAD_SRC,
GST_PAD_ALWAYS,
GST_STATIC_CAPS ("video/x-raw-yuv, "
- "format = (fourcc) { YV12, I420, Y42B }, "
+ "format = (fourcc) { YV12, I420, Y42B, Y444 }, "
"width = (int) [ 16, 4096 ], "
"height = (int) [ 16, 4096 ], "
"framerate = (fraction) [ 0/1, 2147483647/1 ]")
@@ -404,7 +405,7 @@
static gboolean
crop_buffer (GstMpeg2dec * mpeg2dec, GstBuffer ** buf)
{
- gboolean result = FALSE;
+ gboolean result = TRUE;
GstBuffer *input = *buf;
GstBuffer *outbuf = input;
@@ -450,8 +451,9 @@
ret = gst_pad_alloc_buffer_and_set_caps (mpeg2dec->srcpad,
GST_BUFFER_OFFSET_NONE, size, GST_PAD_CAPS (mpeg2dec->srcpad), obuf);
- if (ret != GST_FLOW_OK)
+ if (ret != GST_FLOW_OK) {
return ret;
+ }
/* libmpeg2 needs 16 byte aligned buffers... test for this here
* and if it fails only a single time create our own buffers from
@@ -547,8 +549,8 @@
mpeg2dec->v_offs =
I420_V_OFFSET (mpeg2dec->decoded_width, mpeg2dec->decoded_height);
- } else if (sequence->width == sequence->chroma_width ||
- sequence->height == sequence->chroma_height) {
+ } else if (sequence->width == sequence->chroma_width &&
+ sequence->height != sequence->chroma_height) {
gint halfsize;
fourcc = GST_STR_FOURCC ("Y42B");
@@ -558,8 +560,15 @@
mpeg2dec->u_offs = halfsize;
mpeg2dec->v_offs = halfsize + (halfsize / 2);
} else {
- g_warning ("mpeg2dec: 4:4:4 format not yet supported");
- return (FALSE);
+ gint size;
+ size = mpeg2dec->decoded_width * mpeg2dec->decoded_height;
+ fourcc = GST_STR_FOURCC ("Y444");
+ mpeg2dec->format = MPEG2DEC_FORMAT_Y444;
+ mpeg2dec->size = size * 3;
+ mpeg2dec->u_offs = size;
+ mpeg2dec->v_offs = size * 2;
}
if (mpeg2dec->pixel_width == 0 || mpeg2dec->pixel_height == 0) {
Index: gstmpeg2dec.h
RCS file: /cvs/gstreamer/gst-plugins-ugly/ext/mpeg2dec/gstmpeg2dec.h,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -d -r1.36 -r1.37
--- gstmpeg2dec.h 14 Oct 2008 12:51:41 -0000 1.36
+++ gstmpeg2dec.h 25 Nov 2008 03:44:06 -0000 1.37
@@ -49,7 +49,8 @@
MPEG2DEC_FORMAT_NONE,
MPEG2DEC_FORMAT_I422,
MPEG2DEC_FORMAT_I420,
- MPEG2DEC_FORMAT_YV12
+ MPEG2DEC_FORMAT_YV12,
+ MPEG2DEC_FORMAT_Y444
} Mpeg2decFormat;
typedef enum
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
gstreamer-cvs-verbose mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gstreamer-cvs-verbose
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.