Age | Commit message (Collapse) | Author |
|
For smooth operation of frame displaying on platforms with less processing power
(and in preparation for a new frame grabbing extension) the vdpau display queue length,
which is actually fixed at size 2, could now be increased by configuration. There is a new
configuration parameter 'video.output.vdpau_display_queue_length' with default value of 2.
Maximum queue length is 8. Increasing this parameter by 1 should almost be enough.
--HG--
extra : rebase_source : b8d045053d744b6693c50e4a8d81199ba7f315e2
|
|
The new implementation has the following advantages towards the existing one:
There is now a unique processing of RLE coded images and ARGB based overlay images.
For both formats scaled and unscaled images and a video window are supported.
Both formats are rendered now in given order into the same output surfaces not using
a dedicated output surface for ARGB images any more.
Processing of YCBCR overlay images now uses corresponding vdpau bitmap surfaces
eliminating the existing (possible slower) conversation to RGB images.
Optimized processing of first overlay from stack avoiding unnecessary surface initialization and rendering operations.
Currently the new implementation does not take the dirty rect information of a ARGB overlay into account for optimization (but is there actually a existing player implementation that provides this data?).
--HG--
extra : rebase_source : 037f67efdabb0b197e4d1ea2ce14d15f3eb3d8fe
|
|
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
|
|
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.
|
|
Intercepted frames should never pass function vdpau_update_frame_format.
--HG--
extra : rebase_source : d1d05b67865eb6cc79225f96159184852f239262
|
|
--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
|
|
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
|
|
When using pitch 0 it is sufficient to allocate just a single row.
--HG--
extra : rebase_source : 47b554da704a5c6fc073fee587a968145d3fa230
|
|
--HG--
extra : rebase_source : 686c74f934f4f780d08909c24238114cc9f64f4c
|
|
As both types have the same signature, there was error during build
nor at runtime.
--HG--
extra : rebase_source : 125cbc9417554303cc6a3c04dfedfedcdcc4710b
|
|
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
|
|
|
|
Useful for example when composite managers occupy the HW.
|
|
|
|
|
|
Source: informational messages generated by lintian.
|
|
Recently I've posted a patch for xine-ui which uses a timed lock to avoid a
deadlock when the output callback happens while changing the drawable. It is
possible to avoid this deadlock at all by moving the drawable lock (and the
reinit call which it is not necessary for the callback) after the callback.
As a result the mentioned patch for xine-ui may be reverted.
|
|
It is known to everyone that locking serveral resources requires a consistent
order on all places where these resources are required. Otherwise a deadlock
will happen.
|
|
At least two threads operate on the drawable -- the video output thread and
the xine-ui gui thread. When xine-ui changes the drawable while the output
thread is displaying a frame it is likely that the video output thread
triggers the X11 error bad drawable. Usually XLockDisplay() is used to
synchronize these threads but it causes too much impact and should only be
used to implement short atomic operations. In this case scheduling two
fields of a frame for displaying may take at least one field duration which
is quite a long time. Therefore a separate mutex is used for synchronizing
those threads.
|
|
|
|
|
|
|
|
--HG--
extra : rebase_source : 74bbd9ee7e0732ce16838356a666a07c9a44acd4
|
|
|
|
--HG--
rename : include/xine.h.in => include/xine.h
rename : src/xine-engine/video_out.h => include/xine/video_out.h
|
|
|
|
|
|
There's a rendering bug when using the opengl fragment program if the width
of the video is not a multiple of 16.
U and V channels will have padding on each row because they always have
pitches which are a multiple of 8, glTexSubImage2D will copy the padding
data to the texture and the U & V channels will be skewed. The same also
applies to the Y channel when width is not a multiple of 8. Fixed by
passing pitch to glTexSubImage2D instead of width.
The U & V channels also have to be outlined in grey on the texture and if
there's padding then we need to add the line on the right to every frame
before calling glTexSubImage.
It also looks like the location of the V channel in the texture was off by
one pixel in the call to glProgramEnvParameter4fARB.
--HG--
extra : rebase_source : 1984e493f77e80081e55b7c3b816d3baea965e4e
|
|
|
|
|
|
|
|
Plasma TV users have the problem that black border pixels age differently
compared to active image pixel in the center of the screen. Changing the
background color for example to gray makes the border pixels age almost
equally like the image pixels. As a result image brightness will change
more equally over TV's lifetime.
|
|
|
|
|
|
still frames are marked by the decoder and the video_out will not deinterlace if the flag is set.
|
|
|
|
|
|
|
|
|
|
colors.
|
|
--HG--
rename : include/xine.h.in => include/xine.h
rename : src/xine-engine/osd.h => include/xine/osd.h
rename : src/xine-engine/video_out.h => include/xine/video_out.h
rename : src/libspudvb/xine_spudvb_decoder.c => src/spu_dec/spudvb_decoder.c
rename : src/libvdpau/Makefile.am => src/video_dec/libvdpau/Makefile.am
rename : src/libvdpau/bits_reader.h => src/video_dec/libvdpau/bits_reader.h
rename : src/libvdpau/dpb.c => src/video_dec/libvdpau/dpb.c
rename : src/libvdpau/dpb.h => src/video_dec/libvdpau/dpb.h
rename : src/libvdpau/h264_parser.c => src/video_dec/libvdpau/h264_parser.c
rename : src/libvdpau/h264_parser.h => src/video_dec/libvdpau/h264_parser.h
rename : src/libvdpau/nal.c => src/video_dec/libvdpau/nal.c
rename : src/libvdpau/nal.h => src/video_dec/libvdpau/nal.h
rename : src/libvdpau/vdpau_h264.c => src/video_dec/libvdpau/vdpau_h264.c
rename : src/libvdpau/vdpau_mpeg12.c => src/video_dec/libvdpau/vdpau_mpeg12.c
rename : src/libvdpau/vdpau_vc1.c => src/video_dec/libvdpau/vdpau_vc1.c
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|