summaryrefslogtreecommitdiff
path: root/src/xine-engine/metronom.c
AgeCommit message (Collapse)Author
2013-12-23Add metronom video pts debug string.Torsten Jager
2013-12-23Ignore invalid video frame rate in metronom.Torsten Jager
2013-12-18Fix metronom video drift compensation.Torsten Jager
Old code was broken in 2 ways: * It repeatedly multiplied drift by 29/30, thus never reaching 0. * If decoder does not always set vo_frame.duration, strange jumps appeared.
2013-09-13Copyright year update by hg log infoTorsten Jager
script execution time: 55"
2012-05-29Do not access master metronom data directly.Petri Hintukainen
Fixes problem with custom metronoms and metronom wrappers.
2012-05-29Fix race condition in master/slave metronom handling.Petri Hintukainen
Fixes race condition between got_*_packet() 's Fixes race condition between got_*_packet() and set_master() Fixes mixing data and member functions from different metronom instances.
2012-02-29Merge from 1.1Petri Hintukainen
2012-02-27Fixed race in metronom_get_option(): reading int64 is not atomic in 32-bit ↵Petri Hintukainen
systems
2010-01-14Merge from 1.1.Darren Salt
2010-01-14Merge.Darren Salt
2010-01-14Backed out changeset fd48f5a5841d (discontinuity handling for short streams ↵Darren Salt
+ gapless).
2009-11-30Trim trailing space & reduce space+tab.Darren Salt
2009-11-30Trim trailing space & reduce space+tab.Darren Salt
2009-04-26Merge from 1.1.Darren Salt
--HG-- rename : src/xine-engine/buffer.h => include/xine/buffer.h rename : src/libmad/xine_mad_decoder.c => src/audio_dec/xine_mad_decoder.c
2009-04-25Merge -gapless branch.Darren Salt
2009-04-25Revert indentation changes.Darren Salt
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-23Mark initialisation functions with malloc attribute.Diego 'Flameeyes' Pettenò
All the initialisation functions returning a new object instance that was allocated through malloc() or calloc() can get the malloc attribute so that the compiler can optimise their call.
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-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-01-10Fixed buggy discontinuity handling when playing short streams and using the ↵Thibaut Mattern
gapless switch. The current time should not be used here.
2007-12-19Update all the code to the new headers layout.Diego 'Flameeyes' Pettenò
2007-12-18Remove a memset after xine_xmalloc.Diego 'Flameeyes' Pettenò
2007-11-10Merge from 1.1.Darren Salt
--HG-- 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.c => src/combined/wavpack_combined.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/liba52/xine_a52_decoder.c => src/libxineadec/xine_a52_decoder.c rename : src/libdts/xine_dts_decoder.c => src/libxineadec/xine_dts_decoder.c rename : src/libfaad/xine_faad_decoder.c => src/libxineadec/xine_faad_decoder.c rename : src/libmad/xine_mad_decoder.c => src/libxineadec/xine_mad_decoder.c rename : src/libmusepack/xine_musepack_decoder.c => src/libxineadec/xine_musepack_decoder.c
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-09Merge FSF address changes from 1.1 branch.Diego 'Flameeyes' Pettenò
--HG-- 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.c => src/combined/wavpack_combined.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/liba52/xine_a52_decoder.c => src/libxineadec/xine_a52_decoder.c rename : src/libdts/xine_dts_decoder.c => src/libxineadec/xine_dts_decoder.c rename : src/libfaad/xine_faad_decoder.c => src/libxineadec/xine_faad_decoder.c rename : src/libmusepack/xine_musepack_decoder.c => src/libxineadec/xine_musepack_decoder.c
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-06-06Don't return integer, the function is expected to return a pointer.Diego 'Flameeyes' Pettenò
2007-02-20Fix a lot of format warnings in lprintf calls (mostly %ldd -> %"PRId64").Diego 'Flameeyes' Pettenò
CVS patchset: 8608 CVS date: 2007/02/20 00:34:55
2006-01-27Fix a typo and output the PTS value (as for other, nearby, metronome messages).Darren Salt
[Reinhard Nissl] CVS patchset: 7853 CVS date: 2006/01/27 22:35:07
2005-06-29- typo in the metronom start, spotted by Mathieu Routhier ↵Bastien Nocera
<mrouthier@encentrus.com> CVS patchset: 7635 CVS date: 2005/06/29 20:54:34
2004-10-29use monotonic clock when availableMiguel Freitas
CVS patchset: 7087 CVS date: 2004/10/29 23:11:37
2004-08-02no objections so far: committing the fine speed control patchMiguel Freitas
(in case of major trouble just revert the patch i sent to xine-devel) CVS patchset: 6871 CVS date: 2004/08/02 12:51:07
2004-06-19force slave metronoms to reinit when a new master is attached; otherwise aMichael Roitzsch
visualization plugin's metronom gets confused when you wire different streams to the plugin's input CVS patchset: 6710 CVS date: 2004/06/19 19:51:25
2004-04-22This patch allows the engine to handle frames with duration=0.Thibaut Mattern
This is usefull when the format does'nt contain a frame rate / duration info like the ASF format. See this thread for more details: http://thread.gmane.org/gmane.comp.video.xine.devel/8387 CVS patchset: 6426 CVS date: 2004/04/22 23:19:03
2004-04-09improving precision of audio vpts calculation, the comment in metronom.c ↵Michael Roitzsch
explains CVS patchset: 6363 CVS date: 2004/04/09 15:06:02
2004-02-19Mandrake patches fromRocky Bernstein
http://cvs.mandrakesoft.com/cgi-bin/cvsweb.cgi/SPECS/xine-lib/ via Goetz Waschk who reports: The amd64 patch (xine-lib-1-rc0a-amd64.patch) sets some conservative CFLAGS for amd64, the lib64 patch (xine-lib-1-rc0a-lib64.patch) replaces hardcoded /lib to support the lib64 library dir on amd64, the directfb patch (xine-lib-1-rc2-no-directfb.patch) adds a configure option to disable directfb, the linuxfb patch (xine-lib-1-rc3a-no-linuxfb.patch) does the same for linux framebuffer and the 64bit fixes patch (xine-lib-1-rc3-64bit-fixes.patch) doesn't apply at the moment against the CVS -- demux_ogg.c was not applied. it includes some 64 bit pointer and other fixes for 64bit architectures. from Gwenole Beauchesne I haven't tested other than apply and compile. CVS patchset: 6174 CVS date: 2004/02/19 02:50:24
2004-02-16fix freezes with input plugins that play with the speed:uid86226
* use _x_set_speed() for speed manipulations, since it is ticket-safe * _x_set_speed() is an internal helper function now, move frontend locking outside of it * restrict access to metronom clock internal stuff CVS patchset: 6165 CVS date: 2004/02/16 20:19:09
2004-01-18this header is not neededMichael Roitzsch
CVS patchset: 6054 CVS date: 2004/01/18 18:17:55
2003-12-29better initialization of slave metronom should fix problems with ogg and goomMichael Roitzsch
CVS patchset: 5956 CVS date: 2003/12/29 16:26:57
2003-12-05cleanup phase II. use xprintf when it's relevant, use xine_xmalloc when it's ↵Daniel Caujolle-Bert
relevant too. Small other little fix (can't remember). Change few internal function prototype because it xine_t pointer need to be used if some xine's internal sections. NOTE: libdvd{nav,read} is still too noisy, i will take a look to made it quit, without invasive changes. To be continued... CVS patchset: 5844 CVS date: 2003/12/05 15:54:56
2003-11-26xprintf clean pass. xprintf now log into new XINE_LOG_TRACE log buffer. ↵Daniel Caujolle-Bert
scratch buffer enhancement (thanks Thibaut for the malloc tips), enlarge log buffer from 25 lines (very useless), to 150 (better). CVS patchset: 5801 CVS date: 2003/11/26 23:44:08
2003-11-26lprintf cleanup, pass I.Daniel Caujolle-Bert
CVS patchset: 5796 CVS date: 2003/11/26 19:43:26
2003-11-20"Anti audio fifo null" patch ;)Thibaut Mattern
Makes things a bit more symetric: - the audio fifo (demuxer->decoder) can't be NULL - the video driver can be NULL A dummy fifo (5 buffers) is used if the audio driver or video driver is NULL. Audio frontends (rhythmbox, seedeexeen, quark) do not need to instanciate a video driver anymore. CVS patchset: 5767 CVS date: 2003/11/20 00:42:14
2003-11-16Now isn't that amazing? xine-lib actually compiles with the metronomMichael Roitzsch
internals hidden! We are good! ;) CVS patchset: 5754 CVS date: 2003/11/16 15:44:03
2003-11-16introduce the slave metronom concept (Thibaut, Miguel: it's a bit differentMichael Roitzsch
from what we discussed, details on xine-devel) metronom holds a master metronom pointer now and uses this master to match its syncing CVS patchset: 5742 CVS date: 2003/11/16 12:15:21
2003-11-15* making metronom xine_stream_t independentMichael Roitzsch
* using xprintf() and lprintf() inside metronom * prebuffer is now a metronom option * some small structure cleanup CVS patchset: 5737 CVS date: 2003/11/15 20:43:11
2003-11-11rename internal API function (_x_<function>).Daniel Caujolle-Bert
CVS patchset: 5721 CVS date: 2003/11/11 18:44:50
2003-10-31metronom patch from Thibaut:Michael Roitzsch
* refactor discontinuity handling to make it more readable * straightforward logic fixes some problems with discontinuities in audio only streams CVS patchset: 5653 CVS date: 2003/10/31 17:41:07
2003-10-15Revert the bad fix.Thibaut Mattern
CVS patchset: 5527 CVS date: 2003/10/15 21:57:02