summaryrefslogtreecommitdiff
path: root/src/demuxers/demux_ts.c
AgeCommit message (Collapse)Author
2010-04-09Minor indentation cleanup.Darren Salt
2010-04-09Add eac3 support to demux_tsJose Alberto Reguero
2010-04-07Add video/mp2t (and the corresponding video/mp2p).Darren Salt
2010-01-21Revert a038e9625e79 (breaks A/V sync).Darren Salt
2010-01-20demux_ts: pass each pts just once to buf (and to decoder)Reinhard Nißl
The content of large PES packets must be split into several input buffers. The current code attaches the PTS of the PES packet to all input buffers. A decoder must attach PTS to the image for example which starts next in the data. If the same PTS appears on several input buffers, a decoder might buffer the PTS and attach it to the next image for which the broadcaster didn't supply a PTS. Finally xine's metronom gets confused about those incorrect PTS and tries to correct that issue which usually makes things even more worse. By passing on PTS just once to the decoder it is less likely that the decoder behaves incorrect. I must admit that this is the second approach to fix this issue. The first approach slipped through into a totally different changeset and instead of passing the PTS just on the first buf, it passed it on the last buf of a PES packet which was totally wrong. This incorrect approach has been reverted recently.
2010-01-12Demux BluRay DTS (stream 0x82)Petri Hintukainen
2010-01-12Do not reset decoder flags from parse_pes_header() when setting ↵Petri Hintukainen
BUF_FLAG_FRAME_END. Fixes BluRay PCM audio when PES payload size is less than 2048 bytes.
2010-01-06Ignore unsupported BluRay SPU streams (interactive (0x91) and text (0x92))Petri Hintukainen
2010-01-06Demux BluRay PCM audioPetri Hintukainen
2009-11-30Trim trailing space & reduce space+tab.Darren Salt
2009-11-30Demux BluRay DTS and TrueHD audio streamsPetri Hintukainen
2009-11-28Fixed PMT parsing when PMT does not fit in single TS packet and PAT is in ↵Petri Hintukainen
the middle of PMT packets. Parsing PAT resets PMT buffer. If PMT does not fit to single TS packet and PAT packet is scheduled in middle of PMT packets, PMT is never parsed and TS demuxer falls to PID auto detection mode. This moves PMT buffer reset to the case where PMT PID changes and all PIDs are reset. [As far as I can see, worst regression can be invalid PMT sections when stream changes, new PMT pid equals to old one and demuxer is not reset(?), but this should be OK as PMT checksums are always checked.]
2009-11-28Honour max. number of SPU tracksPetri Hintukainen
2009-11-19Increase max number of audio and SPU tracksPetri Hintukainen
2009-11-19Demux VC-1 video (stream type 0xea)Petri Hintukainen
2009-08-31Fixed selecting HDMV SPU trackPetri Hintukainen
2009-08-31Demux HDMV/BluRay bitmap subtitlesPetri Hintukainen
2009-08-31added spu_type parameter to demux_send_special_spu_buf()Petri Hintukainen
2009-08-31Fixed audio. HDMV uses PES stream 0xfd instead of 0xbd.Petri Hintukainen
2009-08-31Support for BluRay/HDMV 192-byte TS packetsPetri Hintukainen
2009-08-31PKT_SIZE --> this->pkt_size (in selected places)Petri Hintukainen
2009-08-31Cosmetics. Splitted detect_ts() from open_plugin().Petri Hintukainen
2009-01-05Merge security fixes.Darren Salt
2008-12-31handle read errors when forwarding in multiple demuxersMatthias Hopf
Add checks for negative return values in aac,ac3,dts,mpc, nsf,ogg,shn,slave,ts,tta,vox demuxers. Some input plugins (e.g. file) return negative error codes from read, this should be treated as no (more) data available. This is particularly the negative size is then assigned to buf->size, potentially causing overflows elsewhere. The patch also removes the duplication of the (previously) == 0 handler in demux_ac3.
2008-11-07Fix resuming video after corrupted pes.Christophe Thommeret
Without this patch, the video freezes. Available corrupted sample: http://hftom.free.fr/video_samples/corrupted_video.m2t --HG-- extra : transplant_source : %86g%9A%B1%AF%12L%7E%3EN%8C%0FT%D2%D8%3B%7Dv%F0%14
2008-06-25Merge, and add a changelog entry.Darren Salt
2008-06-25Add comments about (audio track)->type containing the stream no.Darren Salt
2008-06-25Backed out changeset f2086511a349; m->type isn't necessarily 0.Darren Salt
2008-06-05demux_ts: don't OR in buffer types.Darren Salt
2008-05-25Recognise TS descriptor tag 0x80 as MPEG video.Darren Salt
2008-05-25Wherever possible, use enum constants for TS descriptor tags.Darren Salt
2008-05-23Remove MIN/MAX macro definitions on unit.Diego 'Flameeyes' Pettenò
Now that the macro are either imported from the system or defined by configure. don't define them in every source file.
2008-05-09Avoid loop for common memory operations (zeroing, copying, moving).Diego 'Flameeyes' Pettenò
Use the proper function for common memory operations (memset() for zeroing, memcpy() for copying, memmove() for moving), instead of looping through arrays. By extension, remove loops to reset arrays when they were allocated with calloc() and thus already zeroed.
2008-05-07xine_xmalloc() deprecation: replace its use with static and non-zero size.Diego 'Flameeyes' Pettenò
The xine_xmalloc() function is going to be deprecated, as its behaviour is rarely needed as such, and it's thus misused. With this, almost all uses of xine_xmalloc() with static size (for instance the value returned by sizeof()) or with a size that is guaranteed not to be zero (like strlen()+1) are replaced with calls to either calloc(1, ...) or malloc(). malloc() is used whenever the allocated memory is going to be immediately overwritten, while calloc() is used in every other case, as it sets the whole memory area to zero. --HG-- extra : transplant_source : %8F%98%EC%02%1E%83%F0s%06X%83C%205Y%80%B12%CC%E1
2008-05-03Remove unused variables, as reported by GCC 4.3.Diego 'Flameeyes' Pettenò
2008-06-18Separate PES stream IDs from TS descriptor tags.Darren Salt
2008-06-16demux_ts: Always replace PIDs when we parse a PMTSimon Farnsworth
demux_ts currently assumes that PIDs for a service never change - BBC THREE (amongst others) breaks this assumption. A PMT shouldn't change unless PIDs change, so always reacquire PIDs whenever we parse a PMT; this should work fine in the case when the PIDs do not change, and pick up the new PIDs whenever a change happens --HG-- extra : transplant_source : e%AB%EB%E1%CF%D8%1C%15%5E%DE%09%E4%3Dd%AB%E3f%FD%E5%9E
2008-01-24Fix a possible crash on channel change in the DVB plugin.Darren Salt
Some 0-sized sections were observed in the TS PMT parser. Test setup details: Test channel is Film 4 on Freeview. Test hardware is a Nova-T Stick (older dib7000m variant). Drivers from v4l-dvb hg, id a1c94c4a05f5, with dib7000m_set_frontend() patched to select OUTMODE_HIGH_Z while tuning.
2007-11-13Fix a possible DVB plugin crash when switching channels.Darren Salt
section_length is sometimes 0; this leads to the CRC32 calculation being performed with a data length of -1 bytes, a.k.a. 4294967295 bytes. (Reported by Johannes Zellner.) --HG-- extra : transplant_source : %B6m%D0%0C%84%DA%40%C3%0B%06%11%B1%11%9El%A8%1F%95%27%E5
2007-11-10Delete most of the CVS $Id$/$Log$ lines.Darren Salt
--HG-- extra : transplant_source : %E0%D0%C5%8B%BEU%DD%24%5D7%1F%ADV%AD%EB%23%CBU%80%EB
2007-11-09Update FSF address on non-contributed code and COPYING files.Diego 'Flameeyes' Pettenò
For contributed code, leave whatever the version we last synced for is using to make simpler future syncs.
2007-09-09fix spudvb decoder updateChristophe Thommeret
2007-09-09Fix switching DVB subtitles channels.Christophe Thommeret
2007-08-17mpeg_ts multiple audio streams fix + spu lang fixChristophe Thommeret
With current code, ts demuxer stores audio tracks in the order it finds it in PMT, but doesn't correctly set the buffer type so stream's audio_track_map may (and often) have a different order and so a user can get german audio when selecting "ita" ! Bad. This patch fixes that. It also fixes get_optional_data to return correct spu lang instead of none.
2007-07-08Patch: mpeg_ts + ffmpegChristophe Thommeret
Attached is a little patch that allows using ffmpegvideo w/o direct rendering to play mpeg2 ts. It works for both mpeg2 and h264.
2007-06-03[patch] Fix video pid misdetectionAndrew de Quincey
Hi, the next bug that has been annoying me is as follows. I have some streams recorded from BBC4 on UK DVB-T. BBC4 only actually starts transmitting at about 7pm; prior to that there is a static picture saying it is not playing just now. With these streams and xine, I would get audio, but no picture. Looking at the PMT table during the static picture, all the streams have type 0x0b. However there IS a video stream in there, but there are also several streams of binary data. Xine's current video PID auto-detection code was locking on to one of these streams of binary data because it contained the magic sequence 00 00 01 e0 at one of the PUS. *HOWEVER* it is NOT a PES stream; this sequence is just an accident. The other problem is that xine can only handle one video stream; so once it was misdetected once, it was stuck at that PID. The attached patch changes the corrupted_pes flag into a counter. If a video stream has more than CORRUPT_PES_THRESHOLD corrupt PES packets in a row, then it is deselected as the video stream, and auto-detection is kicked off again. Auto-detection will now also ignore any streams seen previously which have a nonzero corrupted_pes count. This works very well; I can now see the video fine. One possible issue might be that if you get a lot of corrupt PES in a stream which really IS the video stream, it will be deselected. However, this is not actually a problem: once the corruption goes away, the corrupted_pes counter will be reset to 0, and the stream will once again be autodetected as the video stream (and playback will continue from there).
2007-05-02[PATCH] Remove packet count from demux_ts, to remove a long delaySimon Farnsworth
The attached patch applies after my logging patches (I can regenerate if needed). demux_ts attempted to read packets from the input 200 times before giving up. When playing a local file, this is harmless, as it will hit EOF 200 times; however, input_dvb waits 5 seconds for packets on each call to read, resulting in a 1000 second delay if tuning fails. Remove the counting of input packets, and add a comment to read() in input_plugin.h, to indicate that we expect inputs to try and return some data when read() is called. This fixes the delay, and makes it clear to future maintainers that they shouldn't expect to loop like this. -- Simon Farnsworth
2007-05-02[PATCH] Enhance logging in demux_ts, input_dvb and video_out_xvSimon Farnsworth
The three attached patches (against 1.1.6) each increase the amount of debug logging in their respective components. We've found the extra logging useful when trying to track down faults. I've split this into three patches to make it easier to apply only some of our changes. -- Comments welcome, Simon Farnsworth
2007-04-02Assume that the audio stream is AC3 on PMTs with ID 0x6a, rather than doing ↵Diego 'Flameeyes' Pettenò
extra checks. If there are cases where the stream is not AC3, it would be nicer to blacklist them, rather than whitelist the cases where it's correct. Patch by Julian Scheel. CVS patchset: 8788 CVS date: 2007/04/02 10:46:08
2007-04-02Rename no_spu_tracks to spu_tracks_count and MAX_NO_SPU_TRACKS to ↵Diego 'Flameeyes' Pettenò
MAX_SPU_TRACKS. Beside the fact that a MAX value is, well, always for the max number of tracks, the abbrevation "number" -> "no" is ambiguous as one could read it as "there are no spu tracks". CVS patchset: 8787 CVS date: 2007/04/02 10:13:02