nbstreams = pmt->streams->len;
for (i = 0; i < nbstreams; i++) {
GstMpegtsPMTStream *stream = g_ptr_array_index (pmt->streams, i);
- if (!_pmt_stream_in_program (program, stream))
+ if (!_pmt_stream_in_program (program, stream)) {
+#ifdef TIZEN_FEATURE_TSDEMUX_UPDATE_STREAM
+ if (G_UNLIKELY (MPEGTS_BIT_IS_SET (base->is_pes, stream->pid)))
+ GST_FIXME
+ ("Refcounting issue. Setting twice a PID (0x%04x) as known PES",
+ stream->pid);
+ if (G_UNLIKELY (MPEGTS_BIT_IS_SET (base->known_psi, stream->pid))) {
+ GST_FIXME
+ ("Refcounting issue. Setting a known PSI PID (0x%04x) as known PES",
+ stream->pid);
+ MPEGTS_BIT_UNSET (base->known_psi, stream->pid);
+ }
+ MPEGTS_BIT_SET (base->is_pes, stream->pid);
+#endif
mpegts_base_program_add_stream (base, program, stream->pid,
stream->stream_type, stream);
+ }
}
/* Call subclass update */
for (tmp = toremove; tmp; tmp = tmp->next) {
MpegTSBaseStream *stream = (MpegTSBaseStream *) tmp->data;
mpegts_base_program_remove_stream (base, program, stream->pid);
+#ifdef TIZEN_FEATURE_TSDEMUX_UPDATE_STREAM
+ MPEGTS_BIT_UNSET (base->is_pes, stream->pid);
+#endif
}
return TRUE;
}
/* Add all streams, then fire no-more-pads */
for (tmp = program->stream_list; tmp; tmp = tmp->next) {
TSDemuxStream *stream = (TSDemuxStream *) tmp->data;
+#ifdef TIZEN_FEATURE_TSDEMUX_UPDATE_STREAM
+ if (!stream->pad
+ || (stream->pad && !stream->active)) {
+#else
if (!stream->pad) {
+#endif
activate_pad_for_stream (demux, stream);
if (stream->sparse) {
/* force sending of pending sticky events which have been stored on the
Name: gst-plugins-bad
Version: 1.16.2
-Release: 26
+Release: 27
Summary: GStreamer Streaming-Media Framework Plug-Ins
License: LGPL-2.0+
Group: Multimedia/Framework
-DTIZEN_FEATURE_TSDEMUX_INVALID_PCR_PID\
-DTIZEN_FEATURE_TSDEMUX_LANG_TAG\
-DTIZEN_FEATURE_TSDEMUX_UPDATE_PMT\
+ -DTIZEN_FEATURE_TSDEMUX_UPDATE_STREAM\
-DTIZEN_FEATURE_HLS_WEBVTT\
-DTIZEN_FEATURE_OALSINK_MODIFICATION\
-DTIZEN_FEATURE_MPEGDEMUX_MODIFICATION\