summaryrefslogtreecommitdiffstats
path: root/loader/win32.c
Commit message (Collapse)AuthorAgeFilesLines
* Remove #warning preprocessor directivesdiego2010-11-021-2/+2
| | | | | | | | The #warning preprocessor directive is non-standard and not available with all compilers. Furthermore, the warnings it causes are noisy and have not led to getting any of the underlying issues fixed in the space of a decade. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32480 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove remaining %lf printf conversionsreimar2010-11-021-5/+5
| | | | | | Most cases are just code in comments. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32438 b3059339-0415-0410-9bf9-f77b7e298cf2
* loader: Move fs_seg extern variable declaration to ldt_keeper.hdiego2010-11-021-2/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32133 b3059339-0415-0410-9bf9-f77b7e298cf2
* loader: Add msvcr100 support to the win32 loaderalexc2010-11-021-0/+10
| | | | | | This is required for the Expression Screen Codec binary decoder. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31906 b3059339-0415-0410-9bf9-f77b7e298cf2
* loader: Reuse do_cpuid from cpudetect.c in loader/win32.creimar2010-11-021-15/+1
| | | | | | Also avoids several "used uninitialized" warnings. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31905 b3059339-0415-0410-9bf9-f77b7e298cf2
* loader/win32.c: misc cleanupreimar2010-11-021-32/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make library/export function tables static const. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31898 b3059339-0415-0410-9bf9-f77b7e298cf2 Avoid mixing code and declarations. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31899 b3059339-0415-0410-9bf9-f77b7e298cf2 Make function declarations proper prototypes. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31900 b3059339-0415-0410-9bf9-f77b7e298cf2 Fix type in conditional. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31901 b3059339-0415-0410-9bf9-f77b7e298cf2 Avoid arithmetic on void * pointers. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31902 b3059339-0415-0410-9bf9-f77b7e298cf2 Add const to avoid warnings. The const on the return type is not correct compared to the real win32 API functions, but that really does not matter for us, avoiding the warning is more useful. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31903 b3059339-0415-0410-9bf9-f77b7e298cf2
* loader/win32.c: remove sys/timeb.h includecompn2010-11-021-1/+0
| | | | | | It is obsolete and breaks compilation with new gcc. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31868 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add final missing bits of CineForm HD support on Linux (via the Windowssesse2010-05-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | DirectShow codec). Required changes: - codecs.conf entry (of course). - Allow opening files with “.col” in the file name, just like “vp3” and “.fpf” already was allowed. (CineForm expects to be able to do this, presumably for some color management code.) - In registry.c, fake a few registry keys that the codec expects the installer to have written. Also, change a few magic numbers (0, 2) to the appropriate constants (ERROR_SUCCESS, ERROR_FILE_NOT_FOUND) where appropriate, so the code is easier to follow. SMP works fine, but seemingly performs suboptimally (e.g., on my dual-core laptop, CineForm performs better if I lie to it and tell it I have four cores). I don't know if this is inherent in the codec, or some inefficiency in the emulated synchronization primitives. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31196 b3059339-0415-0410-9bf9-f77b7e298cf2
* Don't try to delete the global memory mutex in the Win32 loader code,sesse2010-03-251-4/+1
| | | | | | | | | | | | since it's now statically allocated and will not be reallocated if a new allocation comes along. This also fixes an issue where the mutex would not always be properly unlocked, leading to deadlocks. I thought I'd committed that ages ago, but obviously not, and it broke CineForm initialization. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30957 b3059339-0415-0410-9bf9-f77b7e298cf2
* Get rid of pointless def_path variable; use codec_path directly instead.diego2010-03-231-10/+13
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30949 b3059339-0415-0410-9bf9-f77b7e298cf2
* Rename get_path.[ch] --> path.[ch].diego2010-03-201-1/+1
| | | | | | | These files now contain different functions related to path handling. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30943 b3059339-0415-0410-9bf9-f77b7e298cf2
* Move SetCodecPath() from loader to get_path.c and make it unconditional.diego2010-03-201-1/+1
| | | | | | | | This fixes compilation with the Win32 loader disabled but other binary codec loaders enabled. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30942 b3059339-0415-0410-9bf9-f77b7e298cf2
* Split codec path related code into a separate file to fix Windows build.reimar2010-03-181-2/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30930 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix thread safety issue in mreq_private: last_alloc was accessed from multiplesesse2010-03-171-8/+3
| | | | | | | | threads without being under a mutex. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30928 b3059339-0415-0410-9bf9-f77b7e298cf2
* Announce Windows XP SP2 instead of Windows 95 OSR2.sesse2010-03-171-31/+15
| | | | | | | | | | | | | | It's time we move to 2010: Announce Windows XP SP2 to codecs instead of Win95 OSR2. Note: We still don't support the *Ex fields in the version info struct properly (we shouldn't really overwrite the structure size, but rather check it to see if it's safe to fill the extra fields). No codec I've found seems to care. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30927 b3059339-0415-0410-9bf9-f77b7e298cf2
* Announce SMP support for Win32.sesse2010-03-171-7/+0
| | | | | | | | | | | Don't hardcode dwNumberOfProcessors=1 for Win32 anymore; the mutex/event code is still far from perfect, but now good enough that I can't find any codecs that breaks with this (tested on a quad with various codecs). This tells codecs they can use more than one core if they want to (some already did, by launching multiple threads even when told there was only a single core). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30926 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix return value of InitializeCriticalSectionAndSpinCount.sesse2010-03-161-1/+2
| | | | | | | | | InitializeCriticalSectionAndSpinCount returns a nonzero value on success, and some codecs (notably VP7) seemingly got confused when it didn't, if and only if we tried to emulate NT or newer. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30913 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix indentation in GetVersionExW.sesse2010-03-151-5/+5
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30902 b3059339-0415-0410-9bf9-f77b7e298cf2
* Implement GetVersionExW with the same data as GetVersionExA but taking in asesse2010-03-151-0/+67
| | | | | | | | different structure, and CreateMutexW, CreateEventW and CreateSemaphoreW as simple wrappers around the A versions. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30900 b3059339-0415-0410-9bf9-f77b7e298cf2
* Replace separate Win32, XAnim and Real codec directories by one global dir.diego2010-03-141-1/+1
| | | | | | | | | Nowadays MPlayer does not use the codecs from other installed programs. A runtime setting will soon take over the rare case that binary codecs should be searched for in non-standard directories. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30888 b3059339-0415-0410-9bf9-f77b7e298cf2
* Implement ResumeThread and SignalObjectAndWait.sesse2010-03-081-0/+31
| | | | | | | | | 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
* Implement Win32 mutexes.sesse2010-03-061-27/+99
| | | | | | | | | | | | | | | | 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
* Fix semaphore behavior in WaitForSingleObject.sesse2010-03-061-1/+2
| | | | | | | | | | | | | 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
* Make Win32 mutex and thread linked lists thread safe.sesse2010-03-061-5/+31
| | | | | | | | | | | | 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
* Make GetModuleHandle(NULL) return a valid pointer.sesse2010-03-051-5/+19
| | | | | | | | | | | 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
* Partial revert of r30843.sesse2010-03-051-17/+5
| | | | | | | | | 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
* Support thread handles in WaitForSingleObject.sesse2010-03-051-5/+29
| | | | | | | | 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
* Make emulated Win32 critical sections thread safe.sesse2010-03-041-17/+30
| | | | | | | | | | | | | | | | | | | | 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
* Fix crashes in CreatePalette by fixing the LOGPALETTE struct.sesse2010-03-041-2/+1
| | | | | | | | | | | 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
* Fix manual reset behavior of Win32 events.sesse2010-03-041-1/+1
| | | | | | | | | | 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
* Fix return values of WaitForSingleObject when checking an event.sesse2010-03-041-2/+2
| | | | | | | 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
* Do not cast the results of malloc/calloc/realloc.diego2010-02-261-2/+2
| | | | | | | | 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
* Add declaration for exp_EH_prolog_dummy().diego2010-02-221-0/+1
| | | | | | | This avoids a warning with -Wmissing-prototypes. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30701 b3059339-0415-0410-9bf9-f77b7e298cf2
* Only #define WIN32_LOADER if it has not been #defined already, fixes warning:diego2010-02-211-0/+2
| | | | | | | loader/win32.c:27:1: warning: "WIN32_LOADER" redefined git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30689 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove pointless '#if 1' preprocessor directives.diego2010-02-191-6/+0
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30654 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add a InitializeCriticalSectionAndSpinCount function.reimar2010-02-181-0/+6
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30640 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add a GetModuleHandleW implementation.reimar2010-02-181-0/+14
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30639 b3059339-0415-0410-9bf9-f77b7e298cf2
* Use snprintf to ensure we do not write outside the buffer boundsreimar2010-02-181-2/+2
| | | | | | | when recording stub names into export_names. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30638 b3059339-0415-0410-9bf9-f77b7e298cf2
* Explain WIN32_LOADER definition hack.diego2010-02-121-0/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30545 b3059339-0415-0410-9bf9-f77b7e298cf2
* Get rid of pointless CONFIG_QTX_CODECS --> QTX preprocessor indirection.diego2010-02-121-42/+39
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30544 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix linking of loader test programs when loader is disabled.diego2010-02-121-0/+1
| | | | | | | 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
* Add stubs for several functions, needed for CineForm codec.reimar2010-02-091-0/+82
| | | | | | | | 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
* Document some of the ext_stub magic.reimar2010-01-161-0/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30320 b3059339-0415-0410-9bf9-f77b7e298cf2
* 100l, forgot to change the "magic" value in the stub also in the place ↵reimar2010-01-161-1/+1
| | | | | | replacing it. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30319 b3059339-0415-0410-9bf9-f77b7e298cf2
* Place a volatile at a more appropriate place.reimar2010-01-101-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30268 b3059339-0415-0410-9bf9-f77b7e298cf2
* Change dummy value to fit into int.reimar2010-01-101-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30267 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove return statement from function that has no return value.reimar2010-01-101-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30266 b3059339-0415-0410-9bf9-f77b7e298cf2
* Avoid excessive fflush in dbgprintf if we didn't even print anything.reimar2010-01-101-1/+1
| | | | | | | Patch by Steinar H. Gunderson [sgunderson bigfoot com] git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30262 b3059339-0415-0410-9bf9-f77b7e298cf2
* Implement dummy EncodePointer/DecodePointer functions needed for e.g. ↵reimar2009-10-101-0/+12
| | | | | | lagarith.dll git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29767 b3059339-0415-0410-9bf9-f77b7e298cf2
* add YAXPAX and YAPAXI exports to msvcr80compn2009-09-161-0/+3
| | | | | | | | fixes kegavideo binary codec patch by Roberto Togni git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29682 b3059339-0415-0410-9bf9-f77b7e298cf2
* whitespace cosmetics: Remove all trailing whitespace.diego2009-05-131-38/+38
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29305 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add missing 'void' to parameterless function declarations.diego2009-05-041-20/+20
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29254 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove unnecessary malloc.h #includes and related #ifdeffery.diego2009-04-021-3/+0
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29126 b3059339-0415-0410-9bf9-f77b7e298cf2
* enable vp6 codec to read/write .fpf (passlogfile)compn2009-03-251-3/+5
| | | | | | | fixes 2pass vp6 encoding on linux git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29062 b3059339-0415-0410-9bf9-f77b7e298cf2
* Convert HAVE_MALLOC_H into a 0/1 definition, fixes the warning:diego2009-02-171-1/+1
| | | | | | | 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
* remove sys/timeb.h includecompn2009-01-291-1/+0
| | | | | | | | | 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
* Reduce QuickTime binary decoder verbosity.diego2009-01-171-2/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28340 b3059339-0415-0410-9bf9-f77b7e298cf2
* Get rid of pointless 'extern' keywords.diego2008-12-031-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28085 b3059339-0415-0410-9bf9-f77b7e298cf2
* Replace all occurrences of '__volatile__' and '__volatile' by plain 'volatile'.diego2008-10-161-13/+13
| | | | | | | | 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
* Change all occurrences of asm and __asm to __asm__, same as was done for FFmpeg.diego2008-10-161-1/+1
| | | | | | | 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
* Remove duplicate vsscanf fallback implementation, we have another in osdep/.diego2008-08-221-13/+0
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27476 b3059339-0415-0410-9bf9-f77b7e298cf2
* Do not provide a prototype for vsscanf when vsscanf is available.diego2008-08-021-3/+1
| | | | | | | Fixes a redundant redeclaration warning. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27396 b30