summaryrefslogtreecommitdiff
path: root/src/xine-engine/audio_out.c
AgeCommit message (Collapse)Author
2003-07-26Stop asserts happening on underruns.James Courtier-Dutton
Delay support for USB hotplug until linux kernel supports it better. CVS patchset: 5213 CVS date: 2003/07/26 00:27:20
2003-07-20OSS never return 1, but write() length.Daniel Caujolle-Bert
CVS patchset: 5201 CVS date: 2003/07/20 19:28:14
2003-07-20More USB soundcard updates.James Courtier-Dutton
CVS patchset: 5199 CVS date: 2003/07/20 12:29:18
2003-07-20Improve playback on USB sound cards.James Courtier-Dutton
These changes improve xine's response to the removal of a USB cable while playing audio. Further changes will need to happen so as to allow sound output to continue when the USB cable is plugged back in, without having to stop the media stream. To enable that, when xine detects that the sound card is not there any more, it will have to close both pcm and mixer, so that the kernel can release USB resources, then when the USB cable is plugged back in, the pcm and mixer are opened again. This code might also modify what xine does in underrun situations, so this code might need to be changed again. CVS patchset: 5196 CVS date: 2003/07/20 10:34:29
2003-07-02Metronom does the pts prediction now, not the decoders.James Courtier-Dutton
CVS patchset: 5123 CVS date: 2003/07/02 23:10:21
2003-06-22some additional pthread_*_destroy() callsMichael Roitzsch
(based on the implementation, this might fix memleaks on some platforms, although I doubt that this is the case here) CVS patchset: 5091 CVS date: 2003/06/22 17:10:41
2003-06-20the new logging macros, for details see README.loggingMarco Zuehlke
CVS patchset: 5077 CVS date: 2003/06/20 20:57:28
2003-06-17Protect this->discard_buffers and this->flush_audio_driver with a mutex.Thibaut Mattern
Replace the "while usleep" loop by a pthread_cond_t. CVS patchset: 5058 CVS date: 2003/06/17 18:53:14
2003-06-02patch by Tim to kill the #ifdefs, replacing them with more portableMichael Roitzsch
PRI64d define from inttypes.h (looks like C99 requires these defines) CVS patchset: 5001 CVS date: 2003/06/02 16:52:20
2003-05-25audio_step is a 64 bits integer in the metronom (pts_per_smpls), use the ↵Thibaut Mattern
same type here. CVS patchset: 4939 CVS date: 2003/05/25 21:34:59
2003-05-24Remove pointless if statementJames Stembridge
CVS patchset: 4918 CVS date: 2003/05/24 10:53:47
2003-05-24Revert previous commit that added checks for the driver being open before ↵James Stembridge
writing silence to the driver CVS patchset: 4917 CVS date: 2003/05/24 10:49:06
2003-05-24Wait for audio out loop to be blocked on empty fifo before closing driver ↵James Stembridge
rather than just waiting for fifo to be empty CVS patchset: 4916 CVS date: 2003/05/24 10:35:48
2003-04-22Additional changes for win32/msvc port; This is my first real commit so ↵Tim Champagne
please be gentle with me; Everything builds except for the win32 ui CVS patchset: 4650 CVS date: 2003/04/22 23:30:29
2003-04-21driver might get closed while filling gap so check it is open before writingJames Stembridge
CVS patchset: 4645 CVS date: 2003/04/21 00:25:55
2003-04-20merging in win32 portGuenter Bartsch
CVS patchset: 4643 CVS date: 2003/04/20 21:13:21
2003-04-18equalizer apiGuenter Bartsch
CVS patchset: 4637 CVS date: 2003/04/18 20:04:26
2003-04-18a simple 10-band equalizer - public interface not there yetGuenter Bartsch
CVS patchset: 4635 CVS date: 2003/04/18 03:00:33
2003-04-15completely seperate amp and compress filtersGuenter Bartsch
CVS patchset: 4616 CVS date: 2003/04/15 17:52:36
2003-04-13make compressor disabled by default. it was burning cpu ciclesMiguel Freitas
after setting AMP level. played a xvid+ac3 stream measuring function time with oprofile: audio_filter_amp_compress 64.63% (relative to total libxine.so time) for comparison: xine_fast_memcpy 13.27% CVS patchset: 4609 CVS date: 2003/04/13 22:19:08
2003-04-11fix long standing fastforward bug.Miguel Freitas
symptom: video fifo get empty, playback gets sluggish, lot of cpu unused. bug 687526 CVS patchset: 4586 CVS date: 2003/04/11 02:04:29
2003-04-02- remove unneeded use of pthread_exit(NULL). We do not have any cleanupBastien Nocera
handlers, so we can just use "return NULL" instead. CVS patchset: 4533 CVS date: 2003/04/02 12:28:08
2003-03-28audio_out loop can go much ahead of video_out (remember driver delay).Miguel Freitas
imho it doesn't seem right to compare in_buf->extra_info->vpts here CVS patchset: 4502 CVS date: 2003/03/28 13:15:27
2003-03-25only wait for empty audio fifo when really necessaryMichael Roitzsch
CVS patchset: 4477 CVS date: 2003/03/25 12:48:04
2003-03-10- rework audio_out.c so thread is created only onceMiguel Freitas
- multiple streams can open the same port and driver's settings are updated if sound source changes - callback for av_sync_method CVS patchset: 4392 CVS date: 2003/03/10 23:31:17
2003-03-08implement XINE_PARAM_AUDIO_AMP_LEVEL so xine's volume can be set ↵Guenter Bartsch
independantly from other applications CVS patchset: 4384 CVS date: 2003/03/08 20:25:51
2003-03-08confusionMichael Roitzsch
CVS patchset: 4380 CVS date: 2003/03/08 17:24:22
2003-03-06- less verbosity, thanks GuenterBastien Nocera
CVS patchset: 4349 CVS date: 2003/03/06 23:30:36
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-02-22update extra info (for slider movement) in stills with audioMichael Roitzsch
CVS patchset: 4248 CVS date: 2003/02/22 14:18:16
2003-02-21disable debug outputGuenter Bartsch
CVS patchset: 4226 CVS date: 2003/02/21 02:05:12
2003-02-16whoups, sorry for that noiseGuenter Bartsch
CVS patchset: 4176 CVS date: 2003/02/16 20:16:01
2003-02-16small bugfix, buffer was released to early when no resampling is doneGuenter Bartsch
CVS patchset: 4175 CVS date: 2003/02/16 19:56:12
2003-02-06first pass on cleaning up ao/vo properties and flush stuffMiguel Freitas
CVS patchset: 4110 CVS date: 2003/02/06 00:09:19
2003-02-02- remove LOG from audio_out.c, fix backing up the configfile if there's no ↵Bastien Nocera
configfile to save, and if there's already a backup file CVS patchset: 4087 CVS date: 2003/02/02 12:33:23
2003-02-01adding flush-mode so seek() and play() work for video processing (enix)Guenter Bartsch
CVS patchset: 4080 CVS date: 2003/02/01 19:22:30
2003-01-30new av sync method by audio resample (patch by Carsten Weinhold)Miguel Freitas
CVS patchset: 4049 CVS date: 2003/01/30 20:40:42
2003-01-13do not dispose audio and video ports on stream dispose.Miguel Freitas
CVS patchset: 3906 CVS date: 2003/01/13 23:02:41
2003-01-11introducing a new, very low-impact aproach on implementing a video ↵Guenter Bartsch
processing api CVS patchset: 3875 CVS date: 2003/01/11 19:06:52
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
2003-01-10protect update of current_extra_infoMiguel Freitas
CVS patchset: 3854 CVS date: 2003/01/10 19:15:16
2003-01-09- can't use HAS_VIDEO/HAS_AUDIO at this stage because some demuxers will onlyMiguel Freitas
set it on send_headers. also daniel convinced me that xine does "handle a no audio stream" - fix audio_out.c to abort filling with zero on seeking/stop/quit. CVS patchset: 3840 CVS date: 2003/01/09 02:44:39
2002-12-27quite experimental changes on post plugin api to enable rewiringMiguel Freitas
of streams. Michael, please let me know if you have a better idea! :) CVS patchset: 3689 CVS date: 2002/12/27 03:40:07
2002-12-26- cleanup internal interfaces for rewiringMiguel Freitas
- fix UI_PLAYBACK_FINISHED rifle CVS patchset: 3686 CVS date: 2002/12/26 21:53:41
2002-12-24discard buffers on flush so decoder will return faster. seeking should beMiguel Freitas
faster as well. (on a problematic stream i have, seeking time was reduced from 2.5s to 0.8s) CVS patchset: 3665 CVS date: 2002/12/24 14:00:55
2002-12-22flush/seeking overhauledMiguel Freitas
- move frame discarding to inside the output loopss. it is much safer to manipulate fifos from there avoiding any races. - do not reject audio frames because vpts is smaller than previous. it might happen on seeking but it's ok, because the sound driver may have being flushed too. - fix xine_demux_flush_engine so it doesn't call output flush too early - remove scr adjusting please report any problems... CVS patchset: 3639 CVS date: 2002/12/22 23:30:29
2002-12-21minor comment updateMiguel Freitas
CVS patchset: 3608 CVS date: 2002/12/21 16:12:25
2002-12-21- add buf->decoder_info_ptr: portability for systems where pointer hasMiguel Freitas
different sizeof than integer. - add extra_info structure to pass informations from input/demuxers down to the output frame. this can be used, for example, to pass the frame number of a frame (when known by decoder). also, immediate benefict is that we now have a slider which really shows the current position of the playing stream. new fields can be added to extra_info keeping binary compatibility - bumpy everybody's api versions CVS patchset: 3603 CVS date: 2002/12/21 12:56:44
2002-12-14The solaris pthread_cond_init() man page tells me:Juergen Keil
Attempting to initialize an already initialized condition variable results in undefined behavior. fifo->not_empty was initialized in fifo_new(); there should be no need to re-initialize it in fifo_remove_int().. CVS patchset: 3519 CVS date: 2002/12/14 16:33:59
2002-12-14ao_fill_gap() must be called with the driver_lock unlocked, becauseJuergen Keil
ao_fill_gap() locks the driver, too ==> deadlock CVS patchset: 3518 CVS date: 2002/12/14 16:17:57