gst/flv/gstflvparse.c: Don't emit no-more-pads for single pad scenarios as the header is definitely not reliable. We ...
Original commit message from CVS: 2007-10-22 Julien MOUTTE <julien@moutte.net> * gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio), (gst_flv_parse_tag_video), (gst_flv_parse_tag_type): Don't emit no-more-pads for single pad scenarios as the header is definitely not reliable. We emit them for 2 pads scenarios though to speed up media discovery.
This commit is contained in:
parent
a78f4ff250
commit
da7548509c
@ -1,3 +1,11 @@
|
|||||||
|
2007-10-22 Julien MOUTTE <julien@moutte.net>
|
||||||
|
|
||||||
|
* gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio),
|
||||||
|
(gst_flv_parse_tag_video), (gst_flv_parse_tag_type): Don't
|
||||||
|
emit no-more-pads for single pad scenarios as the header
|
||||||
|
is definitely not reliable. We emit them for 2 pads scenarios
|
||||||
|
though to speed up media discovery.
|
||||||
|
|
||||||
2007-10-19 Zaheer Abbas Merali <zaheerabbas at merali dot org>
|
2007-10-19 Zaheer Abbas Merali <zaheerabbas at merali dot org>
|
||||||
|
|
||||||
* sys/dvb/dvbbasebin.c:
|
* sys/dvb/dvbbasebin.c:
|
||||||
|
@ -500,11 +500,10 @@ gst_flv_parse_tag_audio (GstFLVDemux * demux, const guint8 * data,
|
|||||||
gst_element_add_pad (GST_ELEMENT (demux),
|
gst_element_add_pad (GST_ELEMENT (demux),
|
||||||
gst_object_ref (demux->audio_pad));
|
gst_object_ref (demux->audio_pad));
|
||||||
|
|
||||||
if ((demux->has_audio && !demux->audio_pad) ||
|
/* We only emit no more pads when we have audio and video. Indeed we can
|
||||||
(demux->has_video && !demux->video_pad)) {
|
* not trust the FLV header to tell us if there will be only audio or
|
||||||
GST_DEBUG_OBJECT (demux, "we are still waiting for a stream to come up "
|
* only video and we would just break discovery of some files */
|
||||||
"before we can emit no more pads");
|
if (demux->audio_pad && demux->video_pad) {
|
||||||
} else {
|
|
||||||
GST_DEBUG_OBJECT (demux, "emitting no more pads");
|
GST_DEBUG_OBJECT (demux, "emitting no more pads");
|
||||||
gst_element_no_more_pads (GST_ELEMENT (demux));
|
gst_element_no_more_pads (GST_ELEMENT (demux));
|
||||||
}
|
}
|
||||||
@ -732,11 +731,10 @@ gst_flv_parse_tag_video (GstFLVDemux * demux, const guint8 * data,
|
|||||||
gst_element_add_pad (GST_ELEMENT (demux),
|
gst_element_add_pad (GST_ELEMENT (demux),
|
||||||
gst_object_ref (demux->video_pad));
|
gst_object_ref (demux->video_pad));
|
||||||
|
|
||||||
if ((demux->has_audio && !demux->audio_pad) ||
|
/* We only emit no more pads when we have audio and video. Indeed we can
|
||||||
(demux->has_video && !demux->video_pad)) {
|
* not trust the FLV header to tell us if there will be only audio or
|
||||||
GST_DEBUG_OBJECT (demux, "we are still waiting for a stream to come up "
|
* only video and we would just break discovery of some files */
|
||||||
"before we can emit no more pads");
|
if (demux->audio_pad && demux->video_pad) {
|
||||||
} else {
|
|
||||||
GST_DEBUG_OBJECT (demux, "emitting no more pads");
|
GST_DEBUG_OBJECT (demux, "emitting no more pads");
|
||||||
gst_element_no_more_pads (GST_ELEMENT (demux));
|
gst_element_no_more_pads (GST_ELEMENT (demux));
|
||||||
}
|
}
|
||||||
@ -892,9 +890,11 @@ gst_flv_parse_tag_type (GstFLVDemux * demux, const guint8 * data,
|
|||||||
switch (tag_type) {
|
switch (tag_type) {
|
||||||
case 9:
|
case 9:
|
||||||
demux->state = FLV_STATE_TAG_VIDEO;
|
demux->state = FLV_STATE_TAG_VIDEO;
|
||||||
|
demux->has_video = TRUE;
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
demux->state = FLV_STATE_TAG_AUDIO;
|
demux->state = FLV_STATE_TAG_AUDIO;
|
||||||
|
demux->has_audio = TRUE;
|
||||||
break;
|
break;
|
||||||
case 18:
|
case 18:
|
||||||
demux->state = FLV_STATE_TAG_SCRIPT;
|
demux->state = FLV_STATE_TAG_SCRIPT;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user