summaryrefslogtreecommitdiff
path: root/src/xine-engine/xine.c
AgeCommit message (Collapse)Author
2008-03-14xine_init(): mutex objs not initializedCarlo Bramini
The problem comes from the fact that into xine_probe_fast_memcpy() there is a call to xprintf, which excutes some actions to this->log_lock. But the "log_lock" field is still uninitialized. Under Windows, the xine_init() always crashes because that type is implemented as a structure, so the lock receives a NULL pointer and the execution is halted. The attached patch proposes to move the mutex objects to the top of xine_init() function. --HG-- extra : transplant_source : %07%1D%7F%F0%97%7D%06%3E%9F%2Ar%03%1DQ%14%F3%D1%EF%1D%93
2008-03-14Unportable pthread_t compare in xine.cCarlo Bramini
With Pthreads for Win32/Win64 I cannot compare two pthread_t items because they are implemented as structures. This patch fixes the comparison by using pthread_equal() function. --HG-- extra : transplant_source : %9D%98%CE%83%5E%BD%A9u%11%C7%3BmP%28%EBH%D0%B6I%DF
2008-03-10Fixed long delay when closing stream on dual core systems [Bug #33]Miguel Freitas
2008-03-10Support # stream parameter separator in raw filenames as well as in full MRLs.Miguel Freitas
Changeset 8ffe18290ba5 fixed bug 1784272 (opening raw filenames with # character, like "show #1.mpg") but at the cost of killing # separator in raw filenames completely. Although this might be a valid requirement in a new devel branch, imho, such change in stable branch should be considered a regression. The original idea of passing partial MRL for the input plugins to try doesn't work because plugin will generate error messages for every failed attempt to open the file (like "show " above), even thought the complete MRL is valid and will be played. So, since raw filenames are an exception for the MRL scheme anyway, we try stat'ing the partial filenames to determine what user means with the #.
2008-03-06Fix _x_get_current_frame_impl() to not abort when used legally.Reinhard Nißl
Retrieving frame size and format is a legal operation even for otherwise not supported frame formats like XXMC.
2008-03-02Provide safe and convenient implementations of xine_get_current_frame().Reinhard Nißl
xine_get_current_frame() relies on the caller to provide a sufficiently sized buffer. To calculate the required size of the buffer, one has to call xine_get_current_frame() to retrieve the necessary parameters. But as the image can change between two successive calls one has to pause the stream for consistency. To improve the situation, xine_get_current_frame_s() has been introduced which requires to specify the buffer size when an image is going to be retrieved. Furthermore, it will return the required/used buffer size. In that way, it can prevent copying data into a too small buffer and therefore can be considered safe. For convenience, xine_get_current_frame_alloc() is provided which takes care to allocate a sufficiently sized buffer. This function avoids pausing the stream as the image will be returned in a single call.
2008-01-20Unmaking a # of it.Darren Salt
2008-01-20Unescape the "#save:" filename, allowing ";" etc. in file names.Darren Salt
This has a side effect: versions older than 1.1.10 do not unescape, so "#save:foo%23.ts" will result in a file named "foo%23.ts". Front end maintainers, beware :-)
2008-01-20Don't unescape #subtitle:scheme://data.Darren Salt
This was broken in 1.1.8 when #subtitle:/file was fixed.
2007-04-15Avoid locking log_lock once the buffer has been allocated.Reinhard Nißl
(transplanted from 4988e864d1a9db84756668ea33a9f6860ded879e) --HG-- extra : transplant_source : I%88%E8d%D1%A9%DB%84ufh%EA3%A9%F6%86%0D%ED%87%9E
2007-12-18Don't treat # in MRLs as literals or URI-decode raw filenames. [Bug 1784272]Darren Salt
2007-11-23Merge.Darren Salt
2007-11-23log if send_headers returned with DEMUX_FINISHEDMatthias Kretz
2007-11-19add support for GNU/kFreeBSDPetr Salinger ext:(%20)
It changes some "defined (__FreeBSD__)" into "defined (__FreeBSD_kernel__)" and "__FreeBSD_version" into "__FreeBSD_kernel_version". The changes are performed on places, where feature of kernel is tested. On some other places, feature of userland/libc is tested, on them "defined (__FreeBSD__)" remains. As proposed, include/configure.h cause __FreeBSD_kernel__ be defined if __FreeBSD__ is defined. --HG-- extra : transplant_source : %25%96K%05%E4Y%B15%94%60%15%FE1%8Ah%26Xy%8C/
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-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-08-15Workaround for recent glibc & -D_FORTIFY_SOURCE=2 (defines open() as a macro).Darren Salt
According to bug 1773769, this breaks foo->open(). The fix (as used in Ville Skyttä's patch, which doesn't cover all cases) is to replace this with (foo->open)(). This patch was generated using sed -i -re 's/(([[:alnum:]_]+(->|\.))+open) ?\(/(\1) (/' `grep '[>.]open \?(' include -rIl` One change (in a comment) is not committed.
2007-07-13Prevent ticket system deadlock when using DVB subtitlesSimon Farnsworth
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.
2007-07-08Rename mrl_unescape and export it for use by plugins.Darren Salt
2007-04-12Provide a function to query buffer usage.Reinhard Nißl
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.
2007-04-12Extend ticket system for nonblocking ticket acquiries.Reinhard Nißl
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.
2007-02-20const++Diego 'Flameeyes' Pettenò
CVS patchset: 8609 CVS date: 2007/02/20 00:36:08
2007-02-19Fix warning about incompatible pointer type.Diego 'Flameeyes' Pettenò
CVS patchset: 8600 CVS date: 2007/02/19 23:20:19
2006-12-22Removed INPUT_CAP_NOCACHE.Claudio Ciccani
CVS patchset: 8432 CVS date: 2006/12/22 16:38:15
2006-12-19Mark string-type configuration items according to whether they're plainDarren Salt
strings or names of files, device nodes or directories. This information is available to front ends (via .num_value) so that they can present file/dir-open dialogue boxes if they so choose. Subtitle font selection is split up due to this. CVS patchset: 8425 CVS date: 2006/12/19 19:10:50
2006-12-19Added some cleanup code to make some calls cancelable (at least xine_open ↵Claudio Ciccani
can be safely canceled now). CVS patchset: 8424 CVS date: 2006/12/19 14:10:35
2006-12-18Added INPUT_CAP_NOCACHE: disable usage of internal input cache by default.Claudio Ciccani
CVS patchset: 8421 CVS date: 2006/12/18 21:22:45
2006-12-13Lock the log buffer while updating it.Darren Salt
CVS patchset: 8411 CVS date: 2006/12/13 18:30:30
2006-10-16Fixed several warnings (but warnings due to APIs not solved).František Dvořák
CVS patchset: 8344 CVS date: 2006/10/16 22:18:24
2006-09-25Free the filename variable after usage (_x_rip_plugin_get_instance uses ↵Diego 'Flameeyes' Pettenò
strdup() properly). CVS patchset: 8277 CVS date: 2006/09/25 23:11:19
2006-09-14Add missing blanks.Philipp Hahn
CVS patchset: 8253 CVS date: 2006/09/14 06:46:31
2006-09-13Allow the input plugins to file in a proper way when they can handle the ↵Diego 'Flameeyes' Pettenò
input requested, but simply fails because of connection failures or unaccessible files, by returning -1. Leave the same meaning to the old 0 and 1 values. CVS patchset: 8231 CVS date: 2006/09/13 23:17:29
2006-09-10Restre xine_vlog as a va_list function, xine_log is already a variable ↵Diego 'Flameeyes' Pettenò
arguments function. CVS patchset: 8217 CVS date: 2006/09/10 19:50:09
2006-09-10Allow xine-lib to compile with gcc 4.1.1.James Courtier-Dutton
dsputil_mmx.c patch taked from gentoo portage. CVS patchset: 8216 CVS date: 2006/09/10 19:33:53
2006-09-09Dynamically create the log_buffers entries and the lines buffers for the ↵Diego 'Flameeyes' Pettenò
logs, so that it does not waste 450KiB immediately at startup. CVS patchset: 8212 CVS date: 2006/09/09 19:35:40
2006-09-09Add xine_vlog in xine.c, remove xine_vflog from input_vcd, and do the ↵Diego 'Flameeyes' Pettenò
stdout/stderr output from the two xine_vlog_msg/xine_vlog_err functions that are still local to the input plugin. Centralise log_buffers usage. CVS patchset: 8211 CVS date: 2006/09/09 17:41:45
2006-09-08handle thread creation and memory allocation failures more gratefullyMiguel Freitas
thanks Daniel Derrett for the patch CVS patchset: 8209 CVS date: 2006/09/08 21:11:29
2006-08-13move image presentation support to xine-libMiguel Freitas
CVS patchset: 8180 CVS date: 2006/08/13 23:51:33
2006-08-08new mutex to synchronize order of pairwise A/V buffer operationsMiguel Freitas
by Reinhard Nissl CVS patchset: 8167 CVS date: 2006/08/08 03:25:03
2006-07-03Add a media.network.timeout configuration for a timeout while running ↵Diego 'Flameeyes' Pettenò
select() on streams, to avoid getting frozen if trying to connect to an unreachable server (or if the connection is lost. CVS patchset: 8087 CVS date: 2006/07/03 10:55:37
2006-04-08Ancient platforms support:František Dvořák
- rint, lrint, M_PI (ffmpeg and goom) - avoid mkdir warnings - check for older _GUID_DEFINED too - ressurected generating inttypes, cleaned public os_types.h - moved function redefiniton used only in the old MSVC to central place Windows port update: - build internal ffmpeg: - workaround 'near' keyword problem - proper using __declspec(dllimport) Other changes: - LIBFFMPEG_CFLAGS --> LIBFFMPEG_CPPFLAGS CVS patchset: 7964 CVS date: 2006/04/08 16:42:23
2006-03-17- Only fail to open the stream if we can't parse the possible option, notBastien Nocera
if we can't change it. Fix GNOME bug #334666: http://bugzilla.gnome.org/show_bug.cgi?id=334666 trying to open: mms://media.fastweb.it/WM9/raiclick/FMVRAI04000000001441.wmv?idCnt=368&path=RaiClickWeb^Spettacolo^Jazz#1 CVS patchset: 7935 CVS date: 2006/03/17 18:52:04
2006-01-27Adapt the engine to the new list code.Thibaut Mattern
CVS patchset: 7848 CVS date: 2006/01/27 07:46:09
2006-01-26commit Barry Scott's patch for speed changing raceMiguel Freitas
(it was supposed to be part of 1.1.1) CVS patchset: 7845 CVS date: 2006/01/26 12:13:23
2005-10-30gapless playback stream switching supportMiguel Freitas
CVS patchset: 7784 CVS date: 2005/10/30 02:18:35
2005-09-19*BUGFIX*František Dvořák
added missing mutex init in xine_ticket (fixes pause assert with win32-pthreads) added missing destroys due to pthread doc spells and houskeeping use directx of older versions too, possibility to use xine w/o HW accel CVS patchset: 7738 CVS date: 2005/09/19 16:14:02
2005-09-11make Alien happier ;-)Miguel Freitas
audio can be heard with non-1X speeds if audio.synchronization.slow_fast_audio is set CVS patchset: 7726 CVS date: 2005/09/11 22:07:48
2005-08-29*BUGFIX*František Dvořák
Windows ports updates: - finished M$VC port update - moved xine plugins back to normal location for Windows ports, added relative directories (used relative to ${prefix}), make sure it's thread-safe (but it's still hacky) - fixed ugly bug with loading plugins, when working drive was differrent from plugins directory directory - directory and subdirectory separator called as platform specific - fix crash with newer win32 pthread (missing mutex_init in vo plugin), yes! - small doc update CVS patchset: 7712 CVS date: 2005/08/29 15:28:16
2005-08-25*BUGFIX*František Dvořák
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
2005-07-21- change frontend_lock and config_lock to recursive mutexes to fixMiguel Freitas
reentrancy problems (as reported by Reinhard Nissl and Darren Salt) - add a new recursive mutex support check to configure so we should fail nicely if system doesn't provides it (please test) CVS patchset: 7670 CVS date: 2005/07/21 02:51:14