summaryrefslogtreecommitdiff
path: root/src/xine-engine/demux.c
AgeCommit message (Collapse)Author
2013-09-13Copyright year update by hg log infoTorsten Jager
script execution time: 55"
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-21Remove duplicate codeLorenzo Desole
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.
2009-11-30Trim trailing space & reduce space+tab.Darren Salt
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.
2009-11-30Trim trailing space & reduce space+tab.Darren Salt
2009-08-05Merge from 1.1.Darren Salt
--HG-- rename : src/libmusepack/xine_musepack_decoder.c => src/audio_dec/xine_musepack_decoder.c
2009-06-07Fix _x_compute_interval for OS X.Matthias Ringwald
The new _x_compute_interval functions uses clock_gettime() which is not provided on OS X. If _POSIX_TIMERS is not defined, use the older gettimeofday().
2009-04-22Demux timing fixes (Windows)Carlo Bramini
m4/pthreads.m4 * Mingw GCC says that '-pthread' option is unknown. * Correct library name under Mingw is -lpthreadGC2. src/xine-engine/demux.c * function _x_compute_interval cannot be compiled
2009-03-03Merge from 1.1.Darren Salt
--HG-- rename : src/libmpeg2new/include/Makefile.am => src/video_dec/libmpeg2new/include/Makefile.am rename : src/libmpeg2new/libmpeg2/Makefile.am => src/video_dec/libmpeg2new/libmpeg2/Makefile.am
2009-02-24Make _x_compute_interval static (never exported).Diego E. 'Flameeyes' Pettenò
2009-02-10Merge from 1.1.Darren Salt
--HG-- rename : doc/faq/faq.sgml => doc/faq/faq.docbook rename : src/xine-engine/buffer.h => include/xine/buffer.h rename : src/xine-engine/xine_internal.h => include/xine/xine_internal.h
2009-02-09demux_unstick_ao_loop() reports that xine might be stuck != is stuckLorenzo Desole
Don't give up immediately if demux_unstick_ao_loop() reports that xine might be stuck, because it's not necessarily so. According to my tests, this fixes http://bugs.kde.org/show_bug.cgi?id=180339#c42 and http://bugs.debian.org/514114. This has been tested with Amarok and kde 4.1.x (with phonon) and kaffeine.
2009-02-09Fix race conditions in gapless_switch (ref. kde bug #180339)Miguel Freitas
2009-02-08Remove a break which causes some front ends to hang. (cset ce60f8b5995a)Darren Salt
(If this causes xine-lib to hang on certain broken streams, we have a problem.)
2009-01-18Merge from 1.1.Darren Salt
--HG-- rename : src/libxineadec/gsm610/long_term.c => contrib/gsm610/long_term.c rename : src/libxineadec/gsm610/lpc.c => contrib/gsm610/lpc.c rename : src/libxineadec/gsm610/rpe.c => contrib/gsm610/rpe.c rename : src/libxineadec/gsm610/short_term.c => contrib/gsm610/short_term.c rename : src/libfaad/common.h => contrib/libfaad/common.h rename : src/xine-engine/broadcaster.h => include/xine/broadcaster.h rename : src/xine-engine/buffer.h => include/xine/buffer.h rename : src/xine-engine/refcounter.h => include/xine/refcounter.h rename : src/xine-engine/video_out.h => include/xine/video_out.h rename : src/xine-engine/vo_scale.h => include/xine/vo_scale.h rename : src/xine-utils/xineutils.h => include/xine/xineutils.h rename : src/libxineadec/fooaudio.c => src/audio_dec/fooaudio.c rename : src/liba52/xine_a52_decoder.c => src/audio_dec/xine_a52_decoder.c rename : src/libdts/xine_dts_decoder.c => src/audio_dec/xine_dts_decoder.c rename : src/libfaad/xine_faad_decoder.c => src/audio_dec/xine_faad_decoder.c rename : src/libxineadec/xine_lpcm_decoder.c => src/audio_dec/xine_lpcm_decoder.c rename : src/libmad/xine_mad_decoder.c => src/audio_dec/xine_mad_decoder.c rename : src/libmusepack/xine_musepack_decoder.c => src/audio_dec/xine_musepack_decoder.c rename : src/libxineadec/nsf.c => src/combined/nsf_decoder.c rename : src/libspucc/cc_decoder.c => src/spu_dec/cc_decoder.c rename : src/libspudec/xine_spu_decoder.c => src/spu_dec/spu_decoder.c rename : src/libspudec/spu.c => src/spu_dec/spudec.c rename : src/libspudec/spu.h => src/spu_dec/spudec.h rename : src/libsputext/xine_sputext_decoder.c => src/spu_dec/sputext_decoder.c rename : src/libspucc/xine_cc_decoder.c => src/spu_dec/xine_cc_decoder.c rename : src/libxinevdec/bitplane.c => src/video_dec/bitplane.c rename : src/libxinevdec/foovideo.c => src/video_dec/foovideo.c rename : src/libxinevdec/gdkpixbuf.c => src/video_dec/gdkpixbuf.c rename : src/libxinevdec/image.c => src/video_dec/image.c rename : src/libmpeg2/slice_xvmc_vld.c => src/video_dec/libmpeg2/slice_xvmc_vld.c rename : src/libmpeg2/xine_mpeg2_decoder.c => src/video_dec/libmpeg2/xine_mpeg2_decoder.c rename : src/libmpeg2new/include/Makefile.am => src/video_dec/libmpeg2new/include/Makefile.am rename : src/libmpeg2new/libmpeg2/motion_comp_vis.c => src/video_dec/libmpeg2new/libmpeg2/motion_comp_vis.c rename : src/libmpeg2new/xine_mpeg2new_decoder.c => src/video_dec/libmpeg2new/xine_mpeg2new_decoder.c rename : src/libxinevdec/rgb.c => src/video_dec/rgb.c rename : src/libxinevdec/yuv.c => src/video_dec/yuv.c
2009-01-18Remove '#include "config.h"' from all public header files.Darren Salt
This requires that many other files include config.h themselves. Also convert <config.h> to "config.h".
2009-01-02Merge from 1.1.Darren Salt
--HG-- rename : include/xine.h.in => include/xine.h rename : src/libspudvb/xine_spudvb_decoder.c => src/spu_dec/spudvb_decoder.c
2009-01-02Prevent another possible hang on stream stop (demuxer waiting for audio out).Darren Salt
The test stream sometimes causes the ASF demuxer to report "unknown GUID" several times then act as if the headers have been received, with the audio output thread waiting forever for data to be passed to it by the decoder, in this case the ffmpeg audio decoder. This particular hang occurs if playback is stopped before the demuxer has decided that headers have been received (later, and we'd have the problem which the parent cset of this cset fixes); having the demuxer control insert empty audio buffers where it would otherwise wait forever for the audio output thread to receive some data. Test stream: mmsh://213.92.19.8:80/radiodeejay?MSWMExt=.asf
2008-05-29Merge from 1.1.Darren Salt
--HG-- rename : src/xine-utils/array.h => include/xine/array.h rename : src/xine-utils/attributes.h => include/xine/attributes.h rename : src/xine-engine/audio_out.h => include/xine/audio_out.h rename : src/xine-engine/broadcaster.h => include/xine/broadcaster.h rename : src/xine-engine/buffer.h => include/xine/buffer.h rename : src/xine-engine/configfile.h => include/xine/configfile.h rename : src/xine-utils/list.h => include/xine/list.h rename : src/xine-engine/metronom.h => include/xine/metronom.h rename : src/xine-engine/osd.h => include/xine/osd.h rename : src/xine-utils/pool.h => include/xine/pool.h rename : src/xine-engine/refcounter.h => include/xine/refcounter.h rename : src/xine-utils/ring_buffer.h => include/xine/ring_buffer.h rename : src/xine-engine/scratch.h => include/xine/scratch.h rename : src/xine-utils/sorted_array.h => include/xine/sorted_array.h rename : src/xine-engine/video_out.h => include/xine/video_out.h rename : src/xine-engine/video_overlay.h => include/xine/video_overlay.h rename : src/xine-engine/xine_internal.h => include/xine/xine_internal.h rename : src/xine-utils/xineutils.h => include/xine/xineutils.h rename : src/libspucc/cc_decoder.c => src/spu_dec/cc_decoder.c
2008-05-23Remove MIN/MAX macro definitions on unit.Diego 'Flameeyes' Pettenò
Now that the macro are either imported from the system or defined by configure. don't define them in every source file.
2008-05-23Merge from 1.1. VDR needs to be updated.Diego 'Flameeyes' Pettenò
--HG-- rename : src/liba52/parse.c => contrib/a52dec/parse.c rename : include/xine.h.in => include/xine.h rename : src/xine-engine/alphablend.h => include/xine/alphablend.h rename : src/xine-utils/attributes.h => include/xine/attributes.h rename : src/xine-engine/buffer.h => include/xine/buffer.h rename : src/input/input_plugin.h => include/xine/input_plugin.h rename : src/xine-utils/xineutils.h => include/xine/xineutils.h rename : src/libxineadec/fooaudio.c => src/audio_dec/fooaudio.c rename : src/libxineadec/gsm610.c => src/audio_dec/gsm610.c rename : src/liba52/xine_a52_decoder.c => src/audio_dec/xine_a52_decoder.c rename : src/libdts/xine_dts_decoder.c => src/audio_dec/xine_dts_decoder.c rename : src/libfaad/xine_faad_decoder.c => src/audio_dec/xine_faad_decoder.c rename : src/libxineadec/xine_lpcm_decoder.c => src/audio_dec/xine_lpcm_decoder.c rename : src/libmad/xine_mad_decoder.c => src/audio_dec/xine_mad_decoder.c rename : src/libmusepack/xine_musepack_decoder.c => src/audio_dec/xine_musepack_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/libxineadec/nsf.c => src/combined/nsf_decoder.c rename : src/demuxers/demux_nsf.c => src/combined/nsf_demuxer.c rename : src/combined/combined_wavpack.h => src/combined/wavpack_combined.h rename : src/combined/decoder_wavpack.c => src/combined/wavpack_decoder.c rename : src/combined/demux_wavpack.c => src/combined/wavpack_demuxer.c rename : src/demuxers/demux_ogg.c => src/combined/xine_ogg_demuxer.c rename : src/libxineadec/xine_speex_decoder.c => src/combined/xine_speex_decoder.c rename : src/libxinevdec/xine_theora_decoder.c => src/combined/xine_theora_decoder.c rename : src/libxineadec/xine_vorbis_decoder.c => src/combined/xine_vorbis_decoder.c rename : src/libspucc/cc_decoder.c => src/spu_dec/cc_decoder.c rename : src/libspucmml/xine_cmml_decoder.c => src/spu_dec/cmml_decoder.c rename : src/libspudec/xine_spu_decoder.c => src/spu_dec/spu_decoder.c rename : src/libspudec/spu.c => src/spu_dec/spudec.c rename : src/libspudvb/xine_spudvb_decoder.c => src/spu_dec/spudvb_decoder.c rename : src/libsputext/xine_sputext_decoder.c => src/spu_dec/sputext_decoder.c rename : src/libsputext/demux_sputext.c => src/spu_dec/sputext_demuxer.c rename : src/libspucc/xine_cc_decoder.c => src/spu_dec/xine_cc_decoder.c rename : src/libxinevdec/bitplane.c => src/video_dec/bitplane.c rename : src/libxinevdec/foovideo.c => src/video_dec/foovideo.c rename : src/libxinevdec/gdkpixbuf.c => src/video_dec/gdkpixbuf.c rename : src/libxinevdec/image.c => src/video_dec/image.c rename : src/libmpeg2/xine_mpeg2_decoder.c => src/video_dec/libmpeg2/xine_mpeg2_decoder.c rename : src/libxinevdec/rgb.c => src/video_dec/rgb.c rename : src/libxinevdec/yuv.c => src/video_dec/yuv.c
2008-05-09Use size_t to keep the value returned by strlen().Diego 'Flameeyes' Pettenò
When using a variable to store the result of strlen(), make sure its type is size_t just like the function returns, rather than using a smaller type like int. --HG-- extra : transplant_source : %B0%D5%3B%D7%1Dy%0A%7E%7D%7C%023%08%B2%CE%D3t%0B3%D7
2008-05-07xine_xmalloc() deprecation: replace its use with static and non-zero size.Diego 'Flameeyes' Pettenò
The xine_xmalloc() function is going to be deprecated, as its behaviour is rarely needed as such, and it's thus misused. With this, almost all uses of xine_xmalloc() with static size (for instance the value returned by sizeof()) or with a size that is guaranteed not to be zero (like strlen()+1) are replaced with calls to either calloc(1, ...) or malloc(). malloc() is used whenever the allocated memory is going to be immediately overwritten, while calloc() is used in every other case, as it sets the whole memory area to zero. --HG-- extra : transplant_source : %8F%98%EC%02%1E%83%F0s%06X%83C%205Y%80%B12%CC%E1
2008-03-12Merge from 1.1.Darren Salt
--HG-- rename : doc/faq/faq.sgml => doc/faq/faq.docbook rename : src/xine-engine/xine_internal.h => include/xine/xine_internal.h rename : src/libffmpeg/Makefile.am => src/combined/ffmpeg/Makefile.am rename : src/demuxers/demux_ogg.c => src/combined/xine_ogg_demuxer.c
2008-03-10Fixed long delay when closing stream on dual core systems [Bug #33]Miguel Freitas
2007-12-19Update all the code to the new headers layout.Diego 'Flameeyes' Pettenò
2007-12-18Fix MRL protocol matching (for demuxer lookup).Darren Salt
2007-12-13Make _x_demux_read_header accept a void* as pointer to buffer.Diego 'Flameeyes' Pettenò
Removes some warnings in demuxers.
2007-12-11Check if a dot was found before dereferencing the pointer.Diego 'Flameeyes' Pettenò
2007-12-11Make _x_demux_check_extension check for protocol prefixes too if :/ is in ↵Diego 'Flameeyes' Pettenò
the string.
2007-12-11Let _x_demux_check_extension() consider empty extensions string as an ↵Diego 'Flameeyes' Pettenò
always-pass.
2007-11-10Delete most of the CVS $Id$/$Log$ lines.Darren Salt
--HG-- extra : transplant_source : %E0%D0%C5%8B%BEU%DD%24%5D7%1F%ADV%AD%EB%23%CBU%80%EB
2007-11-09Update FSF address on non-contributed code and COPYING files.Diego 'Flameeyes' Pettenò
For contributed code, leave whatever the version we last synced for is using to make simpler future syncs.
2007-01-18Make _x_demux_check_extension() accept constant strings.Diego 'Flameeyes' Pettenò
CVS patchset: 8520 CVS date: 2007/01/18 23:28:46
2006-12-03should fix bug reported by Christophe Thommeret where avi+subtitlesxine-1_1_3-release1.1.3Miguel Freitas
(actually master/slave streams) could cause demux to get into an endless loop. CVS patchset: 8401 CVS date: 2006/12/03 19:23:16
2006-08-13move image presentation support to xine-libMiguel Freitas
CVS patchset: 8180 CVS date: 2006/08/13 23:51:33
2006-08-08new mutex to synchronize order of pairwise A/V buffer operationsMiguel Freitas
by Reinhard Nissl CVS patchset: 8167 CVS date: 2006/08/08 03:25:03
2006-04-051) various warning fixesFrantišek Dvořák
2) [coverity] fixes: - 279 (w32): test should be on input parametr type, not typeW - 267 (aout): can be ignored but there was warning anyway - 234 (w32): missing free on error & exit - 152 (w32): missing free on error & exit - 148 (w32): fixed bound of static array in test - 101 (ffdec): defense code when avodec_encode_video will fail (just defense to the future, should never happen with current ffmpeg in xine) - 98, 99 (w32): check negative handle by _x_assert (it's used as index to array) - 90 (w32): negate pointer check (+added check for size) - 89 (w32): added NULL and size check CVS patchset: 7959 CVS date: 2006/04/05 22:12:17
2006-01-24A bit of defensive programming to protect "_x_demux_send_data" and ↵Mathieu Olivier
"_x_demux_read_send_data" from negative "size" parameters CVS patchset: 7843 CVS date: 2006/01/24 22:25:34
2005-10-30gapless playback stream switching supportMiguel Freitas
CVS patchset: 7784 CVS date: 2005/10/30 02:18:35
2005-08-25*BUGFIX*František Dvořák
Windows ports fixes and improvements due to my current work on toxine: - first experiments with external win32 pthreads, more portable code (pthread_t may be a struct) - headers refactored - moved dirent win32 replacement to lib/, hide it for frontends, used system version, if found, not used non-POSIX dirent->d_reclen (this item doesn't work in MinGW), fix memleak in dvb - separated settings for postproc and avcodec when using external ffmpeg - check for malloc.h in public xine.m4, used it conditionally in xine headers - replaced random() by POSIX more common rand() - prevent one segfault in directx vo plugin, if fails - M$VC port update CVS patchset: 7709 CVS date: 2005/08/25 15:36:29
2005-07-17Improve ASX parsing.Darren Salt
Add an extended MRL reference event which includes the item title, start time and duration. (Both events are sent; front ends should only listen for one of them.) CVS patchset: 7656 CVS date: 2005/07/17 23:11:33
2005-03-20Fixed problem when play_internal called _x_demux_start_thread and the ↵Thibaut Mattern
previous demux thread has not been joined. CVS patchset: 7442 CVS date: 2005/03/20 18:41:55
2005-03-06Fixed pthread leak, the demuxer thread was not joined in all cases.Thibaut Mattern
See this thread for more info: http://thread.gmane.org/gmane.comp.video.xine.devel/12377 CVS patchset: 7432 CVS date: 2005/03/06 11:08:40
2005-02-10**BUGFIX**Michael Roitzsch
prevent a possible deadlock situation by un-nesting the resource locking CVS patchset: 7397 CVS date: 2005/02/10 11:33:31
2004-12-19stop stream if audio device failed to open. user receives a notificationMiguel Freitas
and should check if any other application is using the device. CVS patchset: 7282 CVS date: 2004/12/19 20:24:30
2004-10-30fixed seeking unresponsiveness when using external subtitlesMiguel Freitas
do not flush slave subtitle streams. since the output ports are the same for both streams, they will get flushed twice causing frames to be discarded. (possible improvement: check if slave output port is the same as master's) CVS patchset: 7089 CVS date: 2004/10/30 12:45:26
2004-10-27flush on end of streamMiguel Freitas
CVS patchset: 7080 CVS date: 2004/10/27 16:41:34