dvbbasebin: Emit no-more-pads when pad is added
authorEdward Hervey <edward@collabora.com>
Tue, 22 May 2012 16:55:38 +0000 (18:55 +0200)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Wed, 23 May 2012 07:40:39 +0000 (09:40 +0200)
This avoids an endless hang with playbin2, which sees dvbbasesbin as
having dynamic pads ... but never emitted no-more-pads.

sys/dvb/dvbbasebin.c

index f3d804dfba4d5fe74e34d2a3703eccada5f7630b..415e3d63241f4b498023687c6ebb4e358ba255bc 100644 (file)
@@ -477,6 +477,7 @@ dvb_base_bin_request_new_pad (GstElement * element,
   ghost = gst_ghost_pad_new (pad_name, pad);
   g_free (pad_name);
   gst_element_add_pad (element, ghost);
+  gst_element_no_more_pads (element);
 
   return ghost;
 }
@@ -928,6 +929,7 @@ dvb_base_bin_pad_added_cb (GstElement * mpegtsparse,
   program->ghost = gst_ghost_pad_new (padname, pad);
   gst_pad_set_active (program->ghost, TRUE);
   gst_element_add_pad (GST_ELEMENT (dvbbasebin), program->ghost);
+  gst_element_no_more_pads (GST_ELEMENT (dvbbasebin));
   /* if the program has a pmt, activate it now, otherwise it will get activated
    * when there's a PMT */
   if (!program->active && program->pmt_pid != G_MAXUINT16)