summaryrefslogtreecommitdiff
path: root/gst/mpegtsdemux
AgeCommit message (Collapse)AuthorFilesLines
2011-11-28various: fix pad template ref leaksVincent Penquerc'h3-14/+13
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-16tsdemux: Add notes on synchronization and schedulingEdward Hervey2-106/+144
2011-09-09hlsdemux/tsdemux: Add HP copyright on work done on HLSYouness Alaoui3-1/+12
2011-08-30tsdemux: Need to flush all streams when we receive a flush-startYouness Alaoui3-3/+28
2011-08-26tsdemux: In push mode, do not start pull loop if upstream seek failsYouness Alaoui1-2/+2
2011-08-24tsdemux: Use FALSE instead of 0 for bool parameterSebastian Dröge1-1/+1
2011-08-24tsdemux: Need to send a newsegment after a seekYouness Alaoui1-2/+3
2011-08-24tsdemux: Forward seek/duration query/event to the sinkpadYouness Alaoui2-3/+5
2011-08-23tsdemux: do not try to compare a PCR with itself for statisticsVincent Penquerc'h1-8/+10
Especially as one of the logs will cause a divide by zero. https://bugzilla.gnome.org/show_bug.cgi?id=656927
2011-08-23tsdemux: do not keep a dangling pointerVincent Penquerc'h1-0/+2
When removing the current program, it will get freed by the hash table removal callback, so ensure we clear our pointer to it. Fixes a crash later on in gst_ts_demux_push trying to access it. https://bugzilla.gnome.org/show_bug.cgi?id=656927
2011-08-23mpegtsbase: First try if upstream handles seeking in TIME format before ↵Sebastian Dröge1-0/+7
seeking in the demuxer
2011-08-23tsdemux: First send SEEKING queries upstreamSebastian Dröge1-3/+11
2011-08-23tsdemux: Send DURATION query upstream firstSebastian Dröge1-2/+3
2011-08-22tsdemux: do not send a new-segment on stream removalYouness Alaoui1-1/+12
When a program is changed, stream_added is called which sets the need_newsegment to TRUE, then stream_removed is called, which calls the flush_pending_data, which checks for the newsegment and causes it to send a new-segment. We must not send the newsegment when flushing the pending data on the removed stream. We should only push it when flushing data on the newly added streams (after they finish parsing their PTS header)
2011-08-22tsdemux: Fix newsegment when switching programsYouness Alaoui1-4/+17
If a program/stream is changed, then a newsegment is sent which must not be the same as the base segment since it happens later. We must shift the start position by the time elapsed since the newsegment and the current PTS of the stream
2011-08-22tsdemux: interpolate gap and fix timestamps depending on upstream segmentYouness Alaoui3-14/+49
2011-08-18tsbase: reinitiate segment at flush-stop event onlyYouness Alaoui1-1/+7
2011-08-01tsdemux: Take into account upstream newsegment eventsEdward Hervey1-0/+13
If the incoming newsegment event was in time, use that position value for the downstream newsegments.
2011-08-01mpegtsbase: Remove programs on EOSEdward Hervey1-6/+25
Allows subclasses to properly flush out pending data.
2011-08-01tsdemux: Refactor stream/program removalEdward Hervey1-34/+15
The program_stopped vmethod was called before stream_removed vmethod was being called. Since we only did stream-related operations in there, we just remove the program_stopped vmethod and do everything in the stream_removed one. Also, make sure we flush out all pending data before sending EOS.
2011-08-01mpegtsbase: Prevent stack gardening by using the right typeNicolas Dufresne1-1/+1
stream_type is stored as guint inside the GstStructure but was retreived using valist with a pointer to guint16. This would cause stack gardening when code is compiled without optimisation (e.g. in -O0 the compiler wont pad the stack to optimise out required mask). https://bugzilla.gnome.org/show_bug.cgi?id=655540
2011-07-25mpegtsbase/tsdemux: Fix stream/pad activation orderEdward Hervey3-123/+235
We first activate new streams before shutting down old ones. We emit no-more-pads after we add new streams and emit EOS before removing old ones. Also cleanup/refactor a bit more of the code accordingly
2011-07-20pesparse: Fix stuffing byte handlingEdward Hervey2-11/+14
We in fact get the size of the header (including stuffing bytes), therefore use that instead of trying to skip 0xff bytes ourselves since some media streams do start with 0xff (like mpeg audio's initial 0xfff).
2011-07-20mpegtsdemux: fix compiler warningsAlessandro Decina1-2/+4
2011-07-19mpegtsbase/tsdemux: Add more comments and removal unused variableEdward Hervey2-4/+12
2011-07-19mpegtsbase: Avoid double removal of streamsEdward Hervey1-1/+8
This can happen if the PCR pid is the same as a audio/video PID.
2011-07-19mpegtsbase: Add a GList of streams to the programEdward Hervey3-56/+51
Allows faster iteration of all program streams. We still keep the Array to allow fast retrieval of stream by PID.
2011-07-19mpegtsbase: Use a bit array instead of an array of gbooleanEdward Hervey3-22/+26
Makes know_psi and is_pes 32 times smaller
2011-07-18tsdemux: Use standalone PES parserEdward Hervey1-199/+51
2011-07-18mpegtsdemux: Add standalone PES parserEdward Hervey3-2/+539
2011-07-17mpegdefs: clarify some stream idsEdward Hervey1-4/+8
2011-07-16tsdemux: whoops, tsdemux isn't ready yet for primary rank :)Edward Hervey1-1/+1
2011-07-16mpegtsbase/tsdemux: Cleanups and commentsEdward Hervey3-5/+12
2011-07-16tsdemux: Fix newsegment creation for push modeEdward Hervey1-67/+93
And all relevent comments to what it should be doing, refactor everything a bit. Still not perfect ... but better. Fixes #654657
2011-07-16mpegtsbase: Store incoming newsegmentsEdward Hervey2-4/+27
2011-07-15mpegtsbase: actually set seen_pat=TRUE when we see a PATAlessandro Decina1-1/+1
2011-07-14mpegtsbase: Split up whether we saw a PAT and its offsetEdward Hervey2-2/+6
Fixes the issue with streams that don't set an offset on their buffers, like those coming from hlsdemux. Fixes #653481
2011-07-13mpegtsdemux: Restore erroneously removed data++Olivier Crête1-6/+12
Also, put back some unused code in comment and replace // comments by /* */
2011-07-12mpegdemux: Fix unused-but-set warningsOlivier Crête2-22/+11
2011-06-17tsdemux: only free the index array if it existsThiago Santos1-3/+5
Only free the array if it exists. Contains an unrelated indentation fix, courtesy of gst-indent
2011-06-12tsdemux: Don't free unexistent PATEdward Hervey1-7/+10
And cleanup find_timestamps a bit
2011-06-07tsdemux: More fixes to handle non-188 byte packetsEdward Hervey2-0/+13
2011-06-07mpegts: Stop scanning for keyframes as early as possibleEdward Hervey3-16/+27
2011-06-07mpegtsdemux: always try to seek for to a keyframeJanne Grunau1-26/+40
keyframe is expected to lie in the the next ~2500 ms
2011-06-07mpegtsdemux: fix timestamps in newsegement event after seekingJanne Grunau1-28/+48
2011-06-07mpegtsdemux: payload parsing for H.264Janne Grunau3-4/+189
2011-06-07mpegtsdemux: implement key_unit seeking for MPEG2 videoJanne Grunau5-29/+230
2011-06-07mpegtsdemux: accurate seekingJanne Grunau3-13/+211
* pes header parsing for pts is ugly, refactor * timestamps/newsegment after seeking is still off
2011-06-07mpegtsdemux: push based seeking based on PCRJanne Grunau6-50/+805
buffer timestamps are converted to GstClockTime to cover pcr/pts wraps. multiple pcr/pts wraps are handled with an index which ensures at most a single pcr wraparound between two entries. the last seen pcr is recorded to have a nearby index point for short seeks resuming playback might be delayed if the postion is not a keyframe TODO: replace manual packet scanning and parsing in the initial duration estimation
2011-06-07mpegtsdemux: create function for pcr parsingJanne Grunau3-33/+24