Whenever using select() companion macro FD_SET(), one must ensure that
the specified file descriptor does not exceeds the fd_set limit (FD_SETSIZE).
Registering a file descriptor above this limit is not defined (read: this is
a buffer overflow).
This is not normally exploitable on Linux because FD_SETSIZE equals the
default limit for file descriptors per processes, but should work on BSDs.
Cygwin is also very prone to this problem (but right, we don't use it). As
for Windows, it will overflow if you try to select() more than 64 sockets at
a time (regardless of the total numbers of socket), but for the sake of
simplicity and portability, this patch actually prevent opening more than
64 sockets at all.
There are still quite a bunch of plugins that needs fixing.
Jean-Paul Saman [Thu, 27 Apr 2006 19:13:42 +0000 (19:13 +0000)]
Play VOD RTSP from Amino STB with RTSP url: 'rtsp://192.168.0.5:5554//192.168.0.5:5554/dvd;type=VOD;servertype=MediaBase' Note the double slash // between the ip-addresses. Patch by Rob Casey (rob dot casey AT swishgroup dot com dot au)
Add option to force timeshift filter even if access can control pace or pause.
The goal is to be able to timeshift on live rtsp streams. The true fix would be to fix the rtsp access ...
Benjamin Pracht [Tue, 25 Apr 2006 16:47:56 +0000 (16:47 +0000)]
* screensaver.c, configure.ac: use directly dbus to disable gnome-screensaver if dbus is available upon compilation, instead of using system(gnome-screensaver-command
* interface.c: use the b_strict boolean when calling module_Need upon extra interface launching. This prevents vlc to try to launch a 2nd wx gui if the screensaver module isn't available.
* Handle submodules correctly in the prefs (so we can enable/disable them).
* Fix bug with modules chain if the begining or the end of one module's name matched another module's name. (like 'shoutcasttv' and 'shout')
Benjamin Pracht [Sun, 23 Apr 2006 20:31:06 +0000 (20:31 +0000)]
* Support for gnome-screensaver
* We should test if the command is in the path before trying to launch it
* Anyway, system is dirty, we should use dbus, at least for gnome-screensaver
Benjamin Pracht [Sun, 23 Apr 2006 14:37:54 +0000 (14:37 +0000)]
* bit masks for RV15 and RV16 were inverted (!) (or there is something I really haven't caught)
* Endianness fix for RV15 and RV16 (mostly used for x11)
* all: new handling of vout controls to allow serveral layouts/windows
with a vout (if only one is visible at the same time)
A callback is now called when a layout becomes visible or hidden.
The vout window is still not reparented correctly if the layout
is changed while a video is being played...
Change shoutcast service discovery module and write a new demux to be compatible with the new winamp 5.2 format. See trac ticket for detailed info. I'd appreciate if people could test this and proof read the code since we'll have to include this in 0.8.5 which is due to be released soon.
Add vlc_get_meta function. Argument can be:
'ARTIST' -> gets the artist
'TITLE' -> gets the title
'ALBUM' -> gets the album name
'something else' -> get 'something else' ... meta labels are translated so don't expect this to be portable.
* skins2/controls/ctrl_tree.cpp: Check that the iterator is not end() before using it...
This fixes random freezes when loading skins with a PlayTree control on Windows, and probably some crashes as well.
* all: added a INI file parser in skins2. For instance if the file
with id "pledit" (defined in the new tag "<IniFile>" contains:
[Text]
Normal=#FFFFFF
it will create a constant "pledit.Text.Normal" with value "#FFFFFF"
* winamp2.xml: use the "pledit.txt" file to have correct playlist colors
* all: added a new skin text variable "$S" to get the audio sample rate
(in KHz) + fixed the bitrate ("$B") variable to use only the audio bit rate.
* winamp2.xml: updated the winamp2 skin
Do not provide a broken language option on Linux and similar OSes
where the user normally use LANG, LANGUAGE, etc to define his/her
language(s). It didn't work anyway (refs #638).
* Support for Topfield .rec recordings. It's MPEG-TS with an exceptionally large (1MB) header in front of it.
I tried adding the info in the header to meta, but the existing documention seems incorrect or at least incomplete. Instead we just accept the start of the header as identifying a MPEG-TS file, and skipping the header.
BTW this header is again an example of very bad format design. It is using fixed length strings, for which the used buffers clearly are not null'ed before written with new information. As such i was able to determine which programs were running before this program was recorded :D
Also a PID printed to a field was clearly not printed to null'ed memory, causing an invalid (too high) PID number to be in the field. You'd think the least someone could do when designing something like this, would be to analyze a hexdump of your own custom header.
Benjamin Pracht [Fri, 14 Apr 2006 13:22:44 +0000 (13:22 +0000)]
* What is the point in having a detection for libvc1 if we don't have a libvc1 module ? Moreover, that prevents jlj's patch with the module from applying.