gst_dash_demux_get_video_input_caps (GstDashDemux * demux,
GstActiveStream * stream)
{
- guint width, height;
+ guint width = 0, height = 0;
const gchar *mimeType = NULL;
GstCaps *caps = NULL;
if (stream == NULL)
return NULL;
- width = gst_mpd_client_get_video_stream_width (stream);
- height = gst_mpd_client_get_video_stream_height (stream);
+ /* if bitstreamSwitching is true we dont need to swich pads on resolution change */
+ if (!gst_mpd_client_get_bitstream_switching_flag (stream)) {
+ width = gst_mpd_client_get_video_stream_width (stream);
+ height = gst_mpd_client_get_video_stream_height (stream);
+ }
mimeType = gst_mpd_client_get_stream_mimeType (stream);
if (mimeType == NULL)
return NULL;
gst_dash_demux_get_audio_input_caps (GstDashDemux * demux,
GstActiveStream * stream)
{
- guint rate, channels;
+ guint rate = 0, channels = 0;
const gchar *mimeType;
GstCaps *caps = NULL;
if (stream == NULL)
return NULL;
- channels = gst_mpd_client_get_audio_stream_num_channels (stream);
- rate = gst_mpd_client_get_audio_stream_rate (stream);
+ /* if bitstreamSwitching is true we dont need to swich pads on rate/channels change */
+ if (!gst_mpd_client_get_bitstream_switching_flag (stream)) {
+ channels = gst_mpd_client_get_audio_stream_num_channels (stream);
+ rate = gst_mpd_client_get_audio_stream_rate (stream);
+ }
mimeType = gst_mpd_client_get_stream_mimeType (stream);
if (mimeType == NULL)
return NULL;
return gst_mpdparser_mimetype_to_caps (mimeType);
}
+const gboolean gst_mpd_client_get_bitstream_switching_flag (GstActiveStream * stream)
+{
+ if (stream == NULL || stream->cur_adapt_set == NULL)
+ return FALSE;
+
+ return stream->cur_adapt_set->bitstreamSwitching;
+}
+
guint gst_mpd_client_get_video_stream_width (GstActiveStream * stream)
{
guint width;
/* Get audio/video stream parameters (mimeType, width, height, rate, number of channels) */
const gchar *gst_mpd_client_get_stream_mimeType (GstActiveStream * stream);
+const gboolean gst_mpd_client_get_bitstream_switching_flag (GstActiveStream * stream);
guint gst_mpd_client_get_video_stream_width (GstActiveStream * stream);
guint gst_mpd_client_get_video_stream_height (GstActiveStream * stream);
guint gst_mpd_client_get_audio_stream_rate (GstActiveStream * stream);