summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2007-04-15Merge extensions to xine engine.Reinhard Nißl
2007-04-15Avoid locking log_lock once the buffer has been allocated.Reinhard Nißl
2007-04-15Avoid immediate frame drops by giving decoder a further chance toReinhard Nißl
supply decoded frames. There can still be scheduling delays which may let the number of frames ready for displaying to drop below frame drop limit just for a short period of time. Therefore the changes remember that the decoder should have been asked to drop some frames but do not actually have the decoder to drop some frames. When the situation has improved at the next time when the check is performed, the remembered frame drop is canceled or otherwise (when the number of frames is still below frame drop limit) executed.
2007-04-15Choose maximum for frame drop limit depending on the number ofReinhard Nißl
allocated frames. The current code uses a hard coded frame drop limit of 3 and doesn't adhere to it's documentation when testing whether frames shall be dropped. As a result frame drop limit is actually 4, which means that the decoder is asked to drop some frames when the number of frames waiting for displaying is less then 4. Consider a video out device like xxmc which only supplies 8 frames. For MPEG2 decoding, two frames will be used by the decoder (for the current frame and the forward reference frame) and two further frames will be used in the video out loop (the current and the previous frame) so that at any given time (under perfect conditions) there will be 4 frames waiting to be displayed. But when there are delays in scheduling, it might happen that there are only 3 frames ready for displaying and thus will result in asking the decoder to drop frames. The changes therefore determine the maximum frame drop limit in dependence of the number of allocated frames and make the detection work like documented. In the above scenario, the maximum number actually used for frame drop limit will then be 2 which allows to compensate some scheduling delays without causing the decoder to drop frames.
2007-04-15Avoid skipping an unsuitable frame when there are only few buffersReinhard Nißl
available. Usually it's a good idea to avoid reallocating frames especially when a deinterlacer needs a different format than the decoder, as this would then happen all the time. But when there is only a limited number of frames available, then even a single frame which is not scheduled at frame allocation may let the number of frames ready for displaying drop below frame drop limit and thus resulting in unnecessary frame drops.
2007-04-15Increase priority of video decoder a little bit, to avoid frameReinhard Nißl
drops. When a video out device provides only a little number of video frames, the video decoder should be scheduled immediately to provide a decoded frame as soon as possible. Otherwise, the number of available frames for displaying may go below frame drop limit and thus resulting in unnecessary frame drops.
2007-04-15Make sleeps in video out loops interruptable for immediate OSDReinhard Nißl
redrawing. The video out loop sleeps up to 20 ms (and the paused loop 20 ms) which means that pending OSD events are delayed too from beeing processed. When an OSD is used for example to scroll through a list of VDR recordings, this delay may slow down scrolling unnecessarily. Especially when the OSD manager is able to render the OSD content indepently from drawing a frame to screen, this change will allow the fastest OSD update possible.
2007-04-15Provide a function to query for outstanding OSD events.Reinhard Nißl
This function shall be used to poll the number of outstanding OSD events from a certain point in time on until the reported number is 0. At that point in time, the content on screen is identical to a certain state of the stream, at which for example, a hardcopy may be taken.
2007-04-15Initialize image size in bmiheader with data from AVCodecContext, if still ↵Reinhard Nißl
uninitalized.
2007-04-15The X11 visual doesn't seem to actually work at all with X11 xine-ui, so use ↵Diego 'Flameeyes' Pettenò
the Framebuffer output only with fbxine.
2007-04-15Change file documentation to Doxygen format; cleanup comment; change the ↵Diego 'Flameeyes' Pettenò
outputs to not encode the video out name on it, to simplify i18n.
2007-04-15Only declare ffmpeg_config.h as built source when using internal FFmpeg.Diego 'Flameeyes' Pettenò
2007-04-14Compile fixes.Darren Salt
2007-04-14The other half of the dependencies fix.Darren Salt
2007-04-14Fix dependencies so that ffmpeg_config.h is built before trying to build ↵Diego 'Flameeyes' Pettenò
xineplug_decode_ff.la/
2007-04-14Use memset instead of loops to initialise arrays to zero.Diego 'Flameeyes' Pettenò
2007-04-14Merge changes.Diego 'Flameeyes' Pettenò
2007-04-14Use xine_xcalloc instead of xine_xmalloc when mutiplying the number of ↵Diego 'Flameeyes' Pettenò
elements by the size of the single element.
2007-04-14Merge changes.Darren Salt
2007-04-14Look in the user XDG config dir for channels.conf.Darren Salt
2007-04-14Mark string arrays as arrays of constant pointers, and do the same for ↵Diego 'Flameeyes' Pettenò
memcpy structures. When array of constant pointers are used for register enum configurations, this creates more warnings because of pointer mismatches; I'd consider casting them, but not yet. In the memcpy_method array, mark the parts that are constant at build time as const so to try reducing the overhead.
2007-04-14Fix typo injected at savetime.Diego 'Flameeyes' Pettenò
2007-04-14Check for __malloc__ attribute during configure stage, avoid conditional in ↵Diego 'Flameeyes' Pettenò
xineutils.h for it, instead use XINE_MALLOC.
2007-04-14Add a xine_xcalloc function to wrap around calloc(), to improve security ↵Diego 'Flameeyes' Pettenò
from now on.
2007-04-14Merge changes from 1.1.Darren Salt
2007-04-14Oops. Silly mistake with fstat.Darren Salt
2007-04-14Define XINE_PACKED also in attributes.h for frontends.Diego 'Flameeyes' Pettenò
2007-04-14Don't save the fake win32 registry in ~/.xine hardcoded, use XDG_CACHE_HOME.Diego 'Flameeyes' Pettenò
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-14Don't add a special setting for DVDCSS_CACHE, as it's handled by libdvdcss.Diego 'Flameeyes' Pettenò
Users might be using DVDCSS_CACHE by theirselves to change the location of libdvdcss keys cache; if xine resets the environment variable, it might create an unexpected behaviour to the user.
2007-04-14Remove #ifdef wrappers from the Xv & XcbXv plugins. Allows XcbXv to be built.Darren Salt
2007-04-14Search also in user's XDG_DATA_HOME.Diego 'Flameeyes' Pettenò
2007-04-14Remove now-unused _cdda_cddb_get_default_location.Diego 'Flameeyes' Pettenò
2007-04-13Use the stream's audio_fifo as it hasn't been reported on the demuxer's ↵Diego 'Flameeyes' Pettenò
instance yet.
2007-04-13Use the stream's audio_fifo as it hasn't been reported on the demuxer's ↵Diego 'Flameeyes' Pettenò
instance yet.
2007-04-13CDDB cache placement is no more a configuration option, and uses instead ↵Diego 'Flameeyes' Pettenò
XDG_CACHE_HOME as a place where to put the data.
2007-04-13Simplify handling of internal/external libxdg-basedir, as it's going to be ↵Diego 'Flameeyes' Pettenò
used in a few more cases.
2007-04-13Avoid strlen on a literal, use a sizeof.Diego 'Flameeyes' Pettenò
2007-04-13Check inside the fonts/ directory inside the package's XDG_DATA_DIR, rather ↵Diego 'Flameeyes' Pettenò
than in the root of it.
2007-04-13Also preload bitmap fonts on XDG directories.Diego 'Flameeyes' Pettenò
With this commit, also fix the previous mistakes in the iteration.
2007-04-13Search for fonts to render with FreeType2 on XDG Data directories.Diego 'Flameeyes' Pettenò
With this change, when rendering a font through FreeType2 (and not using FontConfig) the directories looked up are the ones defined in XDG_DATA_DIRS, right after XDG_DATA_HOME; this way the user can decide to have fonts data in a different place than its home directory. This also splits up the lookup for fontconfig and non-fontconfig cases in two different functions, to avoid gotos and labels.
2007-04-13Remove alloca.h inclusion, no more needed with libxdg-basedir.Diego 'Flameeyes' Pettenò
2007-04-13Use libxdg-basedir to discover the cache directory to use, rather than doing ↵Diego 'Flameeyes' Pettenò
the check manually.
2007-04-13Add a global handle for libxdg-basedir library to xine_s.Diego 'Flameeyes' Pettenò
This handle can then be used by all plugins and other parts of the xine engine without having to duplicate it.
2007-04-13Save plugins' cache in the defined cache home directory as per XDG Base ↵Diego 'Flameeyes' Pettenò
Directory Specification. With this change, xine-lib starts abiding to the XDG Base Directory Specification, allowing the user to define a different path to save its cache data (by setting XDG_CACHE_HOME environment variable).
2007-04-13Provide internal functions to lock frontend_lock.Reinhard Nißl
The introduced functions give "frontend like" plugins a chance to lock and unlock frontend_lock. This protects such threads for example from beeing blocked when changing the streams speed.
2007-04-13Provide internal functions to lock port rewiring.Reinhard Nißl
The introduced function give "frontend like" plugins a chance to lock and unlock port rewiring. This protects such threads (when combined with holding the frontend lock) from beeing blocked when calling functions like xine_get_current_frame().
2007-04-13Merge extentions to ticket system.Reinhard Nißl
2007-04-13Provide ability to lock port rewiring.Reinhard Nißl
The idea is to allow only a "single" frontend to rewire ports at a certain point in time. Regarding a stream, frontend_lock is used for example to allow only a single frontend to change the speed. Unfortunately, frontend_lock cannot be used as the rewire functions are not stream related. Therefore a new port_rewiring_lock was introduced and used at appropriate locations. When an arbitrary thread now holds the frontend_lock and the port_rewiring_lock, it is safe that acquiring a port ticket in functions like xine_get_current_frame() will never block the thread.