Age | Commit message (Collapse) | Author |
|
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.
|
|
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().
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
|
|
|
|
Altivec code.
|
|
Two of the modified files are headers, but each contains definitions as well as
declarations and is only ever used once.
|
|
|
|
to be video_overlay.
|
|
|
|
|
|
get along that well.
|
|
|
|
|
|
|
|
libdir for plugins installation.
With this change, it avoids running an egrep command for every directory
at uninstall time; the for has way less impact as the list can just be
empty.
|
|
|
|
This reduces the number of objects that are allowed to contain
TEXT section relocations (skipping for instance libxine and the
vidix drivers).
This is still suboptimal because only those plugins that actually
contains text relocation should be allowed to contain them (that
is what is done with IMPURE_TEXT_LDFLAGS for Solaris and Darwin).
|
|
correct location.
|
|
Together with this, define a xinepost_LTLIBRARIES class that is used
to install the post-plugins in the correct directory.
Also add the rule to remove them.
|
|
|
|
|
|
Checked snd_pcm_delay return code, and don't trust negative values.
|
|
rescanned now.
|
|
|
|
|
|
|
|
Use xineplug_LTLIBRARIES.
--HG--
rename : src/libsputext/xine_decoder.c => src/libsputext/xine_sputext_decoder.c
|
|
Use xineplug_LTLIBRARIES.
--HG--
rename : src/libspudvb/xine_decoder.c => src/libspudvb/xine_spudvb_decoder.c
|
|
Use xineplug_LTLIBRARIES.
--HG--
rename : src/libspudec/xine_decoder.c => src/libspudec/xine_spu_decoder.c
|
|
Use xineplug_LTLIBRARIES.
--HG--
rename : src/libspucmml/xine_decoder.c => src/libspucmml/xine_cmml_decoder.c
|
|
Use xineplug_LTLIBRARIES.
--HG--
rename : src/libspucc/xine_decoder.c => src/libspucc/xine_cc_decoder.c
|
|
Use xineplug_LTLIBRARIES.
--HG--
rename : src/libmusepack/xine_decoder.c => src/libmusepack/xine_musepack_decoder.c
|
|
Use xineplug_LTLIBRARIES.
--HG--
rename : src/libmpeg2new/xine_decoder.c => src/libmpeg2new/xine_mpeg2new_decoder.c
|
|
Use xineplug_LTLIBRARIES.
--HG--
rename : src/libmpeg2/xine_decoder.c => src/libmpeg2/xine_mpeg2_decoder.c
|
|
--HG--
rename : src/libreal/audio_decoder.c => src/libreal/xine_real_audio_decoder.c
rename : src/libreal/xine_decoder.c => src/libreal/xine_real_video_decoder.c
|
|
--HG--
rename : src/libspeex/xine_decoder.c => src/libxineadec/xine_speex_decoder.c
|
|
--HG--
rename : src/libtheora/xine_decoder.c => src/libxinevdec/xine_theora_decoder.c
|
|
--HG--
rename : src/libvorbis/xine_decoder.c => src/libxineadec/xine_vorbis_decoder.c
|
|
Use xineplug_LTLIBRARIES.
--HG--
rename : src/libmad/xine_decoder.c => src/libmad/xine_mad_decoder.c
|
|
--HG--
rename : src/liblpcm/xine_decoder.c => src/libxineadec/xine_lpcm_decoder.c
|
|
|
|
Use xineplug_LTLIBRARIES.
--HG--
rename : src/libfaad/xine_decoder.c => src/libfaad/xine_faad_decoder.c
|
|
Use xineplug_LTLIBRARIES.
--HG--
rename : src/libdts/xine_decoder.c => src/libdts/xine_dts_decoder.c
|
|
Use xineplug_LTLIBRARIES.
--HG--
rename : src/liba52/xine_decoder.c => src/liba52/xine_a52_decoder.c
|
|
source files.
This way when you get a backtrace, video_decoder.c is never the FFmpeg one.
--HG--
rename : src/libffmpeg/audio_decoder.c => src/libffmpeg/ff_audio_decoder.c
rename : src/libffmpeg/dvaudio_decoder.c => src/libffmpeg/ff_dvaudio_decoder.c
rename : src/libffmpeg/mpeg_parser.c => src/libffmpeg/ff_mpeg_parser.c
rename : src/libffmpeg/mpeg_parser.h => src/libffmpeg/ff_mpeg_parser.h
rename : src/libffmpeg/video_decoder.c => src/libffmpeg/ff_video_decoder.c
rename : src/libffmpeg/xine_decoder.c => src/libffmpeg/ffmpeg_decoder.c
rename : src/libffmpeg/xine_decoder.h => src/libffmpeg/ffmpeg_decoder.h
rename : src/libffmpeg/xine_encoder.c => src/libffmpeg/ffmpeg_encoder.c
|
|
--HG--
rename : src/libflac/decoder_flac.c => src/combined/decoder_flac.c
rename : src/libflac/demux_flac.c => src/combined/demux_flac.c
rename : src/libflac/demux_flac.h => src/combined/demux_flac.h
|