1
0
mirror of https://github.com/mpv-player/mpv synced 2025-03-23 11:47:45 +00:00
Commit Graph

627 Commits

Author SHA1 Message Date
Uoti Urpala
95fba94860 Merge svn changes up to r30917 2010-04-26 17:11:04 +03:00
Uoti Urpala
ff559b8e90 Merge svn changes up to r30907 2010-04-26 16:57:25 +03:00
sesse
f414a15b33 Fix return value of InitializeCriticalSectionAndSpinCount.
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
2010-03-16 22:08:56 +00:00
sesse
2990ec1682 Fix indentation in GetVersionExW.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30902 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-15 16:09:35 +00:00
sesse
95f68d3976 Add support for Apple's ProRes and AIC codecs, now that all prerequisites
are in place.

Add codecs.conf entry for both codecs, and qt_comp.h entry for ProRes
(not used except for debugging, so mainly for completeness). Both work
with -demuxer mov only, as all other QuickTime binary codecs.
AIC support is for OS X only, and untested.

Split out from a patch Andrew Wason (r e c t a l o g i c <at> rectalogic
<dot> com) posted in June.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30901 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-15 12:58:17 +00:00
sesse
22ede70e58 Implement GetVersionExW with the same data as GetVersionExA but taking in a
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
2010-03-15 12:54:54 +00:00
sesse
45fd2e0457 Use the high-level QuickTime decoding APIs (DecompressSequenceFrameS and
friends) instead of the unsupported, internal ones (ImageCodecBeginBand
etc.). This is a prerequisite for, among others, Apple ProRes 4:2:2 support,
and simplifies the file by quite a bit.

Tested on Linux with all existing QuickTime codecs I could get to work in the
first place; qt261, qtavui, qtsvq3 have no change. qtcvid appears to not give
bit-exact the same output as before, but it looks just the same in playback
to me. qt3ivx stops crashing on exit (so works better than before). With some
extra patches and a codecs.conf entry, ProRes 4:2:2 also works, including on
Linux.

Since codec initialization is now actually done on decoder init instead of on
first frame, fallback should also work a bit better (although usually, qtvideo
is last in the chain). Also made the decoder complain explicitly if the
demuxer data is not there (ie., the user tried to run without -demuxer mov).

This patch is a cleaned up version of what Andrew Wason (rectalogic A
rectalogic D com) posted to mplayer-dev-eng in June.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30899 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-15 12:05:56 +00:00
diego
aee9749bca Replace separate Win32, XAnim and Real codec directories by one global dir.
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
2010-03-14 16:13:32 +00:00
Uoti Urpala
00323c06e2 Delete things related to old translation system
Remove the help/ subdirectory, configure code to create toplevel
help_mp.h, and all the '#include "help_mp.h"' lines from .c files.
2010-03-10 03:47:14 +02:00
Uoti Urpala
0269d22d32 Merge svn changes up to r30876 2010-03-10 03:18:42 +02:00
Uoti Urpala
240550bbb9 Merge svn changes up to r30848 2010-03-10 03:00:14 +02:00
Uoti Urpala
e74708f619 Merge svn changes up to r30748 2010-03-10 01:50:55 +02:00
Uoti Urpala
194efde18f Merge svn changes up to r30702 2010-03-10 01:08:50 +02:00
Uoti Urpala
0dce155dd3 Merge svn changes up to r30694 2010-03-10 01:01:15 +02:00
Uoti Urpala
90f5873f1a Merge svn changes up to r30675 2010-03-10 00:47:25 +02:00
Uoti Urpala
13221a7165 Merge svn changes up to r30663
Conflicts:
	gui/cfg.c
	libmpcodecs/vd_dmo.c
	mplayer.c
2010-03-10 00:13:11 +02:00
Uoti Urpala
c37f09693d Merge svn changes up to r30643 2010-03-10 00:00:06 +02:00
Uoti Urpala
42bf12c2d3 Merge svn changes up to r30595
Conflicts:
	mplayer.c
	vidix/nvidia_vid.c
2010-03-09 23:37:00 +02:00
Uoti Urpala
36e7a20e69 Merge svn changes up to r30550 2010-03-09 23:03:14 +02:00
Uoti Urpala
8e593f5a34 Merge svn changes up to r30529 2010-03-09 22:47:41 +02:00
Uoti Urpala
173beb5608 Merge svn changes up to r30514 2010-03-09 19:58:02 +02:00
Uoti Urpala
5c6795a687 Merge svn changes up to r30494
Conflicts:
	libvo/vo_gl.c
	libvo/x11_common.c
2010-03-09 19:34:30 +02:00
sesse
4abf80e24c Fix a syntax error in graph.h.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30874 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-09 13:19:25 +00:00
sesse
49471eaa3d Add copyright headers.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30873 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-09 13:18:52 +00:00
sesse
f08a70d7df Style changes as requested by Diego.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30872 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-09 12:40:14 +00:00
cehoyos
b35edca8bf Commit files by Steinar Gunderson, forgotten in r30866.
Fixes compilation on x86-32.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30870 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-09 12:00:30 +00:00
sesse
18deeb4aff Implement DirectShow filter graph.
DirectShow specifies that a filter (codec) can expect JoinFilterGraph
to be called, and store a reference to the graph manager. Implement a
very bare-bones graph manager (all functions are stubs, and no extra
interfaces are implemented) and give it to the codec on init.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30866 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-08 19:57:37 +00:00
sesse
9b67104eb7 Correct QuickTime dpi output.
The dpi value for QuickTime codecs is stored as Fixed16 (16.16 fixed-point),
not int. Correct the output value accordingly.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30865 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-08 19:54:07 +00:00
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
Uoti Urpala
5234c72e28 Restore collapsed whitespace in output messages
For some reason commit e306174952, which
replaced translation macro names with the corresponding English
strings, also collapsed multiple consecutive space characters into
one. Change most of these back. In a couple of cases the amount of
whitespace is important for alignment, and for the rest it at least
keeps the strings closer to the existing translations.
2010-03-07 21:34:54 +02:00
sesse
a8804d4d71 Fix QuickTime emulated OSErr type.
The OSErr type on Mac OS X is int16_t, not int32_t (see
http://developer.apple.com/mac/library/documentation/QuickTime/Reference/QTRef_DataTypes/Reference/reference.html).
The upper 16 bits will typically be something random (they're entirely
undefined). Change the type so it's right; a few places tried to compensate
for this by masking out the upper bits, but a few places also missed them,
which made for unpredictable behavior.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30854 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-06 11:12:32 +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
e59081d121 Remove pointless '#if 1' preprocessor directive.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30702 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-02-22 13:59:32 +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
289697dc50 Add public function VideoForWindowsVersion() to the appropriate header file.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30693 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-02-21 23:33:03 +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
8ba6b4eaf9 cosmetics: Remove pointless empty lines at EOF.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30675 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-02-20 21:02:49 +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