summaryrefslogtreecommitdiffstats
path: root/ext/dv/gstdvdemux.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2005-09-05 16:28:16 +0000
committerAndy Wingo <wingo@pobox.com>2005-09-05 16:28:16 +0000
commit1c1c961af4207d681f7053c62fa9d649c59967c9 (patch)
tree6bd4714534b97f70563832176c7ae74c1a50bf12 /ext/dv/gstdvdemux.c
parentbcf4791a47962b5c06dcb6d2e92542e4bc81da24 (diff)
ext/dv/gstdvdemux.c (gst_dvdemux_chain): Move the pad adding here from the state change handler, so we fire signals w...
Original commit message from CVS: 2005-09-05 Andy Wingo <wingo@pobox.com> * ext/dv/gstdvdemux.c (gst_dvdemux_chain): Move the pad adding here from the state change handler, so we fire signals without holding the state lock.
Diffstat (limited to 'ext/dv/gstdvdemux.c')
-rw-r--r--ext/dv/gstdvdemux.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/ext/dv/gstdvdemux.c b/ext/dv/gstdvdemux.c
index 8655f65d..ec509790 100644
--- a/ext/dv/gstdvdemux.c
+++ b/ext/dv/gstdvdemux.c
@@ -936,6 +936,10 @@ gst_dvdemux_chain (GstPad * pad, GstBuffer * buffer)
dvdemux = GST_DVDEMUX (gst_pad_get_parent (pad));
+ /* temporary hack? Can't do this from the state change */
+ if (!dvdemux->videosrcpad)
+ gst_dvdemux_add_pads (dvdemux);
+
gst_adapter_push (dvdemux->adapter, buffer);
/* Apparently dv_parse_header can read from the body of the frame
@@ -965,8 +969,6 @@ gst_dvdemux_change_state (GstElement * element, GstStateChange transition)
switch (transition) {
case GST_STATE_CHANGE_NULL_TO_READY:
- if (!dvdemux->videosrcpad)
- gst_dvdemux_add_pads (dvdemux);
break;
case GST_STATE_CHANGE_READY_TO_PAUSED:
dvdemux->decoder = dv_decoder_new (0, FALSE, FALSE);