summaryrefslogtreecommitdiff
path: root/src/demuxers/demux_ts.c
AgeCommit message (Collapse)Author
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
2007-04-02Remove extraneous debug printf().Diego 'Flameeyes' Pettenò
CVS patchset: 8786 CVS date: 2007/04/02 09:51:53
2007-04-01Support multiple audio PID in MPEG TS. Patch by Julian Scheel (slightly ↵Diego 'Flameeyes' Pettenò
modified). CVS patchset: 8784 CVS date: 2007/04/01 22:49:07
2007-02-08Remove any possibility of strcpy/sprintf overflows wrt front ends requestingDarren Salt
language & subtitle strings (given a buffer of >= XINE_LANG_MAX bytes). Also fixes an off-by-one buffer termination in the TS code. (Note: compile-tested only.) CVS patchset: 8592 CVS date: 2007/02/08 02:40:22
2007-01-19Make get_description get_identifier get_extensions get_mimetypes return a ↵Diego 'Flameeyes' Pettenò
constant string, and make the extensions and mrl vaiables usually declared when testing extension demux strategy constants too. CVS patchset: 8523 CVS date: 2007/01/19 00:26:39
2006-08-08port of the pts wrap detection fix from demux_mpeg_pesMiguel Freitas
CVS patchset: 8170 CVS date: 2006/08/08 03:58:15
2006-07-10Implement visibility support, available on GCC 4.0 and later and on some 3.4 ↵Diego 'Flameeyes' Pettenò
(through backports), to avoid exporting unneeded internal symbols, making plugins' loading faster and use of internal copies of libraries more solid. It should automatically fall back to the old way in GCCs that does not support -fvisibility=hidden, but has to be tested carefully. No issues were found in the months of testing in Gentoo, but this requires special attention anyway. CVS patchset: 8101 CVS date: 2006/07/10 22:08:12
2006-06-28Fix decoding of PMT packets when adaption_field is present.Darren Salt
(Patch from Barry Scott <barry.scott@onelan.co.uk>) CVS patchset: 8074 CVS date: 2006/06/28 20:20:54
2006-06-02Various static/const fixes from Gentoo.Darren Salt
CVS patchset: 8009 CVS date: 2006/06/02 22:18:56
2006-05-03Make various arrays and structures (mainly xine_plugin_info) const.Darren Salt
(Diego Pettenò) CVS patchset: 7985 CVS date: 2006/05/03 19:46:06