Age | Commit message (Collapse) | Author |
|
|
|
|
|
--HG--
rename : src/libspudvb/xine_spudvb_decoder.c => src/spu_dec/spudvb_decoder.c
|
|
It's only a cosmetic change.
--HG--
extra : rebase_source : a759588226bbc43bca331c746d14ec2e2d84c9a4
|
|
The current osd and grab logic needs a lot of output surface objects
for rendering.
The current implementation create and destroy these objects on demand.
This patch introduce a new buffer where output surfaces are hold for
reuse preventing most of the create and destroy calls.
The size of the new buffer could be configured with parameter
"video.output.vdpau_output_surface_buffer_size".
Default value is 10 surfaces. Possible range is 2...25
To further minimize surface creation and destroy the first n created surfaces
get a minimum size according to the actual display and frame size where n
is the size of the surface buffer.
These first objects will be allocated as rather big surfaces so that they
fit for most of the surface requests.
This should be considered when choosing higher buffer values.
This patch also improves dirty rect handling within osd handling.
Now dirty rect information is used even if more than one osd
object is displayed at the same time.
--HG--
extra : rebase_source : b40e365ab1f81ebdd72b2e1713cf3526d6dd7493
|
|
actual display dimension
To minimize output surface reallocation while resizing the video window
these output surfaces are now allocated with the actual display
dimension.
--HG--
extra : rebase_source : 41e16c3f5bc0c66e1c3e63221f0cc38ffe9d08be
|
|
Because displayed output surfaces are only increased in size when gui
window dimension changes the surface size could be greater than the
actual gui window size.
--HG--
extra : rebase_source : 4f7be362af8ccfe5851900bda095d0949d1c6e15
|
|
for grab feature of vdpau output driver
Fixed usage of wrong variables to determine current gui output window size for grab feature of vdpau output driver
--HG--
extra : rebase_source : f605be7e19142756f3ab388e558d8e65e3ddba5d
|
|
|
|
|
|
|
|
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 surface not using
a dedicated output surface for scaled, unscaled and ARGB images any more.
Processing of YCBCR overlay images now uses corresponding vdpau upload functions
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 only take the dirty rect
information of a ARGB overlay into account for optimization
if this is the only one object that should be displayed.
|
|
--HG--
rename : src/libdts/xine_dts_decoder.c => src/audio_dec/xine_dts_decoder.c
rename : src/libxineadec/xine_lpcm_decoder.c => src/audio_dec/xine_lpcm_decoder.c
rename : src/combined/decoder_flac.c => src/combined/flac_decoder.c
rename : src/combined/demux_flac.c => src/combined/flac_demuxer.c
rename : src/libsputext/xine_sputext_decoder.c => src/spu_dec/sputext_decoder.c
|
|
--HG--
branch : point-release
|
|
--HG--
branch : point-release
|
|
--HG--
branch : point-release
|
|
--HG--
branch : point-release
|
|
--HG--
branch : point-release
|
|
--HG--
branch : point-release
|
|
|
|
|
|
|
|
|
|
--HG--
rename : src/xine-utils/attributes.h => include/xine/attributes.h
rename : src/xine-engine/xine_internal.h => include/xine/xine_internal.h
rename : src/xine-utils/xineutils.h => include/xine/xineutils.h
|
|
xine_socket_cloexec() function.
|
|
This patch creates two utility functions:
int open_cloexec(pathname, flags)
int create_cloexec(pathname, flags, mode)
These return a file descriptor with the CLOEXEC flag set, to ensure
that the descriptor is not inherited across a fork/exec operation.
The sockets returned by:
_x_io_tcp_connect_ipv4()
_x_io_tcp_connect()
now also have their CLOEXEC flag set.
|
|
--HG--
rename : src/libxineadec/xine_lpcm_decoder.c => src/audio_dec/xine_lpcm_decoder.c
|
|
|
|
|
|
In opposite to the 'xine_get_current_frame' based snapshot function this grabbing
feature allow continuous grabbing of last or next displayed video frame.
Grabbed video frames are returned in simple three byte RGB format.
Depending on the capabilities of the used video output driver video image data is
taken as close as possible at the end of the video processing chain. Thus a returned
video image could contain the blended OSD data, is deinterlaced, cropped and scaled
and video properties like hue, sat could be applied.
With this patch such a decent grabbing feature is implemented for vdpau video out driver.
If a video output driver does not have a decent grabbing implementation then there
is a generic fallback feature that grabs the video frame as they are taken from the video
display queue (like the xine_get_current_frame' function).
In this case color correct conversation to a RGB image incorporating source cropping and
scaling to the requested grab size is also supported.
A more detailed description can be found in file "xine.h".
|
|
|
|
|
|
|
|
|
|
actual video format (SD or HDTV) for vdpau output driver.
With the new configuration parameter 'video.output.vdpau_sd_only_properties" enabling of this video properties can be restricted
to SD video only. Videos with a frame width < 800 are considered as SD videos.
Often noise and sharpness corrections are only necessary for SD videos and are counterproductive to HDTV videos. With the restriction
enabled the user do not have to correct these settings each time the format changes.
--HG--
extra : rebase_source : 874a98cd3e9fc64084c0b5c2e9a7eec34414db2a
|
|
According to the nvidia vdpau documentation for the used formats in this function
there are no needs for special alignment for the fetched bitmap images . Thus we
can fetch the image data directly to the supplied image buffer avoiding heap memory allocation and additional copying of image data.
--HG--
extra : rebase_source : 0956eab8cd2f23ecc1452aa5ecc3db27fca635b9
|
|
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.
|
|
|