summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2007-04-14Cleanup CPPFLAGS, remove LIBFFMPEG_CPPFLAGS as ffmpeg's configure takes care ↵Diego 'Flameeyes' Pettenò
of it.
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-14Update libxdg-basedir to version 0.1.3; thanks to Mark Nevill for the quick ↵Diego 'Flameeyes' Pettenò
action. Detection of libxdg-basedir presence is now done through pkg-config, and to use the external copy you have to have at least 0.1.3 because previous versions contain one bug that causes /usr/share to become /usr/sharee. Remove the patch, no differences from the original are present at this time.
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-13Merge changes from 1.1 branchDiego 'Flameeyes' Pettenò
2007-04-13Merge changes.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-13Fix an off-by-one mistake in libxdg-basedir that caused /usr/share to become ↵Diego 'Flameeyes' Pettenò
/usr/sharee. Also add a diff from the original sources and add it to the distribution.
2007-04-13Install the fonts in the proper directory to be found by XDG_DATA_DIRS ↵Diego 'Flameeyes' Pettenò
lookup (if the chosen prefix is suitable for it).
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-13Fix AC_CHECK_LIB call.Diego 'Flameeyes' Pettenò
2007-04-13Import libxdg-basedir into contributed code.Diego 'Flameeyes' Pettenò
The libxdg-basedir project, developed by Mark Nevill, implements a simple way to use the XDG_* variables used to define the paths for the XDG Base Directory Specification (0.6). As I was going to reinvent the wheel, I prefer to import this library that was already written, hoping it will continue being developed.
2007-04-13Bump version no.Darren Salt
2007-04-13Change the dev version suffix from cvs to hg; fix .cvsversion detection.Darren Salt
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-13Disable bob deinterlacing on a per frame decision (continued).Reinhard Nißl
One can assume that a still frame is to show when there are no more frames left to display. The changed code uses _x_query_buffer_usage() to retrieve the number of frames waiting to be displayed to integrate this information into the decision.
2007-04-12Merge some code for still frame detection.Reinhard Nißl
2007-04-12Disable bob deinterlacing on a per frame decision.Reinhard Nißl
There are some situations where bob deinterlacing doesn't make much sense, as the effect doesn't work for example for slow motion. And in fast motion mode, the sleep between displaying the two fields lowers the reachable fast motion frame rate. Another annoying effect is the reduction in vertical resolution for still images. The changed code tries to detect such issues and disables bob deinterlacing for such frames. The detection of still images is still to come.
2007-04-12Make bob deinterlacing more precisely and skip it on demand.Reinhard Nißl
Bob deinterlacing is implemented as showing the top field, sleeping for half the frame duration and showing the bottom field. Most drivers tend to synchronize displaying a field on the VBI and thus displaying a field may take up to half the frame duration in certain cases. According to the original code, the sleep took always half the frame duration and therefore the second field could get displayed too late. As a result, the driver was syncing to VBI most often, so that things got even worse. The changed code now calculates the sleep time in a way that the second field gets displayed half the frame duration after the first field. Moreover, it monitors how much time was spent to display the first field and when this time exceeds 75 % of the field time (= half the frame time), it skips displaying the second field, as usually this is an indicator that the driver has no more frame buffers left. So displaying the second field would just make things go worse.
2007-04-12Avoid keeping frames referenced which are nolonger used.Reinhard Nißl
The current implementation keeps references to VO_NUM_RECENT_FRAMES frames (for deinterlacing), but doesn't make any use of them. As many XXMC capable devices only supply 8 frames at all, keeping fewer frames referenced makes more available for decoding and thus avoids frame drops by keeping the number of frames which are ready for display more often above frame_drop_limit.
2007-04-12Let xxmc switch back to an unaccelerated context.Reinhard Nißl
The current code misses the ability to switch back to an unaccelerated context, e. g. when previously MPEG2 material was displayed which is then followed by H.264 material. As the latter is not handled as XINE_IMGFMT_XXMC there was no way to leave the accelerated context and therefore the images did not appear on screen.
2007-04-12Provide a function to query buffer usage.Reinhard Nißl
This function shall be used to poll the number of remaining frames from a certain point in time on until the reported numbers are all 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-12Extend ticket system for nonblocking ticket acquiries.Reinhard Nißl
The current code has a race condition which can block arbitrary threads that call for example xine_get_current_frame() until the stream gets unpaused again. This can happen when the internal ticket acquiration collides with a ticket revokation for example when another thread is going to pause the stream. There are a few situations where a port ticket needs to be acquired for calling a port function but where it is absolutely undesireable to get blocked for an undetermined period of time. Therefore the ticket system should be extended by nonblocking functions which allow ticket acquiration even when a ticket revokation is in progress. And in the case where blocking is not avoidable, it should simply be indicated that no ticket was acquired. The caller can then choose to repeat the call at a later point in time.
2007-04-12Update from 1.1 branch.Diego 'Flameeyes' Pettenò
2007-04-12Set xv_path before rewriting X_LIBS if we're not using pkg-config to ↵Diego 'Flameeyes' Pettenò
discover X libraries.
2007-04-12Add an entry to handle gracefully the runtime removal of the audio output ↵Diego 'Flameeyes' Pettenò
device, as discussed in xine-devel.
2007-04-12Reducing memory footprint is something we should do indeed, variable fifo is ↵Diego 'Flameeyes' Pettenò
something I'll be working on for 1.2.
2007-04-12DirectFB and OpenGL video outputs are implemented already, as is the IRIX ↵Diego 'Flameeyes' Pettenò
audio output. Not sure of their status, but they are there.
2007-04-12Faad2 is now safe with 5.1 streams, as we patch it like MPlayer does; RV10 ↵Diego 'Flameeyes' Pettenò
streams don't seem to crash anymore, although the real demuxer should be improved.
2007-04-12Add a few TODO entries for 1.2 and 1.3 series, to have a few objective to ↵Diego 'Flameeyes' Pettenò
satisfy.
2007-04-12Convert more documentation to Doxygen format; hide two functions.Diego 'Flameeyes' Pettenò
The _x_config_init() and _x_config_change_opt() functions should stay internal and not be exported by the library, so remove XINE_PROTECTED to hide them.
2007-04-12Speed up start code scanning.Reinhard Nißl
The current code implements hardware (a shift register) in software just to find the byte pattern 00 00 01 xx, which causes remarkable CPU load on less powerful machines. The new approach uses memchr() to find the 01 in the buffer, which most often hits a start code. memchr() seems to be even faster then implementing a real pattern search (i. e. by just looking at every third byte to find 01). The new implementation causes significantly fewer CPU load on less powerful machines.
2007-04-11Special handling of sequence end code to improve still frames.Reinhard Nißl
The current code emits a frame when a non slice start code is seen. For still frames, this is typically a sequence end code. But the current code doesn't call parse_chunk() immediately because it waits for a further start code to determine the chunk of data to pass to parse_chunk(). But there isn't such a further start code for still frames after the sequence end code and thus, the still frame will not be emitted. As sequence end code is the only start code which has no data according to the MPEG specification, let's use this information to call parse_chunk() immediately.
2007-04-11Detect absence of AFD and report only changes.Reinhard Nißl
The current code cannot detect the absence of AFD once it has been seen in the stream. As AFD can appear in user data after sequence, group or picture start codes, the idea is to reset the stored AFD value when processing the sequence start code. In the case where AFD is seen in user data, it is stored internally, to have it ready when the first slice is processed. At least at that time, AFD data has been seen and can be analyzed for changes. At any change, the AFD value will then be stored into a stream property. Doing this only for changes avoids locks while writing the same value over and over to the stream's property.
2007-04-11Improve MPEG2 detection to have it ready for correct aspect ratioReinhard Nißl
determination. The current code detects MPEG2 when parsing the sequence extention which appears only in MPEG2 streams. But this is to late for correct aspect ratio determination which happens earlier and therefore assumes MPEG1. The result is a totally wrong aspect ratio. To fix this issue, the next start code (which is already available at that time) is passed to parse_chunk() too, which can then be used to detect a MPEG2 extension start code early enough before the aspect ratio is determined.