summaryrefslogtreecommitdiff
path: root/src/xine-engine
AgeCommit message (Collapse)Author
2011-03-20Merge from 1.1.Darren Salt
2011-03-02Output a log message if raising of nice priority fails for video out and ↵Andreas Auras
decoder thread. Raising nice priority is not limited to root user only on modern unix/linux systems. So a log message about failure is helpful to everyone.
2011-03-02Fixes two issues of video out standard cropping feature.Andreas Auras
Resulting left and right cropping parameters should be multiple of 2. Left cropping offset calculation to YUY2 frames fixed.
2011-03-02Removed ugly code handling of intercepted frames.Andreas Auras
Intercepted frames should never pass function vdpau_update_frame_format. --HG-- extra : rebase_source : d1d05b67865eb6cc79225f96159184852f239262
2011-03-20Merge from 1.1.Darren Salt
--HG-- rename : src/libxineadec/gsm610/Makefile.am => contrib/gsm610/Makefile.am rename : src/libxineadec/nosefart/diff_to_nosefart_cvs.patch => contrib/nosefart/diff_to_nosefart_cvs.patch rename : src/libxineadec/nosefart/nes6502.c => contrib/nosefart/nes6502.c rename : src/libxineadec/nosefart/nes6502.h => contrib/nosefart/nes6502.h rename : src/libxineadec/nosefart/nes_apu.c => contrib/nosefart/nes_apu.c rename : src/libxineadec/nosefart/nes_apu.h => contrib/nosefart/nes_apu.h rename : src/libxineadec/nosefart/nsf.c => contrib/nosefart/nsf.c rename : src/libxineadec/nosefart/nsf.h => contrib/nosefart/nsf.h rename : src/libxineadec/nosefart/types.h => contrib/nosefart/types.h rename : src/libxineadec/nosefart/version.h => contrib/nosefart/version.h rename : doc/faq/faq.sgml => doc/faq/faq.docbook rename : src/libsputext/demux_sputext.c => src/spu_dec/sputext_demuxer.c rename : src/libxinevdec/image.c => src/video_dec/image.c
2011-03-02Do not copy pointer to acceleration data of a frame when propagating changes ↵Andreas Auras
downwards within post plugins because this corrupted the receiving frame acceleration data. This issue occurs typically when a post plugin retrieves a new frame from the video out stage and then does a _x_post_frame_copy_down from the frame that is delivered from the video decoder. In this case the two frames are unrelated and acceleration data get messed up.
2011-02-06Fix argb_layer handling in xine-libs OSD stack.Reinhard Nißl
xine-libs OSD stack is event driven and some memory blocks are not copied but responsibility to free the memory moves to different layers of the OSD stack. When argb_layer was introduced, this behavior was not taken into account and as such it is likely that for example osd_free_object() frees the argb_layer while vdpau_overlay_* functions still access the memory. Passing responsibility for the argb_layer is not that easy as it seems as the design goal of the argb_layer was to not duplicate any memory of the argb_buffer which all other OSD functions usually do. To solve this issue, argb_layer_t will be turned into a managed data structure by introducing a ref_count member. ref_count increases as more layers of the OSD stack hold a reference to that memory block, and it decreases when they are no longer interested in it. When ref_count reaches zero the memory block is freed automatically. To deal with ref counting, set_argb_layer_ptr() has been introduced. Some functions of the OSD layers had to be modified to deal with reference tracking. For convinience, osd_free_object() should clear the argb_buffer pointer so that the buffer may be freed safely after returning.
2011-01-30Correct implementation of vo_trigger_drawing().Reinhard Nißl
Drawing can only be triggered when a backup image exists. Otherwise it's useless. Therefore, honor it only when a backup frame exists. --HG-- extra : rebase_source : bffa00a9d9ed4e8994185655d20ba2b3fc9ad818
2011-01-22Provide _x_query_buffers() to allow analyzing buffer usage by pluginsReinhard Nißl
This function is similar to _x_query_buffer_usage() but retrieves also the total and available (= free) number of buffers besides the number of buffers ready for processing. For example if one wants to create a buffering algorithm based on the number of frames ready, it's not that easy to determine the maximum number of ready frames possible. In case one configures engine.buffers.video_num_frames:50 it may happen, that only 30 frames can actually be provided by the video out driver. Next a video codec like H.264 may hold several frames in its display picture buffer so that you may end up with only 13 ready frames at maximum. At the same time, the number of available (= free) frames will be 0 (or almost zero in case of vo). So it may be even easier to base the buffer algorithm on the number of free buffers. The reported numbers may also reveal that too few input buffers have been provided to compensate a large a/v offset at input stage. --HG-- extra : rebase_source : 255cb186891fbab5199a99031cf1b1e93ac19923
2011-01-21Disable decoder flush from video out to avoid decoding errors.Reinhard Nißl
Video out flushes the decoder when it runs out of images for displaying, because the decoder hasn't delivered new frames for quite a while. But flushing the decoder causes decoding errors for images after the flush. It is likely that the flush is still required for the issues it was introduced (DVD still images), but they may have been resolved differently meanwhile (e. g. by supporting sequence end code). So for now a configureable option has been introduced which keeps the current behaviour by default. --HG-- extra : transplant_source : %AB%B3u%1F%E7%3D%10%0C%3D%40%B2%B0%CB%8E%84%FE%E6%87p%AA
2011-01-21Disable decoder flush from video out to avoid decoding errors.Reinhard Nißl
Video out flushes the decoder when it runs out of images for displaying, because the decoder hasn't delivered new frames for quite a while. But flushing the decoder causes decoding errors for images after the flush. It is likely that the flush is still required for the issues it was introduced (DVD still images), but they may have been resolved differently meanwhile (e. g. by supporting sequence end code). So for now a configureable option has been introduced which keeps the current behaviour by default.
2011-01-21Disable decoder flush at discontinuity to avoid decoding errors.Reinhard Nißl
Flushing the decoder at a pts wrap causes decoding errors for images after the pts wrap. It is likely that the flush is still required for the issues it was introduced (DVD still images), but they may have been resolved differently meanwhile (e. g. by supporting sequence end code). So for now a configureable option has been introduced which keeps the current behaviour by default. --HG-- extra : transplant_source : %9Cs%D1%9A%E5Sk%27%18%A6%94%5D%AB%0Dd%CA%7E%7E%BA%FD
2011-01-21Disable decoder flush at discontinuity to avoid decoding errors.Reinhard Nißl
Flushing the decoder at a pts wrap causes decoding errors for images after the pts wrap. It is likely that the flush is still required for the issues it was introduced (DVD still images), but they may have been resolved differently meanwhile (e. g. by supporting sequence end code). So for now a configureable option has been introduced which keeps the current behaviour by default.
2011-01-20Avoid video clock errors due to decoder flush at discontinuity.Reinhard Nißl
H.264 decoders store a couple of frames in their display picture buffer. Calling flush before discontinuity my yield images with pts beyond pts boundery and therefore cause clock errors. Calling discontinuity before flush resets all pts to 0 before yielding the images. --HG-- extra : transplant_source : %9CNpV%B5%83%83%23%F5%C3%09%E43%E2%DFo.%7E%D9%C7
2011-01-20Avoid video clock errors due to decoder flush at discontinuity.Reinhard Nißl
H.264 decoders store a couple of frames in their display picture buffer. Calling flush before discontinuity my yield images with pts beyond pts boundery and therefore cause clock errors. Calling discontinuity before flush resets all pts to 0 before yielding the images.
2010-11-30Various small memory leaks in xine engine.František Dvořák
2010-10-30Proper place for log mutex initialization (logging can start after ↵František Dvořák
xine_new()). Fixed a leak.
2010-10-30Using binary mode when checking configfile. New configfile would not be ↵František Dvořák
written only when switching binaries for different platforms.
2010-10-23mingw32-w64 port: '-no-undefined' partFrantišek Dvořák
- use -no-undefined flag only for building shared libraries (libxine, plugins) - plugins LDFLAGS unification - move -no-undefined into LDFLAGS_NOUNDEFINED - attributes.m4 fix
2010-07-21Remove duplicate codeLorenzo Desole
2010-07-25Merge from 1.1; resync translation files.Darren Salt
--HG-- rename : po/libxine1.pot => po/libxine2.pot rename : src/libmad/xine_mad_decoder.c => src/audio_dec/xine_mad_decoder.c rename : src/libspucmml/xine_cmml_decoder.c => src/spu_dec/cmml_decoder.c
2010-07-19Merge from 1.1.Darren Salt
2010-07-21Add _POSIX_THREAD_PRIORITY_SCHEDULING #ifdefsMatthias Drochner
This is optional, and some systems don't support it. POSIX defines the _POSIX_THREAD_PRIORITY_SCHEDULING to tell that support is present.
2010-07-21Normalize timevalMatthias Drochner
In demux_loop(), a time value is calculated by adding to the fractional part. In case a second barrier is crossed, the value is not in its canonical form anymore - the fractional part is larger than 10^9-1. It should be normalized for portability. While I haven't found a formal requirement for this in POSIX, NetBSD's libpthread checks for it and complains.
2010-07-17"Configuration loaded" log item.Darren Salt
2010-04-08Merge from 1.1.Darren Salt
--HG-- rename : include/xine.h.in => include/xine.h rename : src/xine-engine/video_out.h => include/xine/video_out.h
2010-04-08Add support for Xv gamma adjustment.Darren Salt
2010-03-24Merge from 1.1.Darren Salt
--HG-- rename : doc/hackersguide/internals.sgml => doc/hackersguide/internals.docbook rename : doc/hackersguide/library.sgml => doc/hackersguide/library.docbook rename : include/xine.h.in => include/xine.h rename : src/xine-engine/buffer.h => include/xine/buffer.h rename : src/demuxers/demux_ogg.c => src/combined/xine_ogg_demuxer.c
2010-03-23Added new audio buffer type (EAC3)Petri Hintukainen
2010-03-09Include accel_vdpau.h in tarballs.Darren Salt
2010-02-27libxdg-basedir requires $HOME to be set, so make sure that it's set.Darren Salt
2010-02-23Merge from 1.1.Darren Salt
--HG-- rename : src/xine-engine/buffer.h => include/xine/buffer.h rename : src/libxineadec/xine_lpcm_decoder.c => src/audio_dec/xine_lpcm_decoder.c
2009-09-15Add locking for when adjusting audio frame discarding.Roger Scott
2010-02-23Prevent discard_{frames,buffers} from going negative.Darren Salt
Based on patches from Roger Scott <ras351@hotmail.com>.
2010-02-21WMAPro supportChristopher Martin
Rename "wmav3" to "wmapro" in xine-lib's internals to line up xine-lib's nomenclature with what everyone else calls it and knows it as. [Tweaked by ds to avoid API change.] Tell xine-lib that when it finds wmapro, look to ffmpeg. ffmpeg's wmapro decoder is unique in that it puts out samples that are floats, not 16-bit ints. These need to be converted. This requires external ffmpeg.
2010-02-04Fix a ticket-related memory leak.Darren Salt
2010-01-14Merge.Darren Salt
2010-01-14Backed out changeset fd48f5a5841d (discontinuity handling for short streams ↵Darren Salt
+ gapless).
2009-12-01Fork failure messages shouldn't be debug-only.Darren Salt
2009-11-30Trim trailing space & reduce space+tab.Darren Salt
2009-10-13#include guards and __attribute__ fixupsCarlo Bramini
2009-09-14Protected access to stream->demux_action_pendingIan Rae
The deadlock was caused by the unprotected use of stream->demux_action_pending internal variable from play_internal() and from within the demuxer loop. Direct access to demux_action_pending is replaced with _x_action_raise() and _x_action_lower(), which use a mutex for thread safety.
2010-02-06Merge from 1.1.Darren Salt
--HG-- rename : src/combined/decoder_wavpack.c => src/combined/wavpack_decoder.c rename : src/demuxers/demux_ogg.c => src/combined/xine_ogg_demuxer.c
2010-01-23Fix up convenience interface library building (with older build tools).Darren Salt
2010-01-21Create libxine-interface.la and make libxine.la weakly provide it.Darren Salt
This reduces requirements of plugins etc., hopefully where possible and without breakage. (Works on Linux.)
2010-01-15Merge from 1.2 main.Darren Salt
2010-01-14Merge from 1.1.Darren Salt
2010-01-08Merge from 1.2 main.Darren Salt
2010-01-06Update to libxdg-basedir 1.0.2; adapt accordingly, and default to external.Darren Salt
2009-12-17Merge from 1.2 main.Darren Salt