update gst-plugins

This commit is contained in:
Stephan Raue
2009-03-25 11:20:33 +01:00
parent 618bb244db
commit d150ff45da
12 changed files with 7 additions and 1039 deletions

View File

@@ -4,7 +4,7 @@
$SCRIPTS/build toolchain
$SCRIPTS/build liboil
$SCRIPTS/build ffmpeg
#$SCRIPTS/build ffmpeg
$SCRIPTS/build bzip2
$SCRIPTS/build gstreamer

View File

@@ -1 +1 @@
http://gstreamer.freedesktop.org/src/gst-ffmpeg/gst-ffmpeg-0.10.6.tar.bz2
http://gstreamer.freedesktop.org/src/gst-ffmpeg/gst-ffmpeg-0.10.6.tar.bz2

View File

@@ -14,7 +14,6 @@ $SCRIPTS/build libcdaudio
$SCRIPTS/build faac
$SCRIPTS/build faad2
$SCRIPTS/build libsndfile
$SCRIPTS/build twolame
$SCRIPTS/build bzip2
#$SCRIPTS/build x264
#$SCRIPTS/build swfdec
@@ -110,7 +109,6 @@ ac_cv_lib_xvidcore_xvid_global=yes \
--disable-ofa \
--disable-timidity \
--disable-wildmidi \
--enable-twolame \
--disable-sdl \
--disable-sdltest \
--enable-sndfile \

View File

@@ -8,7 +8,6 @@ $SCRIPTS/install alsa-lib
#$SCRIPTS/install libdvdnav
#$SCRIPTS/install libtheora
#$SCRIPTS/install libsndfile
#$SCRIPTS/install twolame
#$SCRIPTS/install bzip2
#$SCRIPTS/install x264
#$SCRIPTS/install xvidcore

View File

@@ -1 +1 @@
http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-0.10.10.tar.bz2
http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-0.10.11.tar.bz2

View File

@@ -13,6 +13,7 @@ $SCRIPTS/build lame
$SCRIPTS/build libmad
$SCRIPTS/build libmpeg2
$SCRIPTS/build libid3tag
$SCRIPTS/build twolame
#$SCRIPTS/build libsidplay
@@ -44,6 +45,7 @@ cd $BUILD/$1*
--enable-dvdread \
--enable-dvdnav \
--enable-lame \
--enable-twolame \
--enable-id3tag \
--enable-mad \
--enable-mpeg2dec \

View File

@@ -1,110 +0,0 @@
diff -up gst-plugins-ugly-0.10.10/gst/asfdemux/asfpacket.c.push-seek gst-plugins-ugly-0.10.10/gst/asfdemux/asfpacket.c
--- gst-plugins-ugly-0.10.10/gst/asfdemux/asfpacket.c.push-seek 2009-01-25 11:24:31.000000000 +0100
+++ gst-plugins-ugly-0.10.10/gst/asfdemux/asfpacket.c 2009-01-25 12:51:48.000000000 +0100
@@ -127,6 +127,11 @@ gst_asf_payload_queue_for_stream (GstASF
GST_DEBUG_OBJECT (demux, "first ts: %" GST_TIME_FORMAT,
GST_TIME_ARGS (payload->ts));
demux->first_ts = payload->ts;
+ if (demux->push_mode) {
+ gst_segment_set_seek (&demux->segment, demux->segment.rate,
+ GST_FORMAT_TIME, demux->segment.flags, GST_SEEK_TYPE_SET,
+ demux->first_ts, GST_SEEK_TYPE_NONE, 0, NULL);
+ }
}
/* better drop a few frames at the beginning than send bogus timestamps */
@@ -140,7 +145,8 @@ gst_asf_payload_queue_for_stream (GstASF
}
/* make timestamps start from 0 */
- payload->ts -= demux->first_ts;
+ if (!demux->push_mode)
+ payload->ts -= demux->first_ts;
/* remove any incomplete payloads that will never be completed */
while (stream->payloads->len > 0) {
diff -up gst-plugins-ugly-0.10.10/gst/asfdemux/gstasfdemux.c.push-seek gst-plugins-ugly-0.10.10/gst/asfdemux/gstasfdemux.c
--- gst-plugins-ugly-0.10.10/gst/asfdemux/gstasfdemux.c.push-seek 2009-01-25 11:24:56.000000000 +0100
+++ gst-plugins-ugly-0.10.10/gst/asfdemux/gstasfdemux.c 2009-01-25 12:54:31.000000000 +0100
@@ -23,9 +23,6 @@
* - _loop():
* stop if at end of segment if != end of file, ie. demux->segment.stop
*
- * - _chain(): fix newsegment events for live streams where timestamps don't
- * start at zero (need sample files/streams for this)
- *
* - fix packet parsing:
* there's something wrong with timestamps for packets with keyframes,
* and durations too.
@@ -264,6 +261,7 @@ gst_asf_demux_activate_push (GstPad * si
demux = GST_ASF_DEMUX (GST_OBJECT_PARENT (sinkpad));
+ demux->push_mode = TRUE;
demux->state = GST_ASF_DEMUX_STATE_HEADER;
demux->streaming = TRUE;
@@ -276,6 +274,7 @@ gst_asf_demux_activate_pull (GstPad * pa
GstASFDemux *demux;
demux = GST_ASF_DEMUX (GST_OBJECT_PARENT (pad));
+ demux->push_mode = FALSE;
if (active) {
demux->state = GST_ASF_DEMUX_STATE_HEADER;
@@ -313,8 +312,17 @@ gst_asf_demux_sink_event (GstPad * pad,
}
GST_OBJECT_LOCK (demux);
+ if (demux->packet_size && newsegment_start > demux->data_offset)
+ demux->packet = (newsegment_start - demux->data_offset) /
+ demux->packet_size;
+ else
+ demux->packet = 0;
+ demux->first_ts = GST_CLOCK_TIME_NONE;
+ demux->need_newsegment = TRUE;
gst_asf_demux_reset_stream_state_after_discont (demux);
GST_OBJECT_UNLOCK (demux);
+
+ gst_event_unref (event);
break;
}
case GST_EVENT_EOS:{
@@ -331,6 +339,14 @@ gst_asf_demux_sink_event (GstPad * pad,
break;
}
+ case GST_EVENT_FLUSH_START:
+ case GST_EVENT_FLUSH_STOP:
+ GST_OBJECT_LOCK (demux);
+ gst_asf_demux_reset_stream_state_after_discont (demux);
+ GST_OBJECT_UNLOCK (demux);
+ gst_asf_demux_send_event_unlocked (demux, event);
+ break;
+
default:
ret = gst_pad_event_default (pad, event);
break;
@@ -450,6 +466,11 @@ gst_asf_demux_handle_seek_event (GstASFD
accurate = ((flags & GST_SEEK_FLAG_ACCURATE) == GST_SEEK_FLAG_ACCURATE);
keyunit_sync = ((flags & GST_SEEK_FLAG_KEY_UNIT) == GST_SEEK_FLAG_KEY_UNIT);
+ if (demux->push_mode) {
+ gst_event_ref (event);
+ return gst_pad_push_event (demux->sinkpad, event);
+ }
+
/* unlock the streaming thread */
if (flush) {
gst_pad_push_event (demux->sinkpad, gst_event_new_flush_start ());
diff -up gst-plugins-ugly-0.10.10/gst/asfdemux/gstasfdemux.h.push-seek gst-plugins-ugly-0.10.10/gst/asfdemux/gstasfdemux.h
--- gst-plugins-ugly-0.10.10/gst/asfdemux/gstasfdemux.h.push-seek 2009-01-25 12:52:19.000000000 +0100
+++ gst-plugins-ugly-0.10.10/gst/asfdemux/gstasfdemux.h 2009-01-25 12:52:55.000000000 +0100
@@ -171,6 +171,7 @@ struct _GstASFDemux {
gboolean need_newsegment; /* do we need to send a new-segment event? */
gboolean segment_running; /* if we've started the current segment */
gboolean streaming; /* TRUE if we are operating chain-based */
+ gboolean push_mode; /* are we operating in push_mode? */
/* Descrambler settings */
guint8 span;

View File

@@ -1,13 +0,0 @@
diff -up gst-plugins-ugly-0.10.10/gst/asfdemux/asfpacket.c~ gst-plugins-ugly-0.10.10/gst/asfdemux/asfpacket.c
--- gst-plugins-ugly-0.10.10/gst/asfdemux/asfpacket.c~ 2009-01-25 11:23:20.000000000 +0100
+++ gst-plugins-ugly-0.10.10/gst/asfdemux/asfpacket.c 2009-01-25 11:23:20.000000000 +0100
@@ -317,6 +317,9 @@ gst_asf_demux_parse_payload (GstASFDemux
GST_TIME_ARGS (payload.duration));
} else if (payload.rep_data_len != 0) {
GST_WARNING_OBJECT (demux, "invalid replicated data length, very bad");
+ *p_data += payload_len;
+ *p_size -= payload_len;
+ return FALSE;
}
GST_LOG_OBJECT (demux, "media object offset : %u", payload.mo_offset);

View File

@@ -1,96 +0,0 @@
diff -up gst-plugins-ugly-0.10.10/ext/mpeg2dec/gstmpeg2dec.c.foo gst-plugins-ugly-0.10.10/ext/mpeg2dec/gstmpeg2dec.c
--- gst-plugins-ugly-0.10.10/ext/mpeg2dec/gstmpeg2dec.c.foo 2008-11-08 15:48:46.000000000 +0100
+++ gst-plugins-ugly-0.10.10/ext/mpeg2dec/gstmpeg2dec.c 2008-12-17 10:42:17.000000000 +0100
@@ -57,6 +57,7 @@ GST_ELEMENT_DETAILS ("mpeg1 and mpeg2 vi
*/
#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_STATIC_PAD_TEMPLATE ("src",
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 @@ crop_copy_i422_buffer (GstMpeg2dec * mpe
static gboolean
crop_buffer (GstMpeg2dec * mpeg2dec, GstBuffer ** buf)
{
- gboolean result = FALSE;
+ gboolean result = TRUE;
GstBuffer *input = *buf;
GstBuffer *outbuf = input;
@@ -450,8 +451,9 @@ gst_mpeg2dec_alloc_sized_buf (GstMpeg2de
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,10 @@ gst_mpeg2dec_negotiate_format (GstMpeg2d
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) ||
+ (sequence->width != sequence->chroma_width &&
+ sequence->height == sequence->chroma_height)) {
gint halfsize;
fourcc = GST_STR_FOURCC ("Y42B");
@@ -558,8 +562,15 @@ gst_mpeg2dec_negotiate_format (GstMpeg2d
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) {
@@ -1122,6 +1133,11 @@ gst_mpeg2dec_chain (GstPad * pad, GstBuf
GST_DEBUG_OBJECT (mpeg2dec, "parse state %d", state);
switch (state) {
+#if MPEG2_RELEASE >= MPEG2_VERSION (0, 5, 0)
+ case STATE_SEQUENCE_MODIFIED:
+ GST_DEBUG_OBJECT (mpeg2dec, "sequence modified");
+ /* fall through */
+#endif
case STATE_SEQUENCE:
ret = handle_sequence (mpeg2dec, info);
/* if there is an error handling the sequence
diff -up gst-plugins-ugly-0.10.10/ext/mpeg2dec/gstmpeg2dec.h.foo gst-plugins-ugly-0.10.10/ext/mpeg2dec/gstmpeg2dec.h
--- gst-plugins-ugly-0.10.10/ext/mpeg2dec/gstmpeg2dec.h.foo 2008-11-08 15:48:46.000000000 +0100
+++ gst-plugins-ugly-0.10.10/ext/mpeg2dec/gstmpeg2dec.h 2008-12-17 10:42:40.000000000 +0100
@@ -49,7 +49,8 @@ typedef enum
MPEG2DEC_FORMAT_NONE,
MPEG2DEC_FORMAT_I422,
MPEG2DEC_FORMAT_I420,
- MPEG2DEC_FORMAT_YV12
+ MPEG2DEC_FORMAT_YV12,
+ MPEG2DEC_FORMAT_Y444
} Mpeg2decFormat;
typedef enum

View File

@@ -1 +1 @@
http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-0.10.10.tar.bz2
http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-0.10.11.tar.bz2

View File

@@ -34,7 +34,7 @@ $SCRIPTS/install xf86-video-nv
$SCRIPTS/install xinit
#+$SCRIPTS/install pciutils
$SCRIPTS/install evilwm-ewmh
$SCRIPTS/install ratpoison
#$SCRIPTS/install ratpoison
#mkdir -p $INSTALL/usr/bin
#cp $PKG_DIR/scripts/oe_wrapper $INSTALL/usr/bin
#cp $PKG_DIR/scripts/startx $INSTALL/usr/bin