summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2011-03-02Recognize changes of cropping parameters within a frame and trigger ↵Andreas Auras
recalculation of displayed window. This issue comes up when a post plugin only changes the cropping parameters of a frame without changing width, height or ratio of the frame. --HG-- extra : rebase_source : 18832d5ec6acdb8ebe7a0d1d10ceaefb2aef663f
2011-03-02Recognize changes of cropping parameters within a frame and trigger ↵Andreas Auras
recalculation of displayed window. This issue comes up when a post plugin only changes the cropping parameters of a frame without changing width, height or ratio of the frame.
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-20vdpau_mpeg12: fix frame duration calculation when repeating frames or fields.Reinhard Nißl
Frame duration calculation for repeated frames or fields is now correct, but video_out_vdpau.c needs to be adjusted too, because for now it will show for example 1.5x top field and 1.5x bottom field instead of 1x top field, 1x bottom field and 1x top field again.
2011-02-16Make ff_video_decoder work together with input_vdr.c for MPEG2.Reinhard Nißl
input_vdr.c cannot send buffers with preview flag set after a decoder reset. Therefore, the decoder didn't get initialized anymore. So we need to call ff_handle_preview_buffer() even with real data as long as we are in decoder_init_mode to get a decoder initialized.
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-28Improve stability when decoding bad streams.Reinhard Nißl
VDPAU applies different constraints to surface size and memory consumption than xine. Hence, when decoding bad streams (due to receptions issues for examples) with broken image sizes, it is likely that segfaults happen due to different memory size assumptions. So by adjusting image size to meet xine and VDPAU constraints, segfaults can be avoided. --HG-- extra : rebase_source : c493fac162bb34ab357783821bc72be85682c1eb
2011-01-28Optimize memory usage when clearing surface.Reinhard Nißl
When using pitch 0 it is sufficient to allocate just a single row. --HG-- extra : rebase_source : 47b554da704a5c6fc073fee587a968145d3fa230
2011-01-28Fix pitches for clearing surface.Reinhard Nißl
--HG-- extra : rebase_source : 686c74f934f4f780d08909c24238114cc9f64f4c
2011-01-25Correct type of two VDPAU function pointers.Reinhard Nißl
As both types have the same signature, there was error during build nor at runtime. --HG-- extra : rebase_source : 125cbc9417554303cc6a3c04dfedfedcdcc4710b
2011-01-25Prevent deadlock caused by guarded_vdp_output_surface_destroy()Reinhard Nißl
guarded_vdp_output_surface_destroy() calls XLockDisplay() and XUnlockDisplay() always and not depending on define LOCKDISPLAY. This may cause a deadlock among threads using VDPAU API due to different resource allocation orders when guarding is not used (i. e. #undef LOCKDISPLAY is enabled). --HG-- extra : rebase_source : abafc9604d8cfb6efe07f665361c4e01e60adc37
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-23Remove incorrect enum value which caused a value shift of successorsReinhard Nißl
According to ITU-T Rec. H.264 (03/2005), Table D-1, there is no such indicated display of picture. As a result, succeeding enum constants were mapped to the wrong values.
2011-01-23Avoid "broken stream" message in vdpau_decoder_render, caused by decoder_initReinhard Nißl
The image allocated in decoder_init can immediately be freed after getting access to accel_data. Accessing the accel pointer afterwards is safe for non frame related functions although the frame has been freed as freed frames are not deallocated but put into a free frame queue.
2011-01-22Fix handling of H.264 end of sequence NAL unit for still imagesReinhard Nißl
Currently a parsed picture was only decoded when the parser came across a NAL unit which started a new picture (aka access unit). An end of sequence NAL unit must be handled like the access unit delimiter NAL unit, as both terminate the current access unit. Handling the end of sequence NAL unit in this way fixes displaying of still images which end in an end of seqeunce NAL unit. Otherwise they were not decoded at all (in case of a still frame) or the second field was missing (in case of a still image which had been coded as a pair of fields).
2011-01-21Fix parallel building (.deb packaging).Darren Salt
--HG-- extra : transplant_source : %D5%BC%1F%BAo%3A%88%CEOp%F4%83%B5%91%F1%C0H%C5%8E%40
2011-01-21Fix parallel building (.deb packaging).Darren Salt
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.
2011-01-20Fix pts handling after introduction of picture_ready()Reinhard Nißl
Transfer of seq_pts to img->pts takes now place at picture header of next image in decoding order. So far, seq_pts was set to cur_pts at sequence header and picture header. Hence, img->pts was incorrectly set to pts of next image in decoding order. Setting seq_pts only in picture header after call of picture_ready() keeps the correct pts in seq_pts until it has been transfered to img->pts. Furthermore, cur_pts of second field must be ignored as we put both fields into the same image so the image is due at pts of first field.
2010-12-12List .ass in supported in extensions too.František Dvořák
2010-12-12Add .ass extension to be recognized as subtitle file.František Dvořák
2010-12-08Fix field interlace completenessChristophe Thommeret
2010-11-28Add some more locking to work around libxcb bugsJulian Scheel
2010-11-04Properly initialise and finalise {Image,Graphics}Magick context.Darren Salt
--HG-- extra : rebase_source : 97225919cd1c6c2327ccbb43b17a6b049e82946c
2010-10-14Mention build-essential (for building .debs).Darren Salt
--HG-- extra : rebase_source : 0bd120fdf12785264b3241cd446aac01751327d9
2010-12-01Update nosefart to 2.7-mls, fixes xine bug #84.František Dvořák
There was added memory limits checks, which will improve stability when playing corrupted NSF files.
2010-11-30Typo in multipass compilation CFLAGS.František Dvořák
2010-11-30Check boundaries during MPEG TS stream detection.František Dvořák
2010-11-30Small memory leaks in VCD input plugin class.František Dvořák
2010-11-30Various small memory leaks in xine engine.František Dvořák
2010-11-28Header stripping support in matroska demuxer.František Dvořák
Reserved space on the start of block_data for the headers during reading to avoid temporary memory buffers and memcpy()'s.
2010-11-23Use the extension too for xine-list binary (for MinGW ports).František Dvořák
2010-11-23Build with -DLOG.František Dvořák
2010-11-10Update ChangeLog.František Dvořák
2010-11-10Option for disabling HW acceleration in directx.František Dvořák
Useful for example when composite managers occupy the HW.
2010-10-30Try to meassure memcpy method speed by clock() when times() not available.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 writing raw data, in disabled debug code.František Dvořák
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: update documentation.František Dvořák
2010-10-23mingw32-w64 port: integer sizes portabilityFrantišek Dvořák
- use type of enough size for pointer types (uintptr_t) - fixes "Unhandled exception" in memcpy code