Age | Commit message (Collapse) | Author |
|
--HG--
extra : transplant_source : %E0%D0%C5%8B%BEU%DD%24%5D7%1F%ADV%AD%EB%23%CBU%80%EB
|
|
For contributed code, leave whatever the version we last synced for is using
to make simpler future syncs.
|
|
When using DVB subtitles on an SMP machine, we see occasional lockups, which
appear to be caused by one thread acquiring the same ticket twice. Fix this,
by preventing acquire() and release() from blocking if the current thread has
already acquired the ticket.
Code sequences like the following can still block in all acquires and
releases:
ticket->acquire(...)
/* Do something */
ticket->release(...)
However, code sequences like the following, which used to deadlock if ticket
was revoked at just the wrong moment, now succeed:
ticket->acquire(...)
/* Do something */
ticket->acquire(...) /* This acquire cannot block */
/* Do something */
ticket->release(...) /* This release cannot block */
/* Do something */
ticket->release(...)
Without this patch, the inner acquire() and release() calls could block if
ticket was revoked at the wrong time. revoke() would not unblock the blocking
acquire until there have been as many release()s as acquire()s, which cannot
happen.
|
|
|
|
|
|
This function shall be used to poll the number of remaining frames
from a certain point in time on until the reported numbers are all
0. At that point in time, the content on screen is identical to a
certain state of the stream, at which for example, a hardcopy may
be taken.
|
|
The current code has a race condition which can block arbitrary
threads that call for example xine_get_current_frame() until the
stream gets unpaused again. This can happen when the internal
ticket acquiration collides with a ticket revokation for example
when another thread is going to pause the stream.
There are a few situations where a port ticket needs to be
acquired for calling a port function but where it is absolutely
undesireable to get blocked for an undetermined period of time.
Therefore the ticket system should be extended by nonblocking
functions which allow ticket acquiration even when a ticket
revokation is in progress. And in the case where blocking is
not avoidable, it should simply be indicated that no ticket was
acquired. The caller can then choose to repeat the call at a
later point in time.
|
|
CVS patchset: 8520
CVS date: 2007/01/18 23:28:46
|
|
CVS patchset: 8411
CVS date: 2006/12/13 18:30:30
|
|
update for attic platforms (mainly older MinGW)
unsupported attributes not used (fixes warnings)
added check for sentinel attribute
enabled TrueSpeech codec
CVS patchset: 8327
CVS date: 2006/10/02 15:56:03
|
|
CVS patchset: 8290
CVS date: 2006/09/26 05:48:16
|
|
that their binding is local to the library (has a similar effect to -Bsymbolic, but will work better with hidden visibility enabled, that is step two).
CVS patchset: 8289
CVS date: 2006/09/26 05:19:47
|
|
thanks Daniel Derrett for the patch
CVS patchset: 8209
CVS date: 2006/09/08 21:11:29
|
|
CVS patchset: 8180
CVS date: 2006/08/13 23:51:33
|
|
(implemented for mp3 demuxer only)
CVS patchset: 8177
CVS date: 2006/08/12 01:43:26
|
|
by Reinhard Nissl
CVS patchset: 8167
CVS date: 2006/08/08 03:25:03
|
|
CVS patchset: 7975
CVS date: 2006/04/21 22:46:33
|
|
CVS patchset: 7848
CVS date: 2006/01/27 07:46:09
|
|
(it was supposed to be part of 1.1.1)
CVS patchset: 7845
CVS date: 2006/01/26 12:13:23
|
|
CVS patchset: 7784
CVS date: 2005/10/30 02:18:35
|
|
CVS patchset: 7745
CVS date: 2005/09/25 00:44:04
|
|
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
|
|
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
|
|
fix deadlock with _x_flush_events_queues
CVS patchset: 7621
CVS date: 2005/06/13 00:32:11
|
|
see my last mail about this stuff:
http://thread.gmane.org/gmane.comp.video.xine.devel/12547
and this thread:
http://thread.gmane.org/gmane.comp.video.xine.devel/11213
CVS patchset: 7395
CVS date: 2005/02/09 20:03:18
|
|
and should check if any other application is using the device.
CVS patchset: 7282
CVS date: 2004/12/19 20:24:30
|
|
CVS patchset: 7086
CVS date: 2004/10/29 13:11:47
|
|
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
|
|
poor platforms, of course)
- fix a bug in generated xine-config for WIN32 and make it relocateable
under Windows
- MSVC port: update, fix some warnings, remove old unneeded files
- improve function for getting runtime directory, it will need next fix
yet (bug probably due to active volume drives)
CVS patchset: 7001
CVS date: 2004/09/26 22:54:51
|
|
(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
|
|
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
|
|
before, NULL could mean two things: no stream at all or a stream that does not
want to be addressed; now the latter is represented by the new XINE_ANON_STREAM
resulting changes:
* the status() functions now behave differently for NULL and XINE_ANON_STREAM
(as the commentary always implied, but this was not the case, so post
plugin rewiring went wrong, because it relies on the status() function)
* the NULL_STREAM defines in audio_out and video_out are obsolete
* update the function comments in the headers
* update the post plugin rewire functions to use the status() functions to
check, if the old port was opened and handle the new one accordingly;
this makes open_count obsolete
* change all post plugins accordingly (mostly using XINE_ANON_STREAM instead
of NULL)
additional change:
* the status() function of audio port now returns the bits/rate/mode values
of the input and not the output; this is more likely to be what a post plugin
wants
* the reimplementation of status() in the upmix plugin is obsolete
CVS patchset: 6603
CVS date: 2004/05/29 14:45:25
|
|
can receive error events before the end of xine_open()
CVS patchset: 6410
CVS date: 2004/04/16 16:34:22
|
|
CVS patchset: 6305
CVS date: 2004/03/23 22:54:31
|
|
(as discussed on xine-devel, slightly improved to block acquires from
different threads between atomic revoke and issue)
* xine_ticket_t is declared in xine_internal.h and implemented in xine.c
* the ticket is acquired for (hopefully) all port operations
(no modifications to decoders needed, decoder loop does this)
* the ticket is revoked on pausing and on rewiring
* OSD does not store the port pointer any more (which was very dangerous,
since the pointer can change on rewire)
CVS patchset: 6137
CVS date: 2004/02/12 18:19:00
|
|
CVS patchset: 6025
CVS date: 2004/01/11 15:54:23
|
|
- 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
|
|
CVS patchset: 5879
CVS date: 2003/12/09 00:02:28
|
|
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
|
|
BIG NOTE: use helpers to access to these informations (get/set/reset):
_x_{stream,meta}_info_{get,set,reset}()
are for internal use, don't use *_public() ones from inside the beast ;-)
Some wrongly names "xine_" fonction renaming.
CVS patchset: 5757
CVS date: 2003/11/16 23:33:42
|
|
* 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
|
|
CVS patchset: 5734
CVS date: 2003/11/15 15:04:35
|
|
(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
|
|
CVS patchset: 5721
CVS date: 2003/11/11 18:44:50
|
|
solutions: increase (in this case: ALL) plugin interface versions or
add the new member at the end
taking solution 2 for now and adding a TODO-item for later
CVS patchset: 5562
CVS date: 2003/10/21 16:08:04
|
|
onle directory.
Note, this is patch only for xine-engine. It doesn't cover cfg:// MRLs used by xine-ui.
CVS patchset: 5558
CVS date: 2003/10/20 08:36:56
|
|
Add a function to set integer stream infos.
CVS patchset: 5547
CVS date: 2003/10/19 19:45:03
|
|
CVS patchset: 5535
CVS date: 2003/10/18 19:19:52
|
|
CVS patchset: 5412
CVS date: 2003/09/25 02:57:51
|
|
CVS patchset: 5300
CVS date: 2003/08/21 00:37:26
|