summaryrefslogtreecommitdiffstats
path: root/gst/mpegdemux/gstmpegdemux.c
AgeCommit message (Collapse)AuthorFilesLines
2009-08-07mpegpsdemux: added caps for AAC and fixed playback of a clip with LPCMJosep Torra1-4/+17
2009-08-07mpegpsdemux: improved demuxer performanceJosep Torra1-59/+124
Increased performance doing pull_range in blocks of 32Kb instead of 4Kb. Caching the value of gst_adapter_available instead of calling it 3 times. Added some comments with the header descriptions. Peek enough data to avoid a corner case where could be readed data outside the buffer. Speed up some more inlining some functions and keeping another stream pointer list to be used as iterator. Sprinkle branch prediction macros accross the code. Handling the seeking with flush in pull mode in the proper way.
2009-08-05mpeg[pt]sdemux: Fix SEEKING querySebastian Dröge1-1/+1
Send the BYTES based query downstream, not the orignal one.
2009-07-23mpegdemux: Remove some backward compatibility codeSebastian Dröge1-73/+0
Also we always require liboil so use it unconditionally.
2009-07-23mpegdemux: Implement query type function for the src padsSebastian Dröge1-0/+16
2009-07-22mpegdemux: don't add a base_time==-1 to segment positionsStefan Kost1-5/+9
Fixes assertion about newsegment with start=-1.
2009-07-21mpegpsdemux: Implement SEEKING querySebastian Dröge1-0/+55
Fixes bug #588944.
2009-07-18mpegdemux: Fix integer overflowMatijs van Zuijlen1-2/+2
This breaks playback of files >4 GB as the offset was a guint before. Changing it to a guint64 fixes this.
2009-05-26mpegdemux: Only treat streams from 0xa0 to 0xaf as LPCM, not 0xa0..0xbfJan Schmidt1-1/+1
Don't treat some streams (Private Stream 2) as LPCM when they're not. Fixes playback of files that have private streams in them now that the PES filter emits such packets.
2009-05-26mpegdemux: Add sparse stream filling.Jan Schmidt1-0/+93
First stab at sending new-segment events to effect sparse stream updates.
2009-05-26mpegdemux: Add support for outputting sub-picture streams found in files.Jan Schmidt1-8/+31
Output subpicture streams when they are found on the private stream ID. Don't strip off the first byte of such packets when pushing.
2009-04-21mpegdemux: Only error out at EOS push failure if we don't have any streams.Edward Hervey1-6/+21
This should remove the bogus error messages while still keeping the original intent of this, which is to inform the pipeline/application/user that we could not find any valid streams. There are many reasons why pushing an event can fail, and not all of them are because there's no link downstream (it could be because it was blocked, or flushing).
2009-03-13mpegpsdemux: workaround to fix playback of certain malformed clipsJosep Torra1-2/+29
Added a workarround to permit play certain malformed clips where first SCR is greater than last SCR. Fixes bug #454228
2009-03-10mpegdemux: Fixed a bug in the TS scanner. Fixes #574009Josep Torra1-1/+1
2009-02-25mpegdemux: don't ignore GstFlowReturn valuesWim Taymans1-0/+6
don't ignore the return value of pull_range because we only get a valid non-NULL buffer when the return value is GST_FLOW_OK. Avoids a crash when the pipeline is shutting down.
2009-02-12Make the demuxer reusable in READY->PLAYING->READY->PLAYING cycles byJulien Moutte1-0/+1
flushing adapters correctly.
2009-02-04mpegpsdemux: fixes clossing segment generation.Josep Torra1-25/+56
Ensure that the clossing segment is generated correctly and being properly pushed. Added some GST_DEBUG to check it. Ensure that last_stop is updated in stream time. Calculate duration as delta of PTS as it seems more correct than delta of SCR in some clips that I tested.
2009-02-04mpegpsdemux: several fixes on the seeking function in pul mode.Josep Torra1-8/+9
Removed a line wrongly copy pasted in my previous commit. Avoid an unsigned integer overflow. Seek last_stop in stream time. Clamp last_stop in stream time between first and last SCR. Fixed a typo in the GST_DEBUG line and added some more info.
2009-02-04Moved var declarations to the begin of functionJosep Torra1-4/+8
2009-02-04Improved seeking in pull mode. Some refactoring and small fixesJosep Torra1-56/+126
2009-02-02Add pull mode to mpegpsdemux and report duration reading first and last PTS. ↵Josep Torra1-81/+829
Some random cleanups.
2009-01-02gst/mpegdemux/gstmpegdemux.c: Initialize scr_rate_n and scr_rate_d in order ↵Alessandro Decina1-0/+3
to fix compiler warnings. Original commit message from CVS: * gst/mpegdemux/gstmpegdemux.c: Initialize scr_rate_n and scr_rate_d in order to fix compiler warnings.
2008-12-29gst/mpegdemux/gstmpegdemux.c: Use the adjusted SCR for calculating the mux rate.Wim Taymans1-6/+18
Original commit message from CVS: * gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_src_query), (gst_flups_demux_parse_pack_start): Use the adjusted SCR for calculating the mux rate. Don't update the rate estimation after a discont.
2008-12-29gst/mpegdemux/gstmpegdemux.*: The position member in the newsegment event ↵Wim Taymans1-1/+4
corresponds to the stream_time of the segme... Original commit message from CVS: * gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_send_data): * gst/mpegdemux/gstmpegdemux.h: The position member in the newsegment event corresponds to the stream_time of the segment start position.
2008-12-29gst/mpegdemux/gstmpegdemux.c: Converting from time to bytes operates on the ↵Robin Stocker1-3/+2
stream_time, not the SCR timeline. Original commit message from CVS: Patch by: Robin Stocker <robin at nibor dot org> * gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_src_query): Converting from time to bytes operates on the stream_time, not the SCR timeline. The position reporting should happen in stream_time, not the segment timestamp range. See #557161.
2008-10-20gst/mpegdemux/gstmpegdemux.c: Fix reverse playback regression.Edward Hervey1-4/+16
Original commit message from CVS: * gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_send_data): Fix reverse playback regression. Fixes #557080
2008-10-16gst/mpegdemux/gstmpegdemux.c: Make sure the mpegpsdemux element creates ↵Edward Hervey1-2/+8
valid newsegment events. Original commit message from CVS: * gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_send_data): Make sure the mpegpsdemux element creates valid newsegment events. Fixes #556428
2008-10-08gst/mpegdemux/: Add Fluendo to the Long Name.Zaheer Abbas Merali1-1/+1
Original commit message from CVS: * gst/mpegdemux/gstmpegdemux.c: * gst/mpegdemux/gstmpegtsdemux.c: Add Fluendo to the Long Name.
2008-10-08gst/mpegdemux/gstmpegdemux.c: Prevent a division by zero if last mux rate ↵Sebastian Dröge1-8/+14
was zero. Original commit message from CVS: * gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_send_data), (gst_flups_demux_parse_pack_start): Prevent a division by zero if last mux rate was zero. If we're going to send a NEWSEGMENT event but the segment start and the current buffer timestamp differ by more than a second we will start the NEWSEGMENT at the buffer timestamp. This fixes playback of the tv2-1_25.mpg file, which has 0 as first SCR but the first PTS are around 1 hour and 40 minutes. Fixes bug #553755.
2008-09-09gst/mpegdemux/: Fix conflicting public names in new mpeg demuxers.Edward Hervey1-4/+4
Original commit message from CVS: * gst/mpegdemux/flumpegdemux.c: (plugin_init): * gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_sync_get_type), (gst_flups_demux_get_type), (gst_flups_demux_plugin_init): * gst/mpegdemux/gstmpegtsdemux.c: (gst_fluts_demux_get_type), (gst_fluts_demux_plugin_init): Fix conflicting public names in new mpeg demuxers. Fixes #550468
2008-09-02gst/mpegdemux/: Fix build on macosx.Edward Hervey1-1/+1
Original commit message from CVS: * gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_parse_pack_start): * gst/mpegdemux/gstmpegtsdemux.c: (gst_fluts_demux_data_cb): Fix build on macosx.
2008-09-02Add Fluendo MPEG PS and TS demuxers to gst-plugins-bad. This is now dual ↵Zaheer Abbas Merali1-0/+1869
licensed MPL and LGPL. Original commit message from CVS: * configure.ac: * gst/mpegdemux/Makefile.am: * gst/mpegdemux/flumpegdemux.c: * gst/mpegdemux/flutspatinfo.c: * gst/mpegdemux/flutspatinfo.h: * gst/mpegdemux/flutspmtinfo.c: * gst/mpegdemux/flutspmtinfo.h: * gst/mpegdemux/flutspmtstreaminfo.c: * gst/mpegdemux/flutspmtstreaminfo.h: * gst/mpegdemux/gstmpegdefs.h: * gst/mpegdemux/gstmpegdemux.c: * gst/mpegdemux/gstmpegdemux.h: * gst/mpegdemux/gstmpegdesc.c: * gst/mpegdemux/gstmpegdesc.h: * gst/mpegdemux/gstmpegtsdemux.c: * gst/mpegdemux/gstmpegtsdemux.h: * gst/mpegdemux/gstpesfilter.c: * gst/mpegdemux/gstpesfilter.h: * gst/mpegdemux/gstsectionfilter.c: * gst/mpegdemux/gstsectionfilter.h: Add Fluendo MPEG PS and TS demuxers to gst-plugins-bad. This is now dual licensed MPL and LGPL.