summaryrefslogtreecommitdiff
path: root/src/xine-engine/metronom.c
AgeCommit message (Collapse)Author
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
2003-10-14Fix DISC_ABSOLUTE (and DISC_RELATIVE) for audio only streams.Thibaut Mattern
this->vpts_offset was computed using this->video_vpts (and not this->audio_vpts) but no video frames are generated when playing an audio only stream, this->video_vpts and this->audio_vpts are really different in this case. This patch aligns this->video_vpts and this->audio_vpts to the max. These values were already aligned for DISC_STREAMSTART and DISC_STREAMSEEK. Miguel, Michael: do you know why it was not done for DISC_ABSOLUTE ? ok, slap me if it's completely stupid. CVS patchset: 5521 CVS date: 2003/10/14 22:48:00
2003-09-15Improve liba52 PTS processing.James Courtier-Dutton
CVS patchset: 5381 CVS date: 2003/09/15 04:02:45
2003-09-13fix for duplicated pts by Simon Truss <simon@bigblue.demon.co.uk>Miguel Freitas
CVS patchset: 5363 CVS date: 2003/09/13 15:31:53
2003-07-12- adding support for the Intel compiler iccMichael Roitzsch
- general multipass compilation make targets CVS patchset: 5149 CVS date: 2003/07/12 12:31:13
2003-05-15add broadcasterMiguel Freitas
CVS patchset: 4857 CVS date: 2003/05/15 20:23:16
2003-05-06Thibaut asked me to revert his latest patchMiguel Freitas
also set some more reasonable defaults for frame skipping (12000 pts prebuffering, at least 2 frames in advance to not skip). CVS patchset: 4786 CVS date: 2003/05/06 20:50:11
2003-05-05Do not use pts from bad frames in the metronom and in the video_loop.Thibaut Mattern
This prevents to drop 1-5 frames just after a seek. Now seeking is really smooth and sync is allways perfect ;) CVS patchset: 4775 CVS date: 2003/05/05 22:29:30
2003-04-07enough of this. too much messages confuses users...Miguel Freitas
CVS patchset: 4560 CVS date: 2003/04/07 01:28:43
2003-03-27- demux_avi: do not set input_pos/time on audio buffers. otherwise ↵Miguel Freitas
non-interlaved or bad interleaved files show slider problems - make metronom prebuffer configurable. see metronom.h for comments. CVS patchset: 4501 CVS date: 2003/03/27 18:56:54
2003-03-06steps toward muting xine's console output by defaultGuenter Bartsch
CVS patchset: 4345 CVS date: 2003/03/06 16:49:30
2003-02-28Xine assert() replacement:Stephen Torri
All assert() function calls, with exceptions of libdvdread and libdvdnav, have been replaced with XINE_ASSERT. Functionally XINE_ASSERT behaves just likes its predecesor but its adding the ability to print out a stack trace at the point where the assertion fails. So here are a few examples. assert (0); This use of assert was found in a couple locations most favorably being the default case of a switch statement. This was the only thing there. So if the switch statement was unable to find a match it would have defaulted to this and the user and the developers would be stuck wonder who died and where. So it has been replaced with XINE_ASSERT(0, "We have reach this point and don't have a default case"); It may seem a bit none descriptive but there is more going on behind the scene. In addition to checking a condition is true/false, in this case '0', the XINE_ASSERT prints out: <filename>:<function name>:<line number> - assertion '<assertion expression>' failed. <description> An example of this might be: input_dvd.c:open_plugin:1178 - assertion '0' failed. xine_malloc failed!!! You have run out of memory XINE_ASSERT and its helper function, print_trace, are found in src/xine-utils/xineutils.h CVS patchset: 4301 CVS date: 2003/02/28 02:51:47
2003-01-28show 'spu_offset' when spu offset is changedDaniel Caujolle-Bert
CVS patchset: 4024 CVS date: 2003/01/28 17:07:53
2003-01-13- add option to adjust spu sync (works for both dvd and external subtitles)Miguel Freitas
- implement some master/slave stuff - implement subtitle mrl: xine movie.mpg#subtitle:whatever.sub CVS patchset: 3887 CVS date: 2003/01/13 02:15:07
2003-01-11brand-new external subtitles support. (yes, it works!)Miguel Freitas
tested with asf, avi and mpeg but any media should work. todo: - clean up the master/slave stuff and public api. - implement seeking on demux_sputext.c (it must seek to closest subtitle) - general cleaning up and bugfixing CVS patchset: 3860 CVS date: 2003/01/11 03:47:01
2002-12-23ok, seeking should like to have good vpts too.Miguel Freitas
CVS patchset: 3645 CVS date: 2002/12/23 10:03:50
2002-12-23adjust audio_vpts and video_vpts on start so they don't stay much aheadMiguel Freitas
in the future (it would delay the playback of a new stream). CVS patchset: 3642 CVS date: 2002/12/23 00:51:31
2002-12-13metronom fix/improvement/simplification:Michael Roitzsch
do not align audio and video vpts on discontinuity, this finally makes multiangle DVDs play smooth with my DXR3 CVS patchset: 3508 CVS date: 2002/12/13 16:47:41
2002-11-30just now i realized the wrong underlying assumption i did in metronom: fixingMiguel Freitas
audio drift the same way i did for video doesn't work, since sound card won't play it slower or faster because of the vpts's. with this patch i hope to have definitely separated the 2 sources of audio drift: (1) nominal sample rate discrepancy to stream pts, (2) sound card drift to system clock. - revert feedback audio loop - updated metronom's audio drift - always do a full gap filling if needed CVS patchset: 3392 CVS date: 2002/11/30 22:09:42
2002-11-27prettier logging :o)Heiko Schaefer
CVS patchset: 3382 CVS date: 2002/11/27 21:41:11
2002-11-20I forgot to adapt thisMichael Roitzsch
CVS patchset: 3313 CVS date: 2002/11/20 12:22:19
2002-11-20engine modifications to allow post plugin layer:Michael Roitzsch
* new public output interface xine_{audio,video}_port_t instead of xine_{ao,vo}_driver_t, old names kept as aliases for compatibility * modified the engine to allow multiple streams per output * renaming of some internal structures according to public changes * moving SCR out of per-stream-metronom into a global metronom_clock_t residing in xine_t and therefore easily available to the output layer * adapting all available plugins (note to external projects: the compiler will help you a lot, if a plugin compiles, it is adapted, because all changes add new parameters to some functions) * bump up all interface versions because of xine_t and xine_stream_t changes CVS patchset: 3312 CVS date: 2002/11/20 11:57:38
2002-11-19spu and overlay cleanups, mostly cosmeticMiguel Freitas
CVS patchset: 3298 CVS date: 2002/11/19 00:45:41
2002-11-12merge metronom's improvements (inform decoders about discontinuities)Miguel Freitas
http://sourceforge.net/mailarchive/forum.php?thread_id=1297475&forum_id=7131 CVS patchset: 3250 CVS date: 2002/11/12 18:40:50
2002-11-10fix wrong abs macro; many thanks to James Slorach for finding this nasty,Michael Roitzsch
well-hidden bug CVS patchset: 3220 CVS date: 2002/11/10 13:33:13
2002-11-08Better handling of the end of the discontinuity.Thibaut Mattern
CVS patchset: 3205 CVS date: 2002/11/08 18:47:19
2002-11-08There was a bug in discontinuity handling.Thibaut Mattern
This should fix strange problems. CVS patchset: 3201 CVS date: 2002/11/08 07:53:52
2002-10-29engine improvementsMichael Roitzsch
- output fifo flushing - more sophisticated discontinuity handling - seek improvement by waiting for at least one frame CVS patchset: 3089 CVS date: 2002/10/29 16:02:43
2002-10-28New way to handle streams with invalid img_duration (eg some mpeg streams).Thibaut Mattern
The concept in simple : compute duration using pts. Here the formula : duration = ( pts - last_pts ) / (nb img between the 2 pts) I've tested with libmpeg2 and ffmpeg. It works. CVS patchset: 3061 CVS date: 2002/10/28 07:53:52
2002-10-14introduction of xine_stream_t and async xine events - all still in developementGuenter Bartsch
CVS patchset: 2828 CVS date: 2002/10/14 15:46:48
2002-09-05Whoops, committed the experimental metronom stuff. Taking it out again.Michael Roitzsch
(I should go to sleep now.) CVS patchset: 2619 CVS date: 2002/09/05 22:29:17
2002-09-05remove plugin's private priority and interface membersMichael Roitzsch
adapt some more decoders CVS patchset: 2618 CVS date: 2002/09/05 22:18:50
2002-09-04merging in the new_api branch ... unfortunately video_out / vo_scale is ↵Guenter Bartsch
broken now ... matthias/miguel: please fix it :-) CVS patchset: 2606 CVS date: 2002/09/04 23:31:05
2002-09-01arghHeiko Schaefer
CVS patchset: 2580 CVS date: 2002/09/01 13:50:07
2002-09-01this is not a fix - but at least a52 passthrough should work again nowHeiko Schaefer
CVS patchset: 2579 CVS date: 2002/09/01 13:49:27
2002-08-27Provide a better value for the SPU vpts during discontinuites.James Courtier-Dutton
Basically just pick the value closest to the current video_vpts. CVS patchset: 2528 CVS date: 2002/08/27 07:10:13
2002-06-29Use an other method for DISC_STREAMSEEK :Thibaut Mattern
force the detection of an audio jump instead of trying to manualy reintroduce a diff, it's looks better. It fixes also the sync problem at start, it's magic ;-) It's only used by the avi demuxer now. CVS patchset: 2175 CVS date: 2002/06/29 14:32:36
2002-06-20quiet pleaseMichael Roitzsch
CVS patchset: 2105 CVS date: 2002/06/20 14:49:53
2002-06-19Handle the new discontinuity DISC_STREAMSEEK.Thibaut Mattern
CVS patchset: 2098 CVS date: 2002/06/19 23:41:16
2002-04-30remove sound card drift debug messagesMiguel Freitas
CVS patchset: 1812 CVS date: 2002/04/30 01:48:18
2002-04-27fix 64-bit diff calculationMiguel Freitas
CVS patchset: 1782 CVS date: 2002/04/27 16:33:24