mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 20:21:24 +00:00
flvdemux: activate pad before setting caps
... rather than the usual 0.10 other way around. Fixes #667558.
This commit is contained in:
parent
56353e24d2
commit
68e0d2b60c
1 changed files with 23 additions and 22 deletions
|
@ -902,6 +902,17 @@ gst_flv_demux_parse_tag_audio (GstFlvDemux * demux, GstBuffer * buffer)
|
|||
goto beach;
|
||||
}
|
||||
|
||||
/* Set functions on the pad */
|
||||
gst_pad_set_query_function (demux->audio_pad,
|
||||
GST_DEBUG_FUNCPTR (gst_flv_demux_query));
|
||||
gst_pad_set_event_function (demux->audio_pad,
|
||||
GST_DEBUG_FUNCPTR (gst_flv_demux_src_event));
|
||||
|
||||
gst_pad_use_fixed_caps (demux->audio_pad);
|
||||
|
||||
/* Make it active */
|
||||
gst_pad_set_active (demux->audio_pad, TRUE);
|
||||
|
||||
/* Negotiate caps */
|
||||
if (!gst_flv_demux_audio_negotiate (demux, codec_tag, rate, channels,
|
||||
width)) {
|
||||
|
@ -922,17 +933,6 @@ gst_flv_demux_parse_tag_audio (GstFlvDemux * demux, GstBuffer * buffer)
|
|||
}
|
||||
#endif
|
||||
|
||||
/* Set functions on the pad */
|
||||
gst_pad_set_query_function (demux->audio_pad,
|
||||
GST_DEBUG_FUNCPTR (gst_flv_demux_query));
|
||||
gst_pad_set_event_function (demux->audio_pad,
|
||||
GST_DEBUG_FUNCPTR (gst_flv_demux_src_event));
|
||||
|
||||
gst_pad_use_fixed_caps (demux->audio_pad);
|
||||
|
||||
/* Make it active */
|
||||
gst_pad_set_active (demux->audio_pad, TRUE);
|
||||
|
||||
/* We need to set caps before adding */
|
||||
gst_element_add_pad (GST_ELEMENT (demux),
|
||||
gst_object_ref (demux->audio_pad));
|
||||
|
@ -1274,6 +1274,18 @@ gst_flv_demux_parse_tag_video (GstFlvDemux * demux, GstBuffer * buffer)
|
|||
goto beach;
|
||||
}
|
||||
|
||||
/* Set functions on the pad */
|
||||
gst_pad_set_query_function (demux->video_pad,
|
||||
GST_DEBUG_FUNCPTR (gst_flv_demux_query));
|
||||
gst_pad_set_event_function (demux->video_pad,
|
||||
GST_DEBUG_FUNCPTR (gst_flv_demux_src_event));
|
||||
|
||||
gst_pad_use_fixed_caps (demux->video_pad);
|
||||
|
||||
/* Make it active */
|
||||
gst_pad_set_active (demux->video_pad, TRUE);
|
||||
|
||||
/* Needs to be active before setting caps */
|
||||
if (!gst_flv_demux_video_negotiate (demux, codec_tag)) {
|
||||
gst_object_unref (demux->video_pad);
|
||||
demux->video_pad = NULL;
|
||||
|
@ -1297,17 +1309,6 @@ gst_flv_demux_parse_tag_video (GstFlvDemux * demux, GstBuffer * buffer)
|
|||
}
|
||||
#endif
|
||||
|
||||
/* Set functions on the pad */
|
||||
gst_pad_set_query_function (demux->video_pad,
|
||||
GST_DEBUG_FUNCPTR (gst_flv_demux_query));
|
||||
gst_pad_set_event_function (demux->video_pad,
|
||||
GST_DEBUG_FUNCPTR (gst_flv_demux_src_event));
|
||||
|
||||
gst_pad_use_fixed_caps (demux->video_pad);
|
||||
|
||||
/* Make it active */
|
||||
gst_pad_set_active (demux->video_pad, TRUE);
|
||||
|
||||
/* We need to set caps before adding */
|
||||
gst_element_add_pad (GST_ELEMENT (demux),
|
||||
gst_object_ref (demux->video_pad));
|
||||
|
|
Loading…
Reference in a new issue