gstreamer/gst/mpegtsdemux
Edward Hervey 531117b7df tsdemux: Push GAP events *after* deactivating old programs
The order in which program switch must happen is:
1) drain all data on old pads (but don't push EOS)
2) add new pads (but don't push any data on them)
3) Push EOS and remove old pads
4) Start pushing data on new pads

There was one caveat in this implementation, which is that when
we activate a sparse pad (step 2) we would push a GAP event. The problem
is that, while being an event, it is actually *data*.

We therefore need to make sure pushing those GAP event is done at the step
we start pushing data.

https://bugzilla.gnome.org/show_bug.cgi?id=750402
2015-12-02 14:15:04 +01:00
..
gstmpegdefs.h tsdemux: Fix scaling macros 2014-04-18 16:20:31 +02:00
gstmpegdesc.h tsdemux: Add support for Opus 2015-11-03 20:35:41 +02:00
gsttsdemux.c mpegtsdemux: Update plugin license field 2014-02-06 14:28:54 +01:00
Makefile.am tsdemux/mux: Add support for GstAudioClippingMeta for Opus 2015-11-03 20:35:41 +02:00
mpegtsbase.c mpegtsdemux: Allow deactivation of programs to be delayed 2015-12-02 14:15:04 +01:00
mpegtsbase.h mpegtsdemux: Allow deactivation of programs to be delayed 2015-12-02 14:15:04 +01:00
mpegtspacketizer.c Remove unnecessary NULL checks before g_free() 2015-11-18 16:05:42 -08:00
mpegtspacketizer.h tsparse: Handle backward and discont timestamps better. 2014-10-29 23:02:50 +11:00
mpegtsparse.c glshader, tsdemux: simplify code 2015-11-06 13:00:55 +00:00
mpegtsparse.h tsparse: fix timestamps not updating after a PMT change 2015-04-09 15:44:20 +01:00
pesparse.c tsdemux: remove unnecessary check 2015-07-08 14:50:00 +01:00
pesparse.h tsdemux: fix overflow of packet_length field of PESHeader 2014-09-12 11:27:52 +02:00
TODO tsdemux: Update TODO 2012-03-05 10:17:56 +01:00
tsdemux.c tsdemux: Push GAP events *after* deactivating old programs 2015-12-02 14:15:04 +01:00
tsdemux.h mpegtsdemux: Allow deactivation of programs to be delayed 2015-12-02 14:15:04 +01:00