summaryrefslogtreecommitdiff
path: root/src/xine-engine
AgeCommit message (Collapse)Author
2007-05-03Make _x_buf_(audio|video)_name return a pointer to constant string.Diego 'Flameeyes' Pettenò
2007-04-25Merge from 1.1.Darren Salt
2007-04-23Merge alpha-blending changes.Darren Salt
2007-04-23Add comments about used blending equationPetri Hintukainen
Remove unused x_odd parameter from blend_???_exact functions
2007-04-21Merge from 1.1 branch.Diego 'Flameeyes' Pettenò
2007-04-19audio_filter_amp: calculate the total number of frames to iterate over just ↵Diego 'Flameeyes' Pettenò
once. This way, it avoids to calculate the multiplication in the for loops and in the memset() call.
2007-04-19Mark _x_[av]o_new_port functions as internal function, both in doxygen and ↵Diego 'Flameeyes' Pettenò
by not exporting them.
2007-04-19More doxygen documentation.Diego 'Flameeyes' Pettenò
2007-04-18Limit common-case buffer copying optimisation to i386 & amd64.Darren Salt
This fixes reported alignment issues on ARM. (We could require correct alignment on some architectures, but this is easier.)
2007-04-18Alphablending optimizations:Petri Hintukainen
- validate palette alpha values in overlay manager (one check / overlay / palette index) instead of checking every alpha value twice for every blended pixel in every frame - remove unneeded calculations - approximiate expensive integer divisions with multiplication and shift
2007-04-16Merge fix for xine-lib extension.Reinhard Nißl
2007-04-16Merge fix from other xine-lib extension.Reinhard Nißl
2007-04-16FIX: Make sleeps in video out loops interruptable for immediate OSDReinhard Nißl
redrawing. While splitting my original big patch set, I've lost three lines. This change will make xine-lib compile again.
2007-04-15Extend the original MAX_SHOWING by 16 VDR OSD objects.Reinhard Nißl
The original number of OSD objects was 5 which served xine-lib's needs. VDR may on it's own allocate up to 16 OSD objects and thus there may be no more OSD objects left for xine-lib's needs. The change addresses this by increasing the current number by 5.
2007-04-15Provide some internal functions to be used by input_vdr.Reinhard Nißl
These functions are likely to be removed later when more correct solutions have been found.
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-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-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-14Search also in user's XDG_DATA_HOME.Diego 'Flameeyes' Pettenò
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.
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-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-11Convert almost the whole buffer.h documentation to Doxygen format, and ↵Diego 'Flameeyes' Pettenò
extend the documentation available before.
2007-04-10Rationalise __attribute__((packed)) usage.Diego 'Flameeyes' Pettenò
First of all, as we check the presence of the attribute in configure.ac and we generate the XINE_PACKED definition there, there's no need to do the work again on attributes.h. Also remove #pragma pack support for now, as the trick is just not neat enough, and as it is it's just noise. Make Wine, libdvdnav and nosefart use XINE_PACKED rather than doing their own checks, as they are less reliable.
2007-04-10Replace the duplicated meFOURCC macro with ME_FOURCC that is declared in ↵Diego 'Flameeyes' Pettenò
bswap.h already. (transplanted from a7820d16324dbc6fd6b35481a78ff532f59ebe71) --HG-- extra : transplant_source : %A7%82%0D%162M%BCo%D6%B3T%81%A7%8F%F52%F5%9E%BEq
2007-04-10Replace the duplicated meFOURCC macro with ME_FOURCC that is declared in ↵Diego 'Flameeyes' Pettenò
bswap.h already.
2007-04-09Don't export _x_(dummy_)fifo_buffer_new functions.Diego 'Flameeyes' Pettenò
2007-04-09Update from 1.1 branch.Diego 'Flameeyes' Pettenò
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-07Merge changes from main repository.Diego 'Flameeyes' Pettenò
2007-04-07video_overlay_s uses C's inheritance-like definition, so the first field has ↵Diego 'Flameeyes' Pettenò
to be video_overlay.