1
0
mirror of https://github.com/mpv-player/mpv synced 2025-04-07 10:02:50 +00:00
Commit Graph

183 Commits

Author SHA1 Message Date
sesse
c7c74e1404 Implement ResumeThread and SignalObjectAndWait.
Relatively simplistic implementations of ResumeThread (stub) and
SignalObjectAndWait (bAlertable is ignored). Both are needed for ProRes 4:2:2
support on Linux.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30861 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-08 13:00:59 +00:00
sesse
b951d42e4e Implement Win32 mutexes.
Implement Win32 mutexes; they used to just be mapped on top of events, which
is not the same thing at all.

The implementation is pretty much the obvious one, similar to the
current critical section implementation and the semaphore implementation;
a single lock count protected by a pthread mutex, and an event lockers can
sleep on to know when the mutex is available.

Also make CreateMutexA and ReleaseMutex available even if QuickTime codecs
support is not configured.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30853 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-06 10:13:37 +00:00
sesse
8e19e87761 Fix semaphore behavior in WaitForSingleObject.
Two simple bugfixes for semaphores in WaitForSingleObject:

First, semaphore count should be decreased on loading the semaphore, not
increased. The case for duration=0 had this wrong (duration=-1 was fine).

Second, the code for duration=-1 forgot to set the return value, so it
would always return WAIT_FAILED.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30852 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-06 10:07:39 +00:00
sesse
474c365479 Make Win32 mutex and thread linked lists thread safe.
loader/win32.c contains a global linked list of all existing mutexes
(whose head is called mlist), which is accessed from multiple threads,
and as such needs to be protected by a mutex. Fixed.

Same thing for the global linked list of all existing threads, whose
head is called list.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30851 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-06 10:05:10 +00:00
sesse
fbb74e16a3 Make GetModuleHandle(NULL) return a valid pointer.
Some codecs, and more recently Microsoft's CRT library, expect GetModuleHandle(NULL)
to return a pointer to the program's PE header mapped in memory. Thus, just returning
0x0 or 0x1 won't do it anymore, so create a minimal PE header and return that.

Patch originally by Gianluigi Tiesi ( mplayer (at) netfarm (dot) it ).


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30848 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-05 23:09:36 +00:00
sesse
c27b99441b Partial revert of r30843.
Some extra changes snuck into my commit; they'll probably be reviewed
and committed to Subversion eventually, but were not part of the fix
for WaitForSingleObject on thread handles.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30844 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-05 11:14:07 +00:00
sesse
61f351dc90 Support thread handles in WaitForSingleObject.
Some codecs need this for clean shutdown (as opposed to a crash); we don't 
really support timed wait since POSIX doesn't, but it doesn't seem necessary.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30843 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-05 11:11:47 +00:00
sesse
5fb74d581f Make emulated Win32 critical sections thread safe.
Earlier, cs->locked was accessed outside the mutex to get around
the problem that default pthread mutexes are not recursive
(ie., you cannot do a double-lock from the same thread), causing
a thread-safety problem, as both detected by Helgrind and showing
up in some multithreaded codecs.

The ideal solution here would be to simply use recursive pthread
mutexes, but there were concerns about reduced debuggability and
possibly portability. Thus, instead, rewrite the critical sections
to be a simple lock count (with owner) protected by a regular mutex.
Whenever a thread wants to enter the critical section and lock_count
is not 0, it sleeps on a special event that tells it when the
critical section is available.



git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30837 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-04 15:57:08 +00:00
sesse
f32e92b849 Fix crashes in CreatePalette by fixing the LOGPALETTE struct.
CreatePalette had problems for me, and looking at the code it was quite
obvious why; someone had reversed the order of the two elements of the
LOGPALETTE struct, causing it to allocate and copy a bogus amount of memory.
Why on earth anybody would want to do that is beyond me; whoever did it even
left a comment, but it wasn't very helpful, as it crashed nevertheless. :-)


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30832 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-04 15:31:54 +00:00
sesse
c6fb73d6b1 Fix manual reset behavior of Win32 events.
Events have a “reset” member that specify if they flag is automatically                                   
set back on read/wait. However, this was populated by bManualReset, so the                                
flag was inverted and once an event was set, it would forever be counted                                  
as so. Fixed by inverting the flag.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30831 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-04 15:28:02 +00:00
sesse
84bcc5642a Fix return values of WaitForSingleObject when checking an event.
These were simply inverted compared to what they should be.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30830 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-04 15:23:52 +00:00
diego
b63759b175 Do not cast the results of malloc/calloc/realloc.
These functions return void*, which is compatible with any pointer,
so there is no need for casts.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30744 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-02-26 15:01:37 +00:00
diego
2f6fca9481 Add declaration for exp_EH_prolog_dummy().
This avoids a warning with -Wmissing-prototypes.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30701 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-02-22 13:55:00 +00:00
diego
4d6d266521 Only #define WIN32_LOADER if it has not been #defined already, fixes warning:
loader/win32.c:27:1: warning: "WIN32_LOADER" redefined


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30689 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-02-21 22:14:11 +00:00
diego
d306b727b1 Remove pointless '#if 1' preprocessor directives.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30654 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-02-19 10:22:29 +00:00
reimar
134bbb8cd8 Add a InitializeCriticalSectionAndSpinCount function.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30640 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-02-18 20:24:52 +00:00
reimar
87edb382c6 Add a GetModuleHandleW implementation.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30639 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-02-18 20:23:05 +00:00
reimar
2903a8583f Use snprintf to ensure we do not write outside the buffer bounds
when recording stub names into export_names.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30638 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-02-18 20:20:23 +00:00
diego
f34f239cce Explain WIN32_LOADER definition hack.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30545 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-02-12 14:25:25 +00:00
diego
5b01485ea3 Get rid of pointless CONFIG_QTX_CODECS --> QTX preprocessor indirection.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30544 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-02-12 14:10:21 +00:00
diego
c53143fffb Fix linking of loader test programs when loader is disabled.
Dependencies were only set correctly if the loader code was enabled.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30542 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-02-12 13:45:19 +00:00
reimar
77e66ee012 Add stubs for several functions, needed for CineForm codec.
Patch by Steinar H. Gunderson [sgunderson bigfoot com]
with some modifications by me.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30531 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-02-09 19:43:02 +00:00
reimar
ee2a738ff8 Document some of the ext_stub magic.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30320 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-01-16 15:04:17 +00:00
reimar
e09b799ade 100l, forgot to change the "magic" value in the stub also in the place replacing it.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30319 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-01-16 15:02:49 +00:00
reimar
af6f08ce6a Place a volatile at a more appropriate place.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30268 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-01-10 19:59:36 +00:00
reimar
acc53c9609 Change dummy value to fit into int.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30267 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-01-10 19:58:01 +00:00
reimar
c65994b907 Remove return statement from function that has no return value.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30266 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-01-10 19:52:59 +00:00
reimar
cbdb16328c Avoid excessive fflush in dbgprintf if we didn't even print anything.
Patch by Steinar H. Gunderson [sgunderson bigfoot com]


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30262 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-01-10 15:37:14 +00:00
reimar
7199cc3c4d Implement dummy EncodePointer/DecodePointer functions needed for e.g. lagarith.dll
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29767 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-10-10 09:27:22 +00:00
compn
11ce51e3f0 add YAXPAX and YAPAXI exports to msvcr80
fixes kegavideo binary codec
patch by Roberto Togni


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29682 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-09-16 12:14:17 +00:00
diego
6e9cbdc104 whitespace cosmetics: Remove all trailing whitespace.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29305 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-05-13 02:58:57 +00:00
diego
d9ded9284c Add missing 'void' to parameterless function declarations.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29254 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-05-04 17:35:26 +00:00
diego
2e903f7c75 Remove unnecessary malloc.h #includes and related #ifdeffery.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29126 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-04-02 09:20:48 +00:00
compn
2a1c8c471e enable vp6 codec to read/write .fpf (passlogfile)
fixes 2pass vp6 encoding on linux


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29062 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-03-25 23:59:48 +00:00
diego
be8c67909b Convert HAVE_MALLOC_H into a 0/1 definition, fixes the warning:
mem.c:32:5: warning: "HAVE_MALLOC_H" is not defined


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28629 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-02-17 11:16:19 +00:00
compn
16e790999a remove sys/timeb.h include
fixes compilation on uClibc based i386 system
patch by Markus Heidelberg markus(x.x)heidelberg(x@x)web(x.x)de
ok'd by diego


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28387 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-01-29 03:36:14 +00:00
diego
cc52547ece Reduce QuickTime binary decoder verbosity.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28340 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-01-17 21:33:30 +00:00
diego
0864f92e7a Get rid of pointless 'extern' keywords.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28085 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-12-03 23:01:03 +00:00
diego
26b29f4f2d Replace all occurrences of '__volatile__' and '__volatile' by plain 'volatile'.
We were using an inconsistent mix of the three variants and 'volatile' should
be the most correct and portable variant.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27791 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-10-16 20:17:56 +00:00
diego
6b52a2e974 Change all occurrences of asm and __asm to __asm__, same as was done for FFmpeg.
Neither variant is valid C99 syntax, but __asm__ is the most portable variant.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27788 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-10-16 18:59:27 +00:00
diego
984d028cd2 Remove duplicate vsscanf fallback implementation, we have another in osdep/.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27476 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-08-22 20:53:44 +00:00
diego
7d6022deba Do not provide a prototype for vsscanf when vsscanf is available.
Fixes a redundant redeclaration warning.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27396 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-08-02 17:09:13 +00:00
diego
4b141479da Start unifying names of internal preprocessor directives.
Replace all USE_ prefixes by CONFIG_ prefixes to indicate
options which are configurable.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27373 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-07-30 12:01:30 +00:00
diego
bc0058c63e cosmetics: Remove pointless parentheses from return statements.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26789 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-05-16 09:31:55 +00:00
rtogni
61c5bf8d61 Fix potential segfault in debug printf in expSetFilePointer
Patch by Gianluigi Tiesi


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26486 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-04-21 20:58:20 +00:00
rtogni
7c4e867c4d Support for MSU SCLS (Screen Capture Lossless Codec) with SCLS.DLL
codecs.conf patch by AsSlowAsHell |asslowashell | g m a i l|
win32.c patch by me


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26476 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-04-20 21:13:17 +00:00
rtogni
8f56930458 Add support for msn siren audio coced via binary dll sirenacm.dll
Based on a patch by Ruuds "roadrunnerswife" "users sourceforge net"
Closes bugzilla #963


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26473 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-04-20 16:06:41 +00:00
diego
5e6231b340 #include osdep/mman.h if sys/mman.h is not available.
patch by KO Myung-Hun, komh chollian net


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26143 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-03-03 09:47:01 +00:00
diego
c03c4b5431 Wrap '#include <sys/mman.h>' in HAVE_SYS_MMAN_H.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26137 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-03-01 10:31:51 +00:00
reimar
2da6e47a62 Remove $Id$ tags, they make diffs between different versions
harder to read than necessary.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25877 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-01-27 12:15:27 +00:00