summaryrefslogtreecommitdiff
path: root/src/input
AgeCommit message (Collapse)Author
2007-09-07Fix dvd://.../title[.chapter] handling (broken in cset 2e301bc2cce8).Darren Salt
2007-08-20Handle % escaping and variable numbers of /s in VCD MRLs.Darren Salt
2007-08-15Workaround for recent glibc & -D_FORTIFY_SOURCE=2 (defines open() as a macro).Darren Salt
According to bug 1773769, this breaks foo->open(). The fix (as used in Ville Skyttä's patch, which doesn't cover all cases) is to replace this with (foo->open)(). This patch was generated using sed -i -re 's/(([[:alnum:]_]+(->|\.))+open) ?\(/(\1) (/' `grep '[>.]open \?(' include -rIl` One change (in a comment) is not committed.
2007-08-08Fix an attempted free of static data, e.g. when using "dvd:/" (not "dvd://").Darren Salt
2007-07-14Handle transparently redirect done through m3u playlists.Diego 'Flameeyes' Pettenò
Thanks to Harald Sitter from Amarok team for reporting a testcase.
2007-07-13Fix a spelling error in the media.dvb.tuning_timeout description.Darren Salt
2007-07-12Allow input_dvb to timeout on no signalSimon Farnsworth
If there's no signal, the tuner never goes to FE_TIMEDOUT. Add a separate timeout, to prevent xine waiting forever in these situations.
2007-07-12Simplify input_rtp lockingSimon Farnsworth
We have seen input_rtp lock up in use, and traced the problem to the separate tail/head locks on the input buffer. Reduce to a single lock, increasing lock contention between the reader and the writer, but removing the previous deadlock risk. Also use select() before recv(), to ensure that we never wait forever for packets (e.g. if we're trying to receive a multicast stream, but an administrator has blocked all multicast packets to the device - iptables -A INPUT --dst 224.0.0.0/4 -j DROP induces this failure for testing).
2007-07-08Handle escaped characters in DVD MRLs.Darren Salt
2007-07-08Have the file input plugin use _x_mrl_unescape() instead of its own code.Darren Salt
2007-06-16Rename the BE/LE/ME macros with a _X_ prefix, so they don't clash with ↵Diego 'Flameeyes' Pettenò
Solaris definitions.
2007-06-14Include bswap.h too.Diego 'Flameeyes' Pettenò
2007-06-13Don't redefine the BE_16/32 macros.Diego 'Flameeyes' Pettenò
Inspired by a patch by Albert Lee.
2007-06-13Avoid name collision (don't redefine NOPID).Albert Lee
2007-06-13Add printf format attribute.Albert Lee
2007-06-13Support Solaris byteorder.h macros.Albert Lee
2007-06-10Backport last.fm support to 1.1 branch.Diego 'Flameeyes' Pettenò
2007-06-09Use $(LTLIBICONV) instead of @LIBICONV@.Darren Salt
2007-06-09Add $(LTLIBINTL) wherever objdump -R shows a dependency on gettext functions.Darren Salt
Some plugins may have been missed due to them not being built here.
2007-06-03Add a comment & changelog entry for the mmap bug fix.Darren Salt
2007-06-03[patch] Nasty mmap problem with huge filesAndrew de Quincey
Hi, I've been tracking down a very odd bug this afternoon. As it turns out it is caused by enabling xine's mmap() support for the input_file.c. I'm running 32 bit linux 2.6.21. The file in question is 0x10e4da000 bytes long (you can probably guess what kind of bug this is by now :) Anyway, the issue stems from the definition of mmap(): void *mmap(void *start, size_t length, int prot, int flags, int fd, off_t offset); compare this to the definition of st_size in struct stat: off_t st_size; /* total size, in bytes */ On my machine (in input_file.c) sizeof(size_t) ==4, whilst sizeof(off_t) == 8. However the compiler doesn't generate a warning when the following is done in xine's code: if ( (this->mmap_base = mmap(NULL, sbuf.st_size, PROT_READ, MAP_SHARED, this->fh, 0)) != (void*)-1 So it silently truncates the upper part of the length. Obviously you cannot mmap() a file that large into (32 bit) memory anyway, but as it turns out, mmapping() 0xe4da000 succeeds, which causes... problems. The patch (against xine-lib 1.1.6) does two things: * Check that the length will not be truncated, while still allowing for mmap()s of large files under 64 bit OSes. * A correctness fix: if mmap() fails, this->mmap_base will be set to 0xffffffff. Later on when the file is closed, this means it was attempting to do munmap(0xffffffff).
2007-05-26Re: [xine-devel] vcd plugin - sigsegv in 1.1.6 and 1.1(.7)Manfred Tremmel
development branche Am Samstag, 26. Mai 2007 17:48 schrieb Darren Salt: > Could you also try not reverting that and instead applying one or > both of the attached patches? Both playback and eject need to be > tested. You should use the drive's eject button, though there's no > harm in also checking xine-lib's eject code. Ok, here's a modified patch, a combination of your two patches, with a little fix. It works fine here, pressing the vcd button on xine-ui starts playing vcd's directly and when pressing the stop button, I can eject the CD by pressing the eject button on the cd drive. I hope it's ok for you. -- Machs gut | http://www.iivs.de/schwinde/buerger/tremmel/ | http://packman.links2linux.de/ Manfred | http://www.knightsoft-net.de
2007-05-17Convert comments (and the occasional string where it doesn't matter) to UTF-8.Darren Salt
2007-05-16v4l: replace faulty use of xprintf with lprintf.Simon Farnsworth
The current input_v4l in xine-lib 1.1.6 is inherently buggy (it will deference an invalid pointer in extract_mrl if the MRL contains a V4L input name or frequency).
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-05-13Correct the dvba:// MRL / tuner mismatch message.Darren Salt
2007-05-11Throw a XINE_MSG_PERMISSION_ERROR error when HTTP returns a 401 statushadess@cookie.hadess.net
Patch from Dmitri Fedortchenko <dimo <at> angelhill.net>, required for upstream Totem bug: http://bugzilla.gnome.org/show_bug.cgi?id=418316
2007-05-04Fix building of CDDA input on FreeBSD, the NetBSD patch broke it as ↵Diego 'Flameeyes' Pettenò
sys/scsiio.h is not present on FreeBSD.
2007-05-02Fix proxy usage when the hostnames cannot be resolved.Diego 'Flameeyes' Pettenò
Thanks to Jeff Mitchell for reporting and testing the fix. This change reverses the meaning of _x_use_proxy() function to be the one expected by human logic (1 -> use proxy, 0 -> don't use proxy), this way a failure in hostname resolution would result in the proxy being used rather than discarded. Basically now you can use xine behind a proxy when you can't get out to the DNS servers (or where the DNS servers don't resolve Internet hosts that you are not allowed to connect to).
2007-04-14Oops. Silly mistake with fstat.Darren Salt
2007-04-14Don't read channels.conf if it isn't a normal file or a link to a normal file.Darren Salt
2007-04-14Reworked the channels.conf file handling in the DVB plugin.Darren Salt
Previously, with junk content, the plugin could potentially consume lots of memory (possibly causing a local DoS). Also, a few small memory leaks have been eliminated.
2007-04-08Mark various private arrays, structs & fn parameters as static and/or const.Darren Salt
Two of the modified files are headers, but each contains definitions as well as declarations and is only ever used once.
2007-04-07Use CC_ATTRIBUTE_FORMAT; replace __attribute((format(printf, ...))) accordingly.Darren Salt
2007-04-06Use xineplug_LTLIBRARIES wherever possible.Diego 'Flameeyes' Pettenò
2007-04-04Cleanup check for WIN32, use #elif rather than #else/#ifdef.Pascal S. de Kloe
2007-04-04Check for sys/dvdio.h, and use that if found, rather than having a check for ↵Diego 'Flameeyes' Pettenò
the BSDs. Thanks to Pascal S. de Kloe for pointing at this.
2007-04-04When EOVERFLOW is not defined, use EINVAL instead.Pascal S. de Kloe
2007-04-03Rationalise use of .hgignore, removes a bunch of files that only ignored ↵Diego 'Flameeyes' Pettenò
automake-related files.
2007-04-02Migrate all .cvsignore files to .hgignore.Diego 'Flameeyes' Pettenò
--HG-- rename : .cvsignore => .hgignore rename : doc/.cvsignore => doc/.hgignore rename : doc/faq/.cvsignore => doc/faq/.hgignore rename : doc/hackersguide/.cvsignore => doc/hackersguide/.hgignore rename : doc/man/.cvsignore => doc/man/.hgignore rename : doc/man/en/.cvsignore => doc/man/en/.hgignore rename : include/.cvsignore => include/.hgignore rename : intl/.cvsignore => intl/.hgignore rename : lib/.cvsignore => lib/.hgignore rename : m4/.cvsignore => m4/.hgignore rename : misc/.cvsignore => misc/.hgignore rename : misc/fonts/.cvsignore => misc/fonts/.hgignore rename : po/.cvsignore => po/.hgignore rename : src/.cvsignore => src/.hgignore rename : src/audio_out/.cvsignore => src/audio_out/.hgignore rename : src/combined/.cvsignore => src/combined/.hgignore rename : src/demuxers/.cvsignore => src/demuxers/.hgignore rename : src/dxr3/.cvsignore => src/dxr3/.hgignore rename : src/input/.cvsignore => src/input/.hgignore rename : src/input/dvb/.cvsignore => src/input/dvb/.hgignore rename : src/input/libdvdnav/.cvsignore => src/input/libdvdnav/.hgignore rename : src/input/libreal/.cvsignore => src/input/libreal/.hgignore rename : src/input/librtsp/.cvsignore => src/input/librtsp/.hgignore rename : src/input/vcd/.cvsignore => src/input/vcd/.hgignore rename : src/input/vcd/libcdio/.cvsignore => src/input/vcd/libcdio/.hgignore rename : src/input/vcd/libcdio/MSWindows/.cvsignore => src/input/vcd/libcdio/MSWindows/.hgignore rename : src/input/vcd/libcdio/cdio/.cvsignore => src/input/vcd/libcdio/cdio/.hgignore rename : src/input/vcd/libcdio/image/.cvsignore => src/input/vcd/libcdio/image/.hgignore rename : src/input/vcd/libvcd/.cvsignore => src/input/vcd/libvcd/.hgignore rename : src/input/vcd/libvcd/libvcd/.cvsignore => src/input/vcd/libvcd/libvcd/.hgignore rename : src/liba52/.cvsignore => src/liba52/.hgignore rename : src/libdts/.cvsignore => src/libdts/.hgignore rename : src/libfaad/.cvsignore => src/libfaad/.hgignore rename : src/libfaad/codebook/.cvsignore => src/libfaad/codebook/.hgignore rename : src/libffmpeg/.cvsignore => src/libffmpeg/.hgignore rename : src/libffmpeg/libavcodec/.cvsignore => src/libffmpeg/libavcodec/.hgignore rename : src/libffmpeg/libavcodec/alpha/.cvsignore => src/libffmpeg/libavcodec/alpha/.hgignore rename : src/libffmpeg/libavcodec/armv4l/.cvsignore => src/libffmpeg/libavcodec/armv4l/.hgignore rename : src/libffmpeg/libavcodec/i386/.cvsignore => src/libffmpeg/libavcodec/i386/.hgignore rename : src/libffmpeg/libavcodec/libpostproc/.cvsignore => src/libffmpeg/libavcodec/libpostproc/.hgignore rename : src/libffmpeg/libavcodec/mlib/.cvsignore => src/libffmpeg/libavcodec/mlib/.hgignore rename : src/libffmpeg/libavcodec/ppc/.cvsignore => src/libffmpeg/libavcodec/ppc/.hgignore rename : src/libffmpeg/libavcodec/sparc/.cvsignore => src/libffmpeg/libavcodec/sparc/.hgignore rename : src/libffmpeg/libavutil/.cvsignore => src/libffmpeg/libavutil/.hgignore rename : src/libflac/.cvsignore => src/libflac/.hgignore rename : src/liblpcm/.cvsignore => src/liblpcm/.hgignore rename : src/libmad/.cvsignore => src/libmad/.hgignore rename : src/libmpeg2/.cvsignore => src/libmpeg2/.hgignore rename : src/libmpeg2new/.cvsignore => src/libmpeg2new/.hgignore rename : src/libmpeg2new/include/.cvsignore => src/libmpeg2new/include/.hgignore rename : src/libmpeg2new/libmpeg2/.cvsignore => src/libmpeg2new/libmpeg2/.hgignore rename : src/libmusepack/.cvsignore => src/libmusepack/.hgignore rename : src/libmusepack/musepack/.cvsignore => src/libmusepack/musepack/.hgignore rename : src/libreal/.cvsignore => src/libreal/.hgignore rename : src/libspeex/.cvsignore => src/libspeex/.hgignore rename : src/libspucc/.cvsignore => src/libspucc/.hgignore rename : src/libspucmml/.cvsignore => src/libspucmml/.hgignore rename : src/libspudec/.cvsignore => src/libspudec/.hgignore rename : src/libspudvb/.cvsignore => src/libspudvb/.hgignore rename : src/libsputext/.cvsignore => src/libsputext/.hgignore rename : src/libtheora/.cvsignore => src/libtheora/.hgignore rename : src/libvorbis/.cvsignore => src/libvorbis/.hgignore rename : src/libw32dll/.cvsignore => src/libw32dll/.hgignore rename : src/libw32dll/DirectShow/.cvsignore => src/libw32dll/DirectShow/.hgignore rename : src/libw32dll/dmo/.cvsignore => src/libw32dll/dmo/.hgignore rename : src/libw32dll/qtx/.cvsignore => src/libw32dll/qtx/.hgignore rename : src/libw32dll/qtx/qtxsdk/.cvsignore => src/libw32dll/qtx/qtxsdk/.hgignore rename : src/libw32dll/wine/.cvsignore => src/libw32dll/wine/.hgignore rename : src/libxineadec/.cvsignore => src/libxineadec/.hgignore rename : src/libxineadec/gsm610/.cvsignore => src/libxineadec/gsm610/.hgignore rename : src/libxineadec/nosefart/.cvsignore => src/libxineadec/nosefart/.hgignore rename : src/libxinevdec/.cvsignore => src/libxinevdec/.hgignore rename : src/post/.cvsignore => src/post/.hgignore rename : src/post/audio/.cvsignore => src/post/audio/.hgignore rename : src/post/deinterlace/.cvsignore => src/post/deinterlace/.hgignore rename : src/post/deinterlace/plugins/.cvsignore => src/post/deinterlace/plugins/.hgignore rename : src/post/goom/.cvsignore => src/post/goom/.hgignore rename : src/post/mosaico/.cvsignore => src/post/mosaico/.hgignore rename : src/post/planar/.cvsignore => src/post/planar/.hgignore rename : src/post/visualizations/.cvsignore => src/post/visualizations/.hgignore rename : src/video_out/.cvsignore => src/video_out/.hgignore rename : src/video_out/libdha/.cvsignore => src/video_out/libdha/.hgignore rename : src/video_out/libdha/bin/.cvsignore => src/video_out/libdha/bin/.hgignore rename : src/video_out/libdha/kernelhelper/.cvsignore => src/video_out/libdha/kernelhelper/.hgignore rename : src/video_out/libdha/oth/.cvsignore => src/video_out/libdha/oth/.hgignore rename : src/video_out/libdha/sysdep/.cvsignore => src/video_out/libdha/sysdep/.hgignore rename : src/video_out/macosx/.cvsignore => src/video_out/macosx/.hgignore rename : src/video_out/vidix/.cvsignore => src/video_out/vidix/.hgignore rename : src/video_out/vidix/drivers/.cvsignore => src/video_out/vidix/drivers/.hgignore rename : src/xine-engine/.cvsignore => src/xine-engine/.hgignore rename : src/xine-utils/.cvsignore => src/xine-utils/.hgignore rename : win32/.cvsignore => win32/.hgignore rename : win32/include/.cvsignore => win32/include/.hgignore
2007-03-29Reorder fields to fill hole.Diego 'Flameeyes' Pettenò
CVS patchset: 8774 CVS date: 2007/03/29 19:45:33
2007-03-23Fix closing the vcd device if the disc is not a video CD.Darren Salt
libvcdinfo 0.7.23 closes the device in this case whereas the built-in version did not, and this was causing double frees due to my previous fix which addressed only the built-in version (which needs to be either updated to 0.7.23 or dropped). CVS patchset: 8743 CVS date: 2007/03/23 21:47:31
2007-03-22Fix crosscompile to use build and host definition from autoconf, rather than ↵Diego 'Flameeyes' Pettenò
using hacksaround. Also replace the whole pthread check with an improved macro originally written for XCB, this way it's not going to try linking the fake -lpthread on Darwin, and it also does not force a -I/usr/local/include on FreeBSD. The new macro respects the same variables set by ports, so that it's even more transparent to FreeBSD users. CVS patchset: 8739 CVS date: 2007/03/22 20:44:58
2007-03-22Instead of rewriting the install and uninstall rules for headers, simply ↵Diego 'Flameeyes' Pettenò
change their class to xineinclude, and set xineincludedir in Makefile.common. CVS patchset: 8737 CVS date: 2007/03/22 17:37:17
2007-03-20Add B2N macros for OSX. Patch by Martin Aumueller. Also add to the diff from ↵Diego 'Flameeyes' Pettenò
CVS as needs to be submitted. CVS patchset: 8727 CVS date: 2007/03/20 00:35:29
2007-03-17Avoid a possible floating-point exception when starting stream playback.Darren Salt
CVS patchset: 8707 CVS date: 2007/03/17 19:15:58
2007-03-17Some servers does not send a human-readable http status description, for ↵Diego 'Flameeyes' Pettenò
those, check only the status code. This fixes WikipediaWeekly podcasts for instance. CVS patchset: 8706 CVS date: 2007/03/17 16:47:16
2007-03-16Move netinet/in.h include down the block; this is currently patched by ↵Diego 'Flameeyes' Pettenò
FreeBSD ports, and makes no functional change of sort on Linux. CVS patchset: 8675 CVS date: 2007/03/16 16:32:58
2007-03-10When hstrerror() is found in libresolv, link it where it is used. Patch by ↵Diego 'Flameeyes' Pettenò
Albert Lee. CVS patchset: 8660 CVS date: 2007/03/10 00:57:30