diff options
author | Felix Domke <felix.domke@multimedia-labs.de> | 2009-09-10 17:38:20 +0200 |
---|---|---|
committer | Felix Domke <felix.domke@multimedia-labs.de> | 2009-09-10 17:38:20 +0200 |
commit | 965c6de1810a85f7c0fa66aa4edda3e882f85b54 (patch) | |
tree | cf5c6976bac778b3550e88fd78090cce757e55b8 | |
parent | 9a700489ea486868a268a7844b886ca12d77627b (diff) | |
parent | 83eb51ead4747e175623ca6d7635f71ec305dab1 (diff) | |
download | openembedded-965c6de1810a85f7c0fa66aa4edda3e882f85b54.tar.gz |
Merge branch 'org.openembedded.dreambox' of git://git.opendreambox.org/git/ghost/opendreambox-1.5 into org.openembedded.dreambox
Conflicts:
packages/gstreamer/gst-plugins-bad_0.10.14.bb
-rw-r--r-- | packages/dreambox/dreambox-dvb-modules.bb | 4 | ||||
-rw-r--r-- | packages/gstreamer/files/playsink_fix_double_refcount.patch | 16 | ||||
-rw-r--r-- | packages/gstreamer/gst-plugin-dvbmediasink.bb | 2 | ||||
-rw-r--r-- | packages/gstreamer/gst-plugins-bad/mpegpsdemux_speedup.diff | 95 | ||||
-rw-r--r-- | packages/gstreamer/gst-plugins-bad_0.10.13.bb | 6 | ||||
-rw-r--r-- | packages/gstreamer/gst-plugins-base/playsink-textsink.diff (renamed from packages/gstreamer/files/playsink-textsink.diff) | 0 | ||||
-rw-r--r-- | packages/gstreamer/gst-plugins-base/playsink_fix_double_refcount.patch | 64 | ||||
-rw-r--r-- | packages/gstreamer/gst-plugins-base_0.10.24.bb | 2 | ||||
-rw-r--r-- | packages/gstreamer/gst-plugins-good/backport_matroskademux_memleak_fix.patch | 86 | ||||
-rw-r--r-- | packages/gstreamer/gst-plugins-good/gst-plugins-good_configure_skip_shave.patch (renamed from packages/gstreamer/files/gst-plugins-good_configure_skip_shave.patch) | 0 | ||||
-rw-r--r-- | packages/gstreamer/gst-plugins-good_0.10.16.bb (renamed from packages/gstreamer/gst-plugins-good_0.10.15.bb) | 4 |
11 files changed, 165 insertions, 114 deletions
diff --git a/packages/dreambox/dreambox-dvb-modules.bb b/packages/dreambox/dreambox-dvb-modules.bb index 1fa80768a2..1b2767008a 100644 --- a/packages/dreambox/dreambox-dvb-modules.bb +++ b/packages/dreambox/dreambox-dvb-modules.bb @@ -24,13 +24,13 @@ KV_dm500plus = "2.6.12" PV_dm500plus = "${KV}-20080822" KV_dm800 = "2.6.12-5.1-brcmstb-dm800" -PV_dm800 = "${KV}-20090822" +PV_dm800 = "${KV}-20090907" KV_dm500hd = "2.6.12-5.1-brcmstb-dm500hd" PV_dm500hd = "${KV}-20090521" KV_dm8000 = "2.6.12-5.1-brcmstb-dm8000" -PV_dm8000 = "${KV}-20090822" +PV_dm8000 = "${KV}-20090907" RDEPENDS = "kernel (${KV})" PR = "r0" diff --git a/packages/gstreamer/files/playsink_fix_double_refcount.patch b/packages/gstreamer/files/playsink_fix_double_refcount.patch deleted file mode 100644 index 5221b9f6c7..0000000000 --- a/packages/gstreamer/files/playsink_fix_double_refcount.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- gst-plugins-base-0.10.24.org/gst/playback/gstplaysink.c 2009-07-14 12:03:45.000000000 +0200 -+++ gst-plugins-base-0.10.24/gst/playback/gstplaysink.c 2009-08-24 14:42:32.000000000 +0200 -@@ -418,11 +418,11 @@ - } - if (chainp) { - /* we have an active chain with a sink, get the sink */ -- result = gst_object_ref (chainp); -+ result = chainp; - } - /* nothing found, return last configured sink */ - if (result == NULL && elem) -- result = gst_object_ref (elem); -+ result = elem; - GST_PLAY_SINK_UNLOCK (playsink); - - return result; diff --git a/packages/gstreamer/gst-plugin-dvbmediasink.bb b/packages/gstreamer/gst-plugin-dvbmediasink.bb index a286a874c6..4fc4215b67 100644 --- a/packages/gstreamer/gst-plugin-dvbmediasink.bb +++ b/packages/gstreamer/gst-plugin-dvbmediasink.bb @@ -8,7 +8,7 @@ PR = "r0" inherit autotools pkgconfig -SRCDATE = "20090825" +SRCDATE = "20090904" SRC_URI = "cvs://anonymous@cvs.schwerkraft.elitedvb.net/cvsroot/dvbmediasink;module=dvbmediasink;method=pserver" diff --git a/packages/gstreamer/gst-plugins-bad/mpegpsdemux_speedup.diff b/packages/gstreamer/gst-plugins-bad/mpegpsdemux_speedup.diff new file mode 100644 index 0000000000..0103cecc33 --- /dev/null +++ b/packages/gstreamer/gst-plugins-bad/mpegpsdemux_speedup.diff @@ -0,0 +1,95 @@ +--- gst/mpegdemux/gstmpegdemux.c 2009-08-11 00:50:05.000000000 +0200 ++++ gst/mpegdemux/gstmpegdemux.c 2009-09-10 11:31:04.000000000 +0200 +@@ -310,7 +309,10 @@ + if (stream != NULL) { + if (stream->pad) + gst_element_remove_pad (GST_ELEMENT_CAST (demux), stream->pad); +- ++ if (stream->buf) ++ free(stream->buf); ++ if (stream->meta_buf) ++ gst_buffer_unref(stream->meta_buf); + g_free (stream); + demux->streams[i] = NULL; + } +@@ -427,6 +429,15 @@ + stream->type = stream_type; + stream->pad = gst_pad_new_from_template (template, name); + stream->segment_thresh = threshold; ++ ++ if (threshold == VIDEO_SEGMENT_THRESHOLD) { ++ stream->buf = malloc(64*1024); ++ stream->buf_pos = 0; ++ stream->meta_buf = gst_buffer_new(); ++ } ++ else ++ stream->buf = 0; ++ + gst_pad_set_event_function (stream->pad, + GST_DEBUG_FUNCPTR (gst_flups_demux_src_event)); + gst_pad_set_query_function (stream->pad, +@@ -478,6 +488,7 @@ + GstFlowReturn result; + guint64 timestamp; + guint size; ++ gboolean sent = FALSE; + + if (stream == NULL) + goto no_stream; +@@ -580,11 +591,38 @@ + demux->next_pts = G_MAXUINT64; + demux->next_dts = G_MAXUINT64; + +- result = gst_pad_push (stream->pad, buf); +- GST_DEBUG_OBJECT (demux, "pushed stream id 0x%02x type 0x%02x, time: %" +- GST_TIME_FORMAT ", size %d. result: %s", +- stream->id, stream->type, GST_TIME_ARGS (timestamp), +- size, gst_flow_get_name (result)); ++ if (stream->buf && stream->buf_pos && (timestamp != GST_CLOCK_TIME_NONE || stream->buf_pos+size > 64*1024)) { ++ GstBuffer *tmp = gst_buffer_new_and_alloc(stream->buf_pos); ++ gst_buffer_copy_metadata(tmp, stream->meta_buf, GST_BUFFER_COPY_ALL); ++ GST_BUFFER_SIZE(tmp) = stream->buf_pos; ++ memcpy(GST_BUFFER_DATA(tmp), stream->buf, stream->buf_pos); ++ result = gst_pad_push (stream->pad, tmp); ++ GST_DEBUG_OBJECT (demux, "pushed stream id 0x%02x type 0x%02x, time: %" ++ GST_TIME_FORMAT ", size %d. result: %s", ++ stream->id, stream->type, GST_TIME_ARGS (timestamp), ++ stream->buf_pos, gst_flow_get_name (result)); ++ stream->buf_pos = 0; ++ sent = TRUE; ++ } ++ ++ if (!stream->buf || size > 64*1024) { ++ result = gst_pad_push (stream->pad, buf); ++ GST_DEBUG_OBJECT (demux, "pushed stream id 0x%02x type 0x%02x, time: %" ++ GST_TIME_FORMAT ", size %d. result: %s", ++ stream->id, stream->type, GST_TIME_ARGS (timestamp), ++ size, gst_flow_get_name (result)); ++ } ++ else { ++ if (!stream->buf_pos) ++ gst_buffer_copy_metadata(stream->meta_buf, buf, GST_BUFFER_COPY_ALL); ++ ++ memcpy(stream->buf + stream->buf_pos, GST_BUFFER_DATA(buf), size); ++ stream->buf_pos += size; ++ gst_buffer_unref(buf); ++ ++ if (!sent) ++ result = GST_FLOW_OK; ++ } + + return result; + +--- gst/mpegdemux/gstmpegdemux.h 2009-08-11 00:50:05.000000000 +0200 ++++ gst/mpegdemux/gstmpegdemux.h 2009-09-10 11:27:46.000000000 +0200 +@@ -93,6 +93,10 @@ + gboolean discont; + gboolean notlinked; + gboolean need_segment; ++ ++ GstBuffer *meta_buf; ++ unsigned char *buf; ++ size_t buf_pos; + }; + + struct _GstFluPSDemux diff --git a/packages/gstreamer/gst-plugins-bad_0.10.13.bb b/packages/gstreamer/gst-plugins-bad_0.10.13.bb deleted file mode 100644 index 2b267bdba6..0000000000 --- a/packages/gstreamer/gst-plugins-bad_0.10.13.bb +++ /dev/null @@ -1,6 +0,0 @@ -require gst-plugins.inc -DEPENDS += "gst-plugins-base" -EXTRA_OECONF += "--disable-apexsink --disable-dvdnav" -RCONFLICTS_gst-plugin-mpegdemux = "gst-plugin-fluendo-mpegdemux" -RREPLACES_gst-plugin-mpegdemux = "gst-plugin-fluendo-mpegdemux" -SRC_URI += "file://gst-plugins_configure_skip_shave.patch;patch=1;pnum=0" diff --git a/packages/gstreamer/files/playsink-textsink.diff b/packages/gstreamer/gst-plugins-base/playsink-textsink.diff index 46dd64a169..46dd64a169 100644 --- a/packages/gstreamer/files/playsink-textsink.diff +++ b/packages/gstreamer/gst-plugins-base/playsink-textsink.diff diff --git a/packages/gstreamer/gst-plugins-base/playsink_fix_double_refcount.patch b/packages/gstreamer/gst-plugins-base/playsink_fix_double_refcount.patch new file mode 100644 index 0000000000..ac26b50589 --- /dev/null +++ b/packages/gstreamer/gst-plugins-base/playsink_fix_double_refcount.patch @@ -0,0 +1,64 @@ +From c3ebeec5a54c6c00bf30f7196968a9369c3d8205 Mon Sep 17 00:00:00 2001 +From: Wim Taymans <wim.taymans@collabora.co.uk> +Date: Mon, 24 Aug 2009 13:06:28 +0000 +Subject: playbin2: fix refcounting of _get_sink() + +g_value_set_object() increases the refcount of the sink, which is not needed +because the object should already be refcounted. Make sure this is always the +case and use g_value_take_object(). + +Fixes: #592884 +--- +diff --git a/gst/playback/gstplaybin2.c b/gst/playback/gstplaybin2.c +index 6fc8d2d..24071b5 100644 +--- a/gst/playback/gstplaybin2.c ++++ b/gst/playback/gstplaybin2.c +@@ -1618,8 +1618,12 @@ gst_play_bin_get_current_sink (GstPlayBin * playbin, GstElement ** elem, + GST_PTR_FORMAT ", the originally set %s sink is %" GST_PTR_FORMAT, + dbg, sink, dbg, *elem); + +- if (sink == NULL) +- sink = *elem; ++ if (sink == NULL) { ++ GST_PLAY_BIN_LOCK (playbin); ++ if ((sink = *elem)) ++ gst_object_ref (sink); ++ GST_PLAY_BIN_UNLOCK (playbin); ++ } + + return sink; + } +@@ -1720,26 +1724,26 @@ gst_play_bin_get_property (GObject * object, guint prop_id, GValue * value, + GST_PLAY_BIN_UNLOCK (playbin); + break; + case PROP_VIDEO_SINK: +- g_value_set_object (value, ++ g_value_take_object (value, + gst_play_bin_get_current_sink (playbin, &playbin->video_sink, + "video", GST_PLAY_SINK_TYPE_VIDEO)); + break; + case PROP_AUDIO_SINK: +- g_value_set_object (value, ++ g_value_take_object (value, + gst_play_bin_get_current_sink (playbin, &playbin->audio_sink, + "audio", GST_PLAY_SINK_TYPE_AUDIO)); + break; + case PROP_VIS_PLUGIN: +- g_value_set_object (value, ++ g_value_take_object (value, + gst_play_sink_get_vis_plugin (playbin->playsink)); + break; + case PROP_TEXT_SINK: +- g_value_set_object (value, ++ g_value_take_object (value, + gst_play_bin_get_current_sink (playbin, &playbin->text_sink, + "text", GST_PLAY_SINK_TYPE_TEXT)); + break; + case PROP_SUBPIC_SINK: +- g_value_set_object (value, ++ g_value_take_object (value, + gst_play_bin_get_current_sink (playbin, &playbin->subpic_sink, + "subpicture", GST_PLAY_SINK_TYPE_SUBPIC)); + break; +-- +cgit v0.8.2 diff --git a/packages/gstreamer/gst-plugins-base_0.10.24.bb b/packages/gstreamer/gst-plugins-base_0.10.24.bb index 4aa4f0fe41..b1f085edf2 100644 --- a/packages/gstreamer/gst-plugins-base_0.10.24.bb +++ b/packages/gstreamer/gst-plugins-base_0.10.24.bb @@ -3,7 +3,7 @@ PROVIDES_${PN} += "gst-plugins" RCONFLICTS_gst-plugins-base = "libgstapp-0.10-0" RREPLACES_gst-plugins-base = "libgstapp-0.10-0" EXTRA_OECONF += "--with-audioresample-format=int" -PR = "r2" +PR = "r3" SRC_URI += "file://gst-plugins_configure_skip_shave.patch;patch=1;pnum=0 \ file://playsink-textsink.diff;patch=1;pnum=1 \ file://playsink_fix_double_refcount.patch;patch=1;pnum=1"
\ No newline at end of file diff --git a/packages/gstreamer/gst-plugins-good/backport_matroskademux_memleak_fix.patch b/packages/gstreamer/gst-plugins-good/backport_matroskademux_memleak_fix.patch deleted file mode 100644 index d4edc88ade..0000000000 --- a/packages/gstreamer/gst-plugins-good/backport_matroskademux_memleak_fix.patch +++ /dev/null @@ -1,86 +0,0 @@ -From 9600c549380d97f79e7a948a3367962405c93f05 Mon Sep 17 00:00:00 2001 -From: Wim Taymans <wim.taymans@collabora.co.uk> -Date: Tue, 23 Jun 2009 10:42:33 +0000 -Subject: matroskademux: avoid leaking buffers - -Don't leak buffers when resyncing to a keyframe. -Avoid leaking buffers when exiting the loop on error conditions. -Add some more debug info. - -Fixes #585911 ---- -diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c -index 5c12482..0737175 100644 ---- a/gst/matroska/matroska-demux.c -+++ b/gst/matroska/matroska-demux.c -@@ -873,6 +873,8 @@ gst_matroska_decode_buffer (GstMatroskaTrackContext * context, GstBuffer * buf) - - g_return_val_if_fail (GST_IS_BUFFER (buf), NULL); - -+ GST_DEBUG ("decoding buffer %p", buf); -+ - data = GST_BUFFER_DATA (buf); - size = GST_BUFFER_SIZE (buf); - -@@ -890,6 +892,7 @@ gst_matroska_decode_buffer (GstMatroskaTrackContext * context, GstBuffer * buf) - - return buf; - } else { -+ GST_DEBUG ("decode data failed"); - gst_buffer_unref (buf); - return NULL; - } -@@ -4010,6 +4013,10 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, - guint64 num; - guint8 *data; - -+ if (buf) { -+ gst_buffer_unref (buf); -+ buf = NULL; -+ } - if ((ret = gst_ebml_read_buffer (ebml, &id, &buf)) != GST_FLOW_OK) - break; - -@@ -4272,6 +4279,7 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, - - sub = gst_buffer_create_sub (buf, - GST_BUFFER_SIZE (buf) - size, lace_size[n]); -+ GST_WARNING_OBJECT (demux, "created subbuffer %p", sub); - - if (stream->encodings != NULL && stream->encodings->len > 0) - sub = gst_matroska_decode_buffer (stream, sub); -@@ -4301,7 +4309,6 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, - - gst_matroska_demux_sync_streams (demux); - -- - if (duration) { - GST_BUFFER_DURATION (sub) = duration / laces; - stream->pos += GST_BUFFER_DURATION (sub); -@@ -4326,6 +4333,7 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, - /* When doing seeks or such, we need to restart on key frames or - * decoders might choke. */ - GST_DEBUG_OBJECT (demux, "skipping delta unit"); -+ gst_buffer_unref (sub); - goto done; - } - -@@ -4361,6 +4369,7 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, - - /* Postprocess the buffers depending on the codec used */ - if (stream->postprocess_frame) { -+ GST_LOG_OBJECT (demux, "running post process"); - ret = stream->postprocess_frame (GST_ELEMENT (demux), stream, &sub); - } - -@@ -4378,7 +4387,7 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, - } - - done: -- if (readblock) -+ if (buf) - gst_buffer_unref (buf); - g_free (lace_size); - --- -cgit v0.8.2 diff --git a/packages/gstreamer/files/gst-plugins-good_configure_skip_shave.patch b/packages/gstreamer/gst-plugins-good/gst-plugins-good_configure_skip_shave.patch index 4e4550efcd..4e4550efcd 100644 --- a/packages/gstreamer/files/gst-plugins-good_configure_skip_shave.patch +++ b/packages/gstreamer/gst-plugins-good/gst-plugins-good_configure_skip_shave.patch diff --git a/packages/gstreamer/gst-plugins-good_0.10.15.bb b/packages/gstreamer/gst-plugins-good_0.10.16.bb index a134540f89..19de0e9f15 100644 --- a/packages/gstreamer/gst-plugins-good_0.10.15.bb +++ b/packages/gstreamer/gst-plugins-good_0.10.16.bb @@ -1,5 +1,5 @@ require gst-plugins.inc DEPENDS += "gst-plugins-base" SRC_URI += "file://sed-with-autoconf-2.59.patch;patch=1;pnum=1 \ - file://gst-plugins-good_configure_skip_shave.patch;patch=1;pnum=0 \ - file://backport_matroskademux_memleak_fix.patch;patch=1;pnum=1" + file://gst-plugins-good_configure_skip_shave.patch;patch=1;pnum=0" +PR = "r0"
\ No newline at end of file |