summaryrefslogtreecommitdiff
path: root/src/xine-engine/demux.c
AgeCommit message (Collapse)Author
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
2004-10-14Implemented stream_t reference counter idea.Thibaut Mattern
See these two threads: http://thread.gmane.org/gmane.comp.video.xine.devel/10819 http://thread.gmane.org/gmane.comp.video.xine.devel/10424 Fixed _x_handle_stream_end __stop_internal race. See this thread: http://thread.gmane.org/gmane.comp.video.xine.devel/10818 If the lib is broken after this patch, you know who to blame ;-) CVS patchset: 7036 CVS date: 2004/10/14 23:25:24
2004-06-13implement steps 1, 2, 3 and 4 of the seeking proposal:Miguel Freitas
http://article.gmane.org/gmane.comp.video.xine.devel/9532 it is now up to demuxers to decide what the 0..65535 position means. demuxers tested: ogg, voc, flac, rm, asf, vqa, vob, avi, y4m, au, mov, ts, mp3, mpg, wav, ra, mve CVS patchset: 6686 CVS date: 2004/06/13 21:28:52
2004-05-16From: Reinhard Nissl.James Courtier-Dutton
The fix stopps dropping properly received data. I realized the problem when switching channels in VDR. From time to time, it happend that switching took more than 50 ms (the timeout value used in _x_read_abort()), which caused the select() to timeout. In the case where 'stream->demux_action_pending' was set, the already received data was dropped due to returning 0. This finally resulted in your demuxer to fail with DEMUX_END, as it couldn't read 6 bytes from the PES header. So for the case, that there is some data available, it now takes twice the timeout (i. e. 100 ms), before a return 0 happens. Some more information: as in rare cases switching channels could take even longer than 100 ms, I've also added a loop around _x_read_about() in my VDR input plugin, which returns 0 just after this state lasts for 5 seconds. CVS patchset: 6557 CVS date: 2004/05/16 21:45:24
2004-04-07Michael's patch for improving playback with subtitles, fix the long seeking.František Dvořák
CVS patchset: 6342 CVS date: 2004/04/07 18:10:20
2004-03-03use the _x_abort() macro instead of abort, since it prints some debug infoMichael Roitzsch
before aborting CVS patchset: 6211 CVS date: 2004/03/03 20:09:11
2004-02-12acquire the ticket on engine flushMichael Roitzsch
CVS patchset: 6138 CVS date: 2004/02/12 18:19:44
2004-01-11add _x_demux_read_send_dataJames Stembridge
CVS patchset: 6025 CVS date: 2004/01/11 15:54:23
2003-12-23- some more endianness fixes to ogg demuxerMiguel Freitas
- new helper function for demuxers (send data to fifo easily, provided it was already loaded to memory) CVS patchset: 5936 CVS date: 2003/12/23 21:22:38
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-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-16actually not every engine file uses internals, so we do not need to defineMichael Roitzsch
XINE_ENGINE_INTERNAL for every file CVS patchset: 5753 CVS date: 2003/11/16 15:41:15
2003-11-15start xine_stream_t separation (public/private).Miguel Freitas
(we should finish this before rc3.) - stream_info and meta_info variables are private now. obs: everything must be recompiled due xine_stream_t changes CVS patchset: 5733 CVS date: 2003/11/15 14:54:30
2003-11-12fix CVS placeholderMichael Roitzsch
CVS patchset: 5725 CVS date: 2003/11/12 17:54:30
2003-11-11rename internal API function (_x_<function>).Daniel Caujolle-Bert
CVS patchset: 5721 CVS date: 2003/11/11 18:44:50
2003-10-14just a little commentThibaut Mattern
CVS patchset: 5523 CVS date: 2003/10/14 23:22:10
2003-09-25Correct/add comment about xine_demux_flush_engine.Rocky Bernstein
CVS patchset: 5412 CVS date: 2003/09/25 02:57:51
2003-07-16more cleanup; remove unused variables; use lprintfMarco Zuehlke
CVS patchset: 5168 CVS date: 2003/07/16 14:14:17
2003-06-18Use the same discard mecanism for audio and video in xine_demux_flush_engine.Thibaut Mattern
CVS patchset: 5061 CVS date: 2003/06/18 07:05:12
2003-05-20This fixes http support for Win32Tim Champagne
CVS patchset: 4891 CVS date: 2003/05/20 20:40:29
2003-05-07- ittsy bitsy memory corruption fixBastien Nocera
CVS patchset: 4793 CVS date: 2003/05/07 09:46:53
2003-05-06- make sure that the read_size is not bigger than the buffer we're sending backBastien Nocera
CVS patchset: 4778 CVS date: 2003/05/06 12:04:41
2003-05-05- fix a possible crash when the preview size was greater than the size requestedBastien Nocera
CVS patchset: 4776 CVS date: 2003/05/05 23:02:17
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-17cleanup patch by Marco Z|hlke <M.Zuehlke@freenet.de>Miguel Freitas
CVS patchset: 4632 CVS date: 2003/04/17 19:01:23
2003-04-13add a small read() function that can be aborted by demux_action_pendingMiguel Freitas
useful for network input plugins... CVS patchset: 4600 CVS date: 2003/04/13 16:28:48
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-30New net_buf_ctrl.Thibaut Mattern
See xine-devel for details. Basicaly it adds callbacks to fifo, and everything is done at fifo level now. It fixes deadlocks with ogg/ogm streams, pauses the engine at the right time, and evaluates better the length of the data in fifos (using pts when the bitrate is not constant). Enjoy. CVS patchset: 4513 CVS date: 2003/03/30 15:19:45
2003-03-07workaround buggy pthread implementations with a timedwaitMiguel Freitas
(thanks Ewald) CVS patchset: 4358 CVS date: 2003/03/07 15:29:30
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-23Fixes a deadlock when buffering at the end of the stream.Thibaut Mattern
CVS patchset: 4277 CVS date: 2003/02/23 23:49:17
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-11-22HELP! My latest engine patch slightly broke the seeking, so I revert thisMichael Roitzsch
part. It should not cause much trouble now, but improves seeking a lot. CVS patchset: 3340 CVS date: 2002/11/22 19:12:00
2002-11-22do not play with the clock any more, we have dedicated flush functions for ↵Michael Roitzsch
that now (This should fix Daniels MP3 problems, since the end of one stream would have adjusted the global clock thus affecting all other streams.) CVS patchset: 3334 CVS date: 2002/11/22 16:23:58
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-06fix stream ending deadlock without audio driverDaniel Caujolle-Bert
CVS patchset: 3196 CVS date: 2002/11/06 23:20:45
2002-11-02these should better be broadcast signalsMichael Roitzsch
CVS patchset: 3149 CVS date: 2002/11/02 15:18:40
2002-11-01Fix seeking at the end of the stream.Thibaut Mattern
CVS patchset: 3123 CVS date: 2002/11/01 11:15:05
2002-10-31Little optimization.Thibaut Mattern
CVS patchset: 3116 CVS date: 2002/10/31 21:58:41
2002-10-30Avoid a potential deadlock.Thibaut Mattern
CVS patchset: 3103 CVS date: 2002/10/30 21:45:21
2002-10-30- add mutex on seeking and avoid overuse of sched_yieldMiguel Freitas
CVS patchset: 3102 CVS date: 2002/10/30 17:51:13
2002-10-30Release the processor between the mutex unlock()/lock() sequence, to giveJuergen Keil
xine_demux_stop_thread a chance to aquire the mutex, so that it can change stream->demux_thread_running to 0. Problem is, the demuxer thread has it's mutex blocked 99.9% of the time and releases it only for an extremely short time, for the purpose of allowing another thread to interrupt the demuxer. On Solaris at least, the unlock()/lock() sequence will typically run in the thread's allocated time slice and chances are mimimal that the demuxer is preempted between the unlock()/lock(), which would allow another thread to grab the mutex. CVS patchset: 3101 CVS date: 2002/10/30 13:59:11
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-28do not flush on xine_handle_stream_endMiguel Freitas
CVS patchset: 3064 CVS date: 2002/10/28 11:19:51
2002-10-28hey, i want to join xine breakage party! (what do you wanna break today? tm)Miguel Freitas
- time to cleanup demuxer mess... no more pthread stuff on any demuxer. of course i haven't tested all demuxers, but they at least compile. (sorry Mike, we will need to move a few variables around to make most of your demuxers work again - not big deal i think) - make api more consistent by providing xine_open/xine_close and xine_start/xine_stop. CVS patchset: 3058 CVS date: 2002/10/28 03:24:42
2002-10-23fix comments, c syntaxGuenter Bartsch
CVS patchset: 2967 CVS date: 2002/10/23 17:12:30