summaryrefslogtreecommitdiffstats
path: root/osdep
Commit message (Collapse)AuthorAgeFilesLines
* subprocess: minor cosmetic cleanupwm42014-11-223-5/+9
| | | | | Don't recursively include the whole stream.h header; only include what's minimally needed, and handle the rest with forward declarations.
* lua: subprocess: move to osdep/subprocess-{win,posix}.cJames Ross-Gowan2014-11-223-0/+547
| | | | | | The subprocess code was already split into fairly general functions, separate from the Lua code. It's getting pretty big though, especially the Windows-specific parts, so move it into its own files.
* Catch SIGPIPEwm42014-11-201-0/+3
| | | | | | | | | | | | | | Avoids a crash if OpenSSL tries to write to a broken connection with write(). Obviously OpenSSL really should use send() with MSG_NOSIGNAL, but for some reason it doesn't. This should probably be considered an OpenSSL bug, but since in this case we "own" the process, there is no harm in ignoring the signal. This is not done with libmpv, because as a library we don't want to mess with global state. It's also not done if terminal handling is disabled - this is a bit arbitrary, but I don't care much.
* terminal-unix: Add some comments about FD use.Rudolf Polzer2014-11-131-0/+8
|
* terminal-unix: Fix initial terminal state.Rudolf Polzer2014-11-131-1/+1
| | | | | | When mpv is backgrounded initially (via & in the shell), do no longer change terminal settings on startup. This fixes broken local echo after launching a backgrounded mpv.
* atomics: add atomic_compare_exchange_strong()wm42014-11-091-0/+11
| | | | | | | | | | | | | | | | As usual, we use C11 semantics, and emulate it if <stdatomic.h> is not available. It's a bit messy with __sync_val_compare_and_swap(). We assume it has "strong" semantics (it can't fail sporadically), but I'm not sure if this is really the case. On the other hand, weak semantics don't seem to be possible, since the builtin can't distinguish between the two failure cases that could occur. Also, to match the C11 interface, use of gcc builtins is unavoidable. Add a check to the build system to make sure the compiler supports them (although I don't think there's any compiler which supports __sync_*, but not these extensions). Needed for the following commit.
* win32: silence some warningsJames Ross-Gowan2014-11-081-1/+1
| | | | Signed-off-by: wm4 <wm4@nowhere>
* osdep: potentially fix compilation on OpenBSDwm42014-10-311-0/+1
| | | | | The <pthread_np.h> header expects that <pthread.h> was already included. We were including <pthread.h> only later via our threads.h.
* osdep: add helper for creating a sane pipe()wm42014-10-262-4/+21
| | | | | Or in other words, a pipe that has the CLOEXEC flag set. Needed since Linux' pipe2() is not in POSIX yet.
* terminal: drop ncurses/terminfo/termcap supportwm42014-10-231-386/+3
| | | | | | It was disabled since the last release, and nobody complained loudly. Further details see commit 4b5c3ea7.
* terminal: strictly don't read terminal input if stdout is not a terminalwm42014-10-231-5/+8
| | | | | | | | | | | | | Doing that doesn't make sense anyway: it's meant for interactive input, and if the output of the player is not on the terminal, how will you interact with it? It was also quite in the way when trying to read verbose output with e.g. less while the player was running, because the player would grab half of all input meant for less (simply because stdin is still connected to the terminal). Remove the now redundant special-casing of pipe input.
* win32: change config path prioritieswm42014-10-231-2/+2
| | | | | | | | | | | | | | | | | Assume mpv.exe is located in $mpv_exe_dir, then config files were preferably loaded from "$mpv_exe_dir/mpv". This was mostly traditional, and inherited from MPlayer times. Reverse the config path priority order, and prefer $CSIDL_APPDATA/mpv as main config path. This also fixes behavior when writing watch_later configs, and mpv is installed in a not-writable path. It's possible that this will cause regressions for some users, if the change in preference suddenly prefers stale config files (which may happen to longer around in the appdata config dir) over the user's proper config. Also explicitly document the behavior.
* osdep: NetBSD pthread_setname_np()wm42014-10-221-0/+6
| | | | | | From: bugmen0t on github Fixes #1207.
* osdep: shorten thread name on glibc onlywm42014-10-201-3/+7
| | | | | Instead of affecting every platform, do this for glibc only (where it's known to be a problem), and only if the right error is returned.
* osdep: limit thread names to 16 characterswm42014-10-201-1/+1
| | | | | | | | | | | | | | | | It turns out the glibc people are very clever and return an error if the thread name exceeds the maximum supported kernel length, instead of truncating the name. So everyone has to hardcode the currently allowed Linux kernel name length limit, even if it gets extended later. Also the Lua script filenames could get too long; use the client name instead. Another strange thing is that on Linux, unrelated threads "inherit" the name by the thread they were created. This leads to random thread names, because there's not necessarily a strong relation between these threads (e.g. script command leads to filter recreation -> the filter's threads are tagged with the script's thread name). Unfortunate.
* Set thread name for debuggingwm42014-10-195-0/+25
| | | | | | | | | | Especially with other components (libavcodec, OSX stuff), the thread list can get quite populated. Setting the thread name helps when debugging. Since this is not portable, we check the OS variants in waf configure. old-configure just gets a special-case for glibc, since doing a full check here would probably be a waste of effort.
* win32: remove an unneeded mechanismwm42014-10-192-7/+3
| | | | | Instead of relying on the macro-defined lseek(), just use _lseeki64 directly, and avoid a minor mess.
* win32: remove outdated commentwm42014-10-191-3/+0
|
* win32: get rid of mp_stat in the normal source codewm42014-10-172-7/+54
| | | | | | | | | | | mp_stat() instead of stat() was used in the normal code (i.e. even on Unix), because MinGW-w64 has an unbelievable macro-mess in place, which prevents solving this elegantly. Add some dirty workarounds to hide mp_stat() from the normal code properly. This now requires replacing all functions that use the struct stat type. This includes fstat, lstat, fstatat, and possibly others. (mpv currently uses stat and fstat only.)
* win32: make lseek() fail on pipeswm42014-10-172-0/+19
| | | | | | On MingGW seeking on pipes succeeds. This fix is quite similar to Gnulib's (lib/lseek.c).
* cocoa: allow to disable apple remote at compile timeStefano Pigozzi2014-10-171-0/+9
| | | | | Actually doesn't remove the related flags so that one can still pass the option with the option doing nothing.
* terminal: recognize ^hwm42014-10-171-0/+1
| | | | | | Fixes #1185. CC: @mpv-player/stable
* cocoa: post keydown and keyup events without event monitorStefano Pigozzi2014-10-092-0/+6
| | | | | Our code worked under the assumption that the event monitor is always active and we did remove the keydown and keyup overrides from our cocoa view.
* libmpv/cocoa: don't start the event monitorStefano Pigozzi2014-10-092-10/+21
| | | | | | The event monitor is used to get keyboard events when there is no window, but since it is a global monitor to the current process, we don't want it in a library setting.
* Remove mpbswap.hwm42014-09-251-32/+0
| | | | | | This was once central, but now it's almost unused. Only vf_divtc still uses it for extremely weird and incomprehensible reasons. The use in stream.c is trivial. Replace these, and remove mpbswap.h.
* audio: drop swapped-endian audio formatswm42014-09-231-0/+6
| | | | | | | | | | | | | | | | | | | | Until now, the audio chain could handle both little endian and big endian formats. This actually doesn't make much sense, since the audio API and the HW will most likely prefer native formats. Or at the very least, it should be trivial for audio drivers to do the byte swapping themselves. From now on, the audio chain contains native-endian formats only. All AOs and some filters are adjusted. af_convertsignendian.c is now wrongly named, but the filter name is adjusted. In some cases, the audio infrastructure was reused on the demuxer side, but that is relatively easy to rectify. This is a quite intrusive and radical change. It's possible that it will break some things (especially if they're obscure or not Linux), so watch out for regressions. It's probably still better to do it the bulldozer way, since slow transition and researching foreign platforms would take a lot of time and effort.
* osdep: hack to fix build with low quality pthreads-w32 headerswm42014-09-201-0/+1
| | | | | | | | | | | | | | | | When compiling semaphore_osx.c on win32, the following error happened: /usr/i686-w64-mingw32/include/semaphore.h:160:6: error: unknown type name 'mode_t' This is because this system header references symbols that are not not defined anywhere. This is clearly a bug in pthreads-w32, but has been known and unfixed since 2012, so add a hack to fix it. We build semaphore_osx.c this way because it saves us an extra configure check. On win32, Linux, etc. it's empty and contains "#include <semaphore.h>" only. Should fix #1108.
* osdep/semaphore_osx.c: Include osdep/semaphore.h before #ifdefDiogo Franco (Kovensky)2014-09-101-3/+2
| | | | | osdep/semaphore.h is the file that defines the very #define that is tested in the #ifdef that wraps its inclusion, so it was never compiled.
* osdep: fix windows buildwm42014-09-101-1/+2
| | | | Oops.
* osdep: add POSIX semaphore emulation for OSXwm42014-09-102-0/+179
| | | | | | | | | | | | | | | | | | | | | | | OSX is POSIX conformant, but it's a sad joke: it provides the <semaphore.h> prototype as the standard demands, but they're empty wrappers, and all functions just return ENOSYS. Emulate them similar to how osdep/io.h emulate filesystem functions on Windows. By including the header, working sem_* functions become available. To make it async-signal safe, use a pipe for wakeup (write() is AS-safe, but mutexes can't be). Actually I'm not sure anymore if we really need AS-safety, but for now the emulation can do it. On Linux, the system provides a far more efficient and robust implementation. We definitely want to avoid using the emulation if possible, so this code is active on OSX only. For convenience we always build the source file though, even if the implementation is disabled and no actual code is generated. (Linux provides working semaphores, but is formally not POSIX conformant. On OSX it's the opposite. Is POSIX a complete joke?)
* terminal-unix: don't read from stdin if it's not a terminalwm42014-09-101-1/+1
| | | | | | I'm not quite sure what we should actually do (maybe read input commands?), but interpreting input as terminal key sequences is definitely weird. So just do nothing.
* terminal-unix: move to threadwm42014-09-103-37/+73
| | | | | | | Do terminal input with a thread, instead of using the central select() loop. This also changes some details how SIGTERM is handled. Part of my crusade against mp_input_add_fd().
* terminal-win: minor simplificationwm42014-09-101-2/+2
| | | | Code should be equivalent.
* win32: add tmpfile() replacementJames Ross-Gowan2014-09-052-0/+37
| | | | | | | | | | | The Windows version of tmpfile is actually pretty broken. It tries to create the file in the root directory of the current drive, which means on Vista and up, it normally fails due to insufficient permissions. Replace it with a version that uses GetTempPath. Also remove the Windows-specific note about automatic deletion of the cache file. FILE_FLAG_DELETE_ON_CLOSE is available in NT, and it should be pretty reliable.
* Move compat/ and bstr/ directory contents somewhere elsewm42014-08-294-2/+137
| | | | | | | | | bstr.c doesn't really deserve its own directory, and compat had just a few files, most of which may as well be in osdep. There isn't really any justification for these extra directories, so get rid of them. The compat/libav.h was empty - just delete it. We changed our approach to API compatibility, and will likely not need it anymore.
* bstr: preparation for next commitwm42014-08-291-0/+1
| | | | | | | | Just so I can move this file without modifying its contents in the next commit. compat/compiler.h is to be moved to osdep/ with the next commit, so add a dummy header.
* posix: use STD*_FILENO constantsBen Boeckel2014-08-281-4/+4
| | | | | Rather than "magic" numbers, use meaningful constant names provided by unistd.h.
* win32: correct SGR sequence handlingJames Ross-Gowan2014-08-241-5/+13
| | | | | | This should get colour working again on the Windows console. Fixes #1032.
* win32: correct HANDLE typeJames Ross-Gowan2014-08-243-5/+5
| | | | | The correct type is HANDLE, not HANDLE*, though this change shouldn't affect functionality.
* terminal-unix: new input handling codewm42014-08-211-33/+246
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is independent of terminfo/termcap, and supports more keys. Originally, the goal was just extending the set of supported key sequences, but since the terminfo stuff actually makes this much harder, and since it's a big blob of bloated legacy crap, just drop it. Instead, use hardcoded tables. It's pretty easy to get on the same level as the old code (with fewer LOC), and we avoid additional error situations, such as mallocs which could fail (the old code just ignores malloc failures). We also try to support some xterm escape sequences, which are in relatively widespread use. (I'm not sure about the urxvt ones.) Trying to deal with xterm shift/ctrl/alt modifiers is probably a bit overcomplicated, and only deals with prefixes - xterm randomly uses prefix sequences for some keys, and suffixes for others (what the heck). Additionally, try to drop unknown escape codes. This basically relies on a trick: in almost 100% of all situations, a read() call will actually return complete sequences (possibly because of pipe semantics and atomic writes from the terminal emulator?), so it's easy to drop unknown sequences. This prevents that they trigger random key bindings as the code interprets the part after ESC as normal keys. This also drops the use of terminfo for sending smkx/rmkx. It seems even vt100 (to which virtually everything non-legacy is reasonably compatible with) supports the codes we hardcode, so it should be fine. This commit actually changes only the code if terminfo/termcap are not found. The next commit will make this code default.
* terminal-win: read input from a threadwm42014-08-212-29/+51
| | | | | | | | | Surprisingly, WaitFor* works on console handles. We can simply run the code for reading the console in a thread, and don't have to worry about crazy win32 crap in the rest of the player's input code anymore. This also fixes the issue that you couldn't unpause the player from the terminal, because the player would stop polling for input.
* terminal: some cleanupswm42014-08-213-64/+32
| | | | In particular, remove all the stupid debug printfs from the win code.
* terminal-win: remove nonsensical codewm42014-08-211-9/+0
| | | | | Something about a non-working MinGW thing? Really, I don't care. It also prevents using the console API properly.
* win32: emulate some ANSI terminal escape codeswm42014-08-214-41/+82
| | | | | | | | | | | | | | We already redirect all terminal output through our own wrappers (for the sake of UTF-8), so we might as well use it to handle ANSI escape codes. This also changes behavior on UNIX: we don't retrieve some escape codes per terminfo anymore, and just hardcode them. Every terminal should understand them. The advantage is that we can pretend to have a real terminal in the normal player code, and Windows atrocities are locked away in glue code.
* terminal-unix: eliminate unnecessary variablewm42014-08-201-5/+2
|
* cocoa: move handleFilesArray: to macosx_eventsFRAU KOUJIRO2014-08-064-17/+18
|
* cocoa: move set_input_context to macosx_eventsFRAU KOUJIRO2014-08-064-9/+9
|
* cocoa: sync inputContext inside EventsResponderFRAU KOUJIRO2014-08-063-12/+28
|
* cocoa: decouple events from application somewhatFRAU KOUJIRO2014-08-064-64/+118
|
* Remove the last remains of slave modewm42014-08-013-32/+2
| | | | | | | | | | | Almost nothing was left of it. The only thing this commit actually removes is support for reading input commands from stdin. But you can emulate this via: --input-file=/dev/stdin --input-terminal=no However, this won't work on Windows. Just use a named pipe.
* cocoa: fix key equivalent dispatchingStefano Pigozzi2014-07-302-22/+7
| | | | | | | | | | Prior to this commit we had a list of key modifiers and checked against that. Actually, the Cocoa framework has a built in way to do it and it involves calling performKeyEquivalent: on the menu instance. Fixes #946 cc @mpv-player/stable: this should apply with no conflicts
* osdep: don't assume errno is positivewm42014-07-251-2/+2
| | | | | Apparently this is not necessarily the case, so just drop the silly idea that depended on this assumption.
* cocoa: fix compilation on OS X 10.8Stefano Pigozzi2014-07-142-4/+30
|
* build: deal with endian messwm42014-07-101-0/+31
| | | | | | | | | | | | | | | | | | | | There is no standard mechanism for detecting endianess. Doing it at compile time in a portable way is probably hard. Doing it properly with a configure check is probably hard too. Using the endian definitions in <sys/types.h> (usually includes <endian.h>, which is not available everywhere) works under circumstances, but the previous commit broke it on OSX. Ideally all code should be endian dependent, but that is not possible due to the dependencies (such as FFmpeg, some video output APIs, some audio output APIs). Create a header osdep/endian.h, which contains various fallbacks. Note that the last fallback uses libavutil; however, it's not clear whether AV_HAVE_BIGENDIAN is a public symbol, or whether including <libavutil/bswap.h> really makes it visible. And in fact we don't want to pollute the namespace with libavutil definitions either. Thus it's only the last fallback.
* config: use the same signature for win32/OSX specific path functionswm42014-06-263-8/+12
| | | | | | | | Seems like a good idea, even if it's basically unused (yet). Also document requirements on the functions (they're not obvious). OSX changes untested.
* config: make passing talloc context optional for some functionswm42014-06-262-14/+7
| | | | | | | | | | | | | | | | Until now, the config functions added various allocations to the user- provided talloc context. Make it so that they're all under the returned allocation instead. This allows avoiding having to create an extra temporary context for some callers, and also avoids adding random memory leaks by accidentally passing a NULL context. mp_find_all_config_files() has to be changed not to return a pointer into the middle array for this to work. Make it add paths in order (instead of reverse), and then reverse the array entries after that. Also remove the declarations for the win-specific private functions. Remove STRNULL(); it's barely needed anymore and the functions are not called with NULL filenames anymore.
* Basic xdg directory implementationKenneth Zhou2014-06-263-40/+39
| | | | | | | | | | Search $XDG_CONFIG_HOME and $XDG_CONFIG_DIRS for config files. This also negates the need to have separate user and global variants of mp_find_config_file() Closes #864, #109. Signed-off-by: wm4 <wm4@nowhere>
* win32: implement --priority differentlywm42014-06-122-94/+0
| | | | | | | Does anyone actually use this? For now, update it, because it's the only case left where an option points to a global variable (and not a struct offset).
* input: separate wakeup pipe creation into a separate functionwm42014-05-302-0/+26
| | | | | Error handling is slightly reduced: we assume that setting a pipe to non-blocking can never fail.
* timer: remove unneeded time_t overflow checkwm42014-05-241-12/+1
| | | | | | | This is mostly covered by the OSX workaround, if the timeout is very high. It also means that with systems using 32 bit time_t, the time will overflow 2036 already, instead of 2037, but we don't consider this a problem.
* timer: workaround for crappy operating systemswm42014-05-231-0/+1
| | | | | | | | | | Some operating systems apparently can't deal with really long timeouts in pthread_cond_timedwait(). Passing a time about 300000 in the future makes the call return immediately. (tv_sec/time_t doesn't overflow in this situation.) Reduce the wait time to about 100 days, which seems to work fine. The list of affected OSes follows: OSX
* timer: fix previous commitwm42014-05-221-1/+1
| | | | | Sigh... of course the type of the (?:) exprsssion is double, so INT64_MAX was converted to double, which is a problem.
* timer: improve overflow checkswm42014-05-221-4/+5
| | | | | | | Probably more correct and better readable. Although the special-casing of 0x1p63 is weird in terms of readability (the value itself is INT64_MAX+1, so it's already outside of range, but INT64_MAX is not exactly representable with double precision).
* timer: fix (usually impossible) timespec.tv_sec overflowwm42014-05-221-1/+13
| | | | | | | This usually can't happen, because even if time_us (first input value) is INT64_MAX, the value added to tv_sec will be about 2^43, and tv_sec will be <2^31, far below a possible overflow in 64 bits. But should time_t be 32 bits (32 bit Linux/Windows?), an overflow could happen.
* osdep: silence a -Wshadow warningwm42014-05-211-2/+2
|
* timer: account for negative time valueswm42014-05-181-2/+6
| | | | | | | | It can easily happen that mp_time_us_to_timespec() gets a time in the past, and then the time difference will be negative. Regression introduced in commit f47a4fc3. Also fix an underflow check in mp_add_timeout().
* threads: use mpv time for mpthread_cond_timedwait wrapperwm42014-05-184-53/+87
| | | | | | Use the time as returned by mp_time_us() for mpthread_cond_timedwait(), instead of calculating the struct timespec value based on a timeout. This (probably) makes it easier to wait for a specific deadline.
* terminal: always use SA_RESTART with sigaction()wm42014-04-261-1/+1
| | | | | | | One problem is that for example stdio functions won't restart syscalls manually, and instead treat EINTR as an error. So passing SA_RESTART is the only sane thing to do, unless you have special requirements, which we don't.
* threads: fix function namewm42014-04-232-4/+4
| | | | Closer to the corresponding standard function pthread_cond_timedwait.
* dispatch: move into its own source filewm42014-04-232-249/+0
| | | | | | | This was part of osdep/threads.c out of laziness. But it doesn't contain anything OS dependent. Note that the rest of threads.c actually isn't all that OS dependent either (just some minor ifdeffery to work around the lack of clock_gettime() on OSX).
* glob-win: support UnicodeJames Ross-Gowan2014-04-213-103/+151
| | | | | | | | | | | | | | | | glob-win.c wasn't big, so it was easier to rewrite it. The new version supports Unicode, handles directories properly, sorts the output and puts all its allocations in the same talloc context to simplify the implementation of globfree. Notably, the old glob had error checking code, but didn't do anything with the errors since the error reporting code was commented out. The new glob doesn't copy this behaviour. It just treats errors as if there were no more matching files, which shouldn't matter for mpv, since it ignores glob errors too. To match the other Windows I/O helper functions, the definition is moved to osdep/io.h.
* Kill all tabswm42014-04-132-1865/+1865
| | | | | | | | | | | I hate tabs. This replaces all tabs in all source files with spaces. The only exception is old-makefile. The replacement was made by running the GNU coreutils "expand" command on every file. Since the replacement was automatic, it's possible that some formatting was destroyed (but perhaps only if it was assuming that the end of a tab does not correspond to aligning the end to multiples of 8 spaces).
* client API: add mpv_get_wakeup_pipe convenience functionwm42014-04-122-1/+4
| | | | Should make integreating with some event loops easier. Untested.
* terminal-unix: reject overlong termcap stringswm42014-04-101-0/+3
| | | | | | | | Our own tables have size for only 8 chars, so these sequences must be rejected. It seems strings of length 8 are still ok, because the code uses memcmp and not strcmp, so still allow these. Based on mplayer-svn commit r37129.
* timer: reduce ifdef headsplitting-factorwm42014-03-091-3/+8
| | | | | I'd rather duplicate some trivial code, rather than split functions in the middle with ifdefs.
* timer: switch to CLOCK_MONOTONICwm42014-03-091-0/+10
| | | | | | | | | | | | | | | | | | | | | | | Apparently, this is always _really_ monotonic, despite what the Linux manpages say. So this should be much better than gettimeofday(). (At times there were kernel bugs which broke the monotonic property.) From the perspective of the player, time can still be discontinuous (you could just stop the process with ^Z), but at least it's guaranteed to be monotonic without further hacks required. Also note that clock_gettime() returns the time in nanoseconds. We want microseconds only, because that's the unit we chose internally. Another problem is that nanoseconds can wrap pretty quickly (less than 300 years in 63 bits), so it's just better to use microseconds. The devision won't make the code that much slower (compilers can avoid a real division). Note: this expects that the system provides clock_gettime() as well as CLOCK_MONOTONIC. Both are optional according to POSIX. The only system I know which doesn't have these, OSX, has seperate timer code anyway, but I still don't know whether more obscure (yet supported) platforms have a problem with this, so I'm playing safely. But this still expects that CLOCK_MONOTONIC always works at runtime if it's defined.
* timer: add utility function to get relative timewm42014-02-282-0/+17
|
* threads: fix wait time overflow checkwm42014-02-261-2/+2
| | | | | | | | | | | | | When passing a very large timeout to mpthread_cond_timed_wait(), the calculations could overflow, setting tv_sec to a negative value, and making the pthread_cond_timed_wait() call return immediately. This accidentally made Lua support poll and burn CPU for no reason. The existing overflow check was ineffective on 32 bit systems. tv_sec is usually a long, so adding INT_MAX to it will usually not overflow on 64 bit systems, but on 32 bit systems it's guaranteed to overflow. Simply fix by clamping against a relatively high value. This will work until 1 week before the UNIX time wraps around in 32 bits.
* win32: restore support for exe directory as config directoryelevengu2014-02-141-1/+5
| | | | | | | | Same rationale as b2c2fe7a but updated to work with path-win.c Signed-off-by: wm4 <wm4@nowhere> Merges/closes #543.
* cocoa: fix deadlock during initialization [2]Stefano Pigozzi2014-02-131-6/+3
| | | | Fixup commit for 20fa191ad.
* cocoa: fix deadlock during initializationStefano Pigozzi2014-02-131-1/+2
| | | | | | Thanks to @wm4 for catching the bug. Fixes #405
* timer: init only oncewm42014-02-102-3/+18
| | | | | | | | | | This avoids trouble if another mpv instance is initialized in the same process. Since timeBeginPeriod/timeEndPeriod are hereby not easily matched anymore, use an atexit() handler to call timeEndPeriod, so that we can be sure these calls are matched, even if we allow multiple initializations later when introducing the client API.
* threads: add a dispatch queue thingwm42014-02-102-0/+250
| | | | | | Makes working with the (still) single-threaded playback thread easier. Might be reusable for other stuff.
* threads: avoid timeout calculation overflowwm42014-02-101-0/+3
| | | | | | | | | It's quite possible to overflow the calculation by setting the timeout to high values. Limit it to INT_MAX, which should be safe. The issue is mainly the secs variable. timespec.tv_sec will normally be 64 bit on sane systems, and we assume it can't overflow by adding INT_MAX to it.
* io: make MP_PATH_MAX private to win32 codewm42014-02-032-12/+10
| | | | | The win32 code is the only thing which actually needs this (and it's used to make emulation of UTF-8 filename APIs easier).
* threads: add function to calculate deadline for timed waitswm42014-01-312-3/+14
| | | | | | | | | | | | Usually, you have to call pthread_cond_timedwait() in a loop (because it can wake up sporadically). If this function is used by another higher level function, which uses a relative timeout, we actually have to reduce the timeout on each iteration - or, simpler, compute the "deadline" at the beginning of the function, and always pass the same absolute time to the waiting function. Might be unsafe if the system time is changed. On the other hand, this is a fundamental race condition with these APIs.
* threads: add wrapper for initializing recursive mutexeswm42014-01-312-0/+13
| | | | Damn this overly verbose pthread API.
* cocoa: sort files opened from Finder the same way Finder doesBilal Syed Hussain2014-01-201-1/+2
| | | | Fixes #497
* w32: use the w32_common keymap in terminal-win tooJames Ross-Gowan2014-01-193-40/+130
|
* io/win32: move mp_attach_console to terminal-win.cMartin Herkt2014-01-163-23/+17
| | | | Why didn't I put it there from the start?
* cocoa: add application icon to the Dock when run from CLIStefano Pigozzi2014-01-141-0/+16
| | | | | | | | | | Application icon was added to the Dock only when run inside of a bundle. That was handled automatically by OS X using the Info.plist definition. To add the Application icon when run as a CLI program, I used the samme approach in the X11 code and loaded the icon as a static binary blob inside of mpv's binary. This is the simplest approach as it avoid headackes when relocating the binary and such.
* terminal-unix: fix terminfo/termcap name for cursor upwm42014-01-141-1/+1
| | | | | "ku" is for input, not output. This happened to work on urxvt, but broke on xterm (and probably a dozen of other terminals).
* terminal-unix: add fallback for enter keywm42014-01-131-0/+3
| | | | This worked just fine if terminfo or termcap was available.
* terminal-unix: fix fallbacks in case terminfo/termcap are disabledwm42014-01-131-2/+2
| | | | | These two escape sequences were swapped. (They are used only if terminfo/termcap are not available.)
* terminal-unix: add termcap/terminfo documentation linkswm42014-01-131-0/+4
| | | | | | | Apparently, some people are not clever enough to google this information. Proper googling to find these links done by Kovensky.
* player: redo terminal OSD and status line handlingwm42014-01-133-8/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The terminal OSD code includes the handling of the terminal status line, showing player OSD messages on the terminal, and showing subtitles on terminal (the latter two only if there is no video window, or if terminal OSD is forced). This didn't handle some corner cases correctly. For example, showing an OSD message on the terminal always cleared the previous line, even if the line was an important message (or even just the command prompt, if most other messages were silenced). Attempt to handle this correctly by keeping track of how many lines the terminal OSD currently consists of. Since there could be race conditions with other messages being printed, implement this in msg.c. Now msg.c expects that MSGL_STATUS messages rewrite the status line, so the caller is forced to use a single mp_msg() call to set the status line. Instead of littering print_status() all over the place, update the status only once per playloop iteration in update_osd_msg(). In audio- only mode, the status line might now be a little bit off, but it's perhaps ok. Print the status line only if it has changed, or if another message was printed. This might help with extremely slow terminals, although in audio+video mode, it'll still be updated very often (A-V sync display changes on every frame). Instead of hardcoding the terminal sequences, use terminfo/termcap to get the sequences. Remove the --term-osd-esc option, which allowed to override the hardcoded escapes - it's useless now. The fallback for terminals with no escape sequences for moving the cursor and clearing a line is removed. This somewhat breaks status line display on these terminals, including the MS Windows console: instead of querying the terminal size and clearing the line manually by padding the output with spaces, the line is simply not cleared. I don't expect this to be a problem on UNIX, and on MS Windows we could emulate escape sequences. Note that terminal OSD (other than the status line) was broken anyway on these terminals. In osd.c, the function get_term_width() is not used anymore, so remove it. To remind us that the MS Windows console apparently adds a line break when writint the last column, adjust screen_width in terminal- win.c accordingly.
* terminal: don't initialize termcap etc. if stdout is not a terminalwm42014-01-071-2/+6
| | | | | Otherwise, it seems one of the term* libraries will write escape sequences to stdout, for whatever reason.
* Windows: use roaming AppData instead of localMartin Herkt2014-01-061-1/+1
| | | | Whatever. Fixes #458.
* win32-console-wrapper: use child process exit codeMartin Herkt2014-01-061-4/+6
|
* win32-console-wrapper: remove command line manglingMartin Herkt2014-01-061-11/+2
| | | | This wasn't really necessary and caused a lot of problems.
* win32-console-wrapper: Fix heap corruptionMartin Herkt2014-01-061-1/+1
| | | | FUCK the Windows API.
* cocoa: handle files drag and drop on the player video viewStefano Pigozzi2014-01-041-0/+1
|
* cocoa: refactor files drag and drop on the Dock iconStefano Pigozzi2014-01-041-24/+16
| | | | | Use the newly added `mp_event_drop_files` core function instead of having logic in the platform dependent code.
* Add Windows console wrapper program (mpv.com)Martin Herkt2014-01-021-0/+83
|
* Windows: use the GUI subsystem, attach to consoleMartin Herkt2014-01-022-0/+23
| | | | | | | | This is necessary to start mpv without forcing a console window, but also breaks console usability. A workaround is to call mpv from a wrapper process that uses the console subsystem and helps redirecting the standard streams and WriteConsole output to where they belong.
* osdep/io, mp_vfprintf: split out console detectionMartin Herkt2014-01-021-42/+43
|
* Update copyright yearwm42014-01-011-1/+1
|
* path-macosx: attempt to fix buildwm42013-12-221-1/+1
| | | | Untested... no OSX here.
* macosx_application: replace mp_msg with stderr for semi-fatal errorwm42013-12-211-3/+4
| | | | Apparently this should never be run anyway.
* path lookup functions: mp_msg conversionswm42013-12-212-3/+7
| | | | | | | | | | | | | | | | | There's a single mp_msg() in path.c, but all path lookup functions seem to depend on it, so we get a rat-tail of stuff we have to change. This is probably a good thing though, because we can have the path lookup functions also access options, so we could allow overriding the default config path, or ignore the MPV_HOME environment variable, and such things. Also take the chance to consistently add talloc_ctx parameters to the path lookup functions. Also, this change causes a big mess on configfiles.c. It's the same issue: everything suddenly needs a (different) context argument. Make it less wild by providing a mp_load_auto_profiles() function, which isolates most of it to configfiles.c.
* input: rework how input sources are addedwm42013-12-213-20/+48
| | | | | | | | | | | | | | Until now, there were two functions to add input sources (stuff like stdin input, slave mode, lirc, joystick). Unify them to a single function (mp_input_add_fd()), and make sure the associated callbacks always have a context parameter. Change the lirc and joystick code such that they take store their state in a context struct (probably worthless), and use the new mp_msg replacements (the point of this refactoring). Additionally, get rid of the ugly USE_FD0_CMD_SELECT etc. ifdeffery in the terminal handling code.
* osdep/priority: drop message output when setting prioritywm42013-12-211-2/+0
|
* terminal: abstract terminal color handlingwm42013-12-203-9/+75
| | | | | | | | Instead of making msg.c an ifdef hell for unix vs. windows code, move the code to separate functions defined in terminal-unix.c/terminal- win.c. Drop the code that selects random colors for --msgmodule prefixes.
* terminal: move SIGTTOU signal handler setup codewm42013-12-191-0/+2
| | | | | | This comes with a real change in behavior: now the signal handler is set only when the terminal input code is active (e.g. not with --no-consolecontrols), but this should be ok.
* Rename getch2....c/h to terminal....c/hwm42013-12-193-2/+2
| | | | | "getch2" really tells nothing about what the heck this code does. It'd be even worse when moving the rest of terminal handling code there.
* Reduce recursive config.h inclusions in headerswm42013-12-182-3/+0
| | | | | | In my opinion, config.h inclusions should be kept to a minimum. MPlayer code really liked including config.h everywhere, though, even in often used header files. Try to reduce this.
* stream: move O_BINARY dummy definitionwm42013-12-181-0/+4
|
* Fix OSX build; remove all remaining mpvcore references11rcombs2013-12-173-5/+5
|
* Split mpvcore/ into common/, misc/, bstr/wm42013-12-173-4/+4
|
* Merge mp_talloc.h into ta/ta_talloc.hwm42013-12-171-4/+2
|
* Move options/config related files from mpvcore/ to options/wm42013-12-171-1/+1
| | | | | | | | | Since m_option.h and options.h are extremely often included, a lot of files have to be changed. Moving path.c/h to options/ is a bit questionable, but since this is mainly about access to config files (which are also handled in options/), it's probably ok.
* Move mpvcore/input/ to input/wm42013-12-173-5/+5
|
* Replace mp_tmsg, mp_dbg -> mp_msg, remove mp_gtext(), remove set_osd_tmsgwm42013-12-161-1/+1
| | | | | | | | | The tmsg stuff was for the internal gettext() based translation system, which nobody ever attempted to use and thus was removed. mp_gtext() and set_osd_tmsg() were also for this. mp_dbg was once enabled in debug mode only, but since we have log level for enabling debug messages, it seems utterly useless.
* macosx_events: fix null dereference on uninitStefano Pigozzi2013-12-071-1/+4
| | | | | | | Bug introduced by commit 6fb020f5. It doesn't always happen, since it is caused by the playloop and cocoa UI code running in separate threads. Fixes #398.
* options: add option to disable using right Alt key as Alt GrVivek Jain2013-12-021-2/+8
| | | | | | | | | mpv was hardcoded to always consider the right Alt key as Alt Gr, but there are parituclar combinations of platforms and keyboard layouts where it's more convenient to treat the right Alt as a keyboard modifier just like the left one. Fixes #388
* osdep/io: also include unistd.hwm42013-11-301-0/+2
| | | | Might be needed by fcntl() usage.
* Use O_CLOEXEC when creating FDswm42013-11-302-1/+28
| | | | | | | | | | | | | | This is needed so that new processes (created with fork+exec) don't inherit open files, which can be important for a number of reasons. Since O_CLOEXEC is relatively new (POSIX.1-2008, before that Linux specific), we #define it to 0 in io.h to prevent compilation errors on older/crappy systems. At least this is the plan. input.c creates a pipe. For that, add a mp_set_cloexec() function (which is based on Weston's code in vo_wayland.c, but more correct). We could use pipe2() instead, but that is Linux specific. Technically, we have a race condition, but it won't matter.
* build: make pthreads mandatorywm42013-11-281-7/+0
| | | | | | | | | | | pthreads should be available anywhere. Even if not, for environment without threads a pthread wrapper could be provided that can't actually start threads, thus disabling features that require threads. Make pthreads mandatory in order to simplify build dependencies and to reduce ifdeffery. (Admittedly, there wasn't much complexity, but maybe we will use pthreads more in the future, and then it'd become a real bother.)
* switch the build system to wafStefano Pigozzi2013-11-211-1/+0
| | | | | | | | | | | | | | | | | | | | | | | This commit adds a new build system based on waf. configure and Makefile are deprecated effective immediately and someday in the future they will be removed (they are still available by running ./old-configure). You can find how the choice for waf came to be in `DOCS/waf-buildsystem.rst`. TL;DR: we couldn't get the same level of abstraction and customization with other build systems we tried (CMake and autotools). For guidance on how to build the software now, take a look at README.md and the cross compilation guide. CREDITS: This is a squash of ~250 commits. Some of them are not by me, so here is the deserved attribution: - @wm4 contributed some Windows fixes, renamed configure to old-configure and contributed to the bootstrap script. Also, GNU/Linux testing. - @lachs0r contributed some Windows fixes and the bootstrap script. - @Nikoli contributed a lot of testing and discovered many bugs. - @CrimsonVoid contributed changes to the bootstrap script.
* osdep/io.c: include config.hwm42013-11-201-0/+2
| | | | | This possibly enables code that has never been tested before (accidentally), so let's hope this works out ok.
* stream: split out pthread helper functionwm42013-11-172-0/+66
| | | | Also split the function itself into 3.
* osdep: handle SIGTERMwm42013-11-061-0/+2
| | | | | | There's no reason why we should e.g. handle SIGQUIT, but not SIGTERM. Note that sending SIGTERM twice still kills the player.
* osx: fix -Wshadow warnings on platform specific codeStefano Pigozzi2013-11-041-4/+4
|
* configure: uniform the defines to #define HAVE_xxx (0|1)Stefano Pigozzi2013-11-033-16/+17
| | | | | | | | | | | | | | | | | | | | | The configure followed 5 different convetions of defines because the next guy always wanted to introduce a new better way to uniform it[1]. For an hypothetic feature 'hurr' you could have had: * #define HAVE_HURR 1 / #undef HAVE_DURR * #define HAVE_HURR / #undef HAVE_DURR * #define CONFIG_HURR 1 / #undef CONFIG_DURR * #define HAVE_HURR 1 / #define HAVE_DURR 0 * #define CONFIG_HURR 1 / #define CONFIG_DURR 0 All is now uniform and uses: * #define HAVE_HURR 1 * #define HAVE_DURR 0 We like definining to 0 as opposed to `undef` bcause it can help spot typos and is very helpful when doing big reorganizations in the code. [1]: http://xkcd.com/927/ related
* getch2: assume EOF when input file descriptor is invalidwm42013-10-281-2/+5
| | | | | | | | | | | | | When starting mpv with nohup, file descriptor 0 seems to be invalid for some reason. (I'm not quite sure why it should be... /proc/pid/fd/0 seems to indicate it's just /dev/null, and using /dev/null explicitly shows that it works just fine.) select() will always immediately return, and this causes mpv to burn CPU without reason. Fix this by treating it as EOF when read() returns EBADF. Also add EINVAL to this condition, because it seems like a good idea.
* getch2: move global state to file scope variableswm42013-10-281-6/+5
| | | | | Using static variables for mutable state inside functions is a bad idea, because it's not immediately obvious that it is what it is.
* cocoa: fix opening quarantined files on 10.9 with the bundle [2]Stefano Pigozzi2013-10-251-2/+2
| | | | Fixup commit for bbc146927
* cocoa: fix opening quarantined files on 10.9 with the bundleStefano Pigozzi2013-10-241-2/+7
| | | | | | | It looks like on Mavericks the Finder is passing different arguments to mpv depending on whether the opened file is quarantined or not. Fixes #285
* cocoa: fix race condition with input context creationStefano Pigozzi2013-10-242-0/+14
| | | | | | | | | | This seems to be a problem only in OS X 10.9. I guess they improved the general speed of the Cocoa startup and suddenly mpv core takes more time than the Cocoa thread to initialize. Fixes #285 (hopefully!)
* getch2: remove pointless ifdefferywm42013-10-171-8/+0
| | | | | Apparently this was for MorphOS. If you really want to use that, ask the devs to provide dummy headers and declarations for ioctl() instead.
* Copyright, LICENSE: switch to GPL version 2 or laterwm42013-10-131-1/+1
| | | | | | | | | | | | | | | Now that talloc has been removed, the license can be switched back to GPLv2+. Actually, there never was a GPLv2+ licensed MPlayer (fork or not) until now, but removal of some GPLv2-only code makes this possible now. Rewrite the Copyright file to explain the reasons for the licenses MPlayer and forks use. The old Copyright file didn't contain anything interesting anymore, and all information it contained is available at other places in the source tree. The reason for the license change itself is that it should improve interoperability with differently licensed code in general. This essentially reverts commit 1752808.
* osx: fix buildwm42013-09-271-2/+2
| | | | | | Or at least I hope it fixes it, since I can't test. Broken by commit 0d90dd0.
* win32: edit resource files, in particular set CompanyNamewm42013-09-232-5/+5
| | | | | | | Setting CompanyName (probably) helps with issue #256. Update some other fields as well, because why not. (They're full of MPlayer remnants.)
* macosx_application: fix regression causing crashStefano Pigozzi2013-09-191-2/+11
| | | | | 95a2151d1 introduced a crash on systems lower than 10.9 when opening files with a single argument.
* osdep/path: remove ifdefswm42013-09-181-6/+0
| | | | They're not really needed, so kill them.
* macosx: move bundle path stuff to path-macosx.mStefano Pigozzi2013-09-183-33/+14
| | | | This makes the code uniform to how stuff was handled for Windows in 1cb55ceb.
* path, win32: redo user configfile path handlingwm42013-09-183-2/+86
| | | | | | | | | | | | | | | | | Remove the ifdef hell from mp_find_user_config_file(). Move the win32 specific code (for MinGW and Cygwin) to path-win.c. The behavior should be about the same, but I can't be sure due to lack of testing and because the old path.c code was hard to follow. (I expect those who care about windows will fix things, should issues pop up - sorry.) One difference is that the new code will always force MPV_HOME. It looks like the old code preferred the mpv config dir in the exe dir if it exists. Also, make sure MP_PATH_MAX has enough space, even if the equivalent wchar_t string is not 0-terminated with PATH_MAX (because apparently the winapi doesn't require this). (Actually, maybe we should just kill all uses of PATH_MAX/MP_PATH_MAX.)
* win32: add getenv() UTF-8 variantwm42013-09-182-0/+62
| | | | | | | This is a bit "hard", because getenv() returns a static string, and we can't just return an allocated string. We also want getenv() to be thread-safe if possible. (If the mpv core is going to be more threaded, we sure do want the lower layers to be thread-safe as well.)
* HIDRemote: remove OS X version checksStefano Pigozzi2013-09-171-44/+1
| | | | | | Turns out that these checks were for versions of OS X that mpv doesn't even support anymore. So just remove the checks since they cause a deprecation warning.
* macosx_application: remove deprecation warning on OS X 10.9Nyx0uf2013-09-161-15/+29
| | | | | | | | | | | | GetCurrentProcess() is deprecated on 10.9. Make a universal solution by checking OS version number. get_system_version() function is the recommended Apple way of getting the OS version, since Gestalt is also deprecated (and does pretty much the same thing anyway) Updating HIDRemote.m to use a similar function would allow to get rid of the 2 other warnings.
* macosx_application: fix file opening on 10.9 (for real this time)Stefano Pigozzi2013-09-131-1/+1
| | | | | | | | I did commit 86c05655d by thinking `mpv` already removed the `mpv` from argc/argv. It actually is still there, so the argc must be 1 to check for no arguments. Thanks to @Nyx0uf for pointing out the bug and for testing on 10.9!
* macosx_application: fix file opening on OS X 10.9 (hopefully)Stefano Pigozzi2013-09-121-1/+10
| | | | | | | | File opening through Finder, apparently drops `--psn` arguments on Mavericks and just uses no args. Modify the code to account for that case. This wasn't tested on 10.9 itself (I don't have a paid dev account), but it *should* work if I understood the problem correctly.
* macosx_application: handle mpv:// linksStefano Pigozzi2013-09-071-0/+7
| | | | | | | Pretty useful for people writing userscripts for web browsers. Links starting with 'mpv://' are forwarded to the mpv OSX bundle. The leading 'mpv://' is stripped from the recived url and the rest of the string is inserted as is in the playlist.
* macosx_application: handle URL events as fileopen eventsStefano Pigozzi2013-09-071-0/+30
| | | | | This allows to open URLs directly with mpv. This is useful for streaming and libquvi supported sites.
* macosx_events: fix modifiers handling with media keysStefano Pigozzi2013-09-051-1/+1
| | | | | | This was caused by a typo. Regression from add7c2955df. Fixes #213
* macosx_events: send a `release all` after key up eventsStefano Pigozzi2013-09-021-0/+2
| | | | | | | | This prevents keys to become stuck due to changing keyboard modifiers during the key down. Not the prettiest approach but event `x11_common` does it like this. Fixes #210
* macosx_events: remove duplicationStefano Pigozzi2013-09-021-29/+33
| | | | refactoring: extract method `handleMPKey:withMask:`
* cocoa: enqueue events only if input context is presentStefano Pigozzi2013-09-011-1/+2
|
* osx: use MP_KEY_* instead of MK_* for media keysStefano Pigozzi2013-09-011-3/+3
| | | | | In 213ad5d6c I added `MK_*` key bindings overlooking the fact that mpv already has `MP_KEY_*` for media keys.
* cocoa: let the core handle key repeatsStefano Pigozzi2013-08-303-6/+17
| | | | | Report key down and key up modifiers to the core so that it can issue it's own key repeats (instead of relying on Cocoa's ones).
* macosx: remove platform specific input queueStefano Pigozzi2013-08-134-65/+3
| | | | | Since last commit the input queue in the core is thread safe, so there is no need for all this platform specific stuff anymore.
* core: move contents to mpvcore (2/2)Stefano Pigozzi2013-08-068-14/+14
| | | | Followup commit. Fixes all the files references.
* mpv.rc: update Windows iconJames Ross-Gowan2013-07-301-1/+1
| | | | Based on the OSX bundle icon.
* getch2: Load the "ce", "ks" and "ke" caps into a static bufferDiogo Franco (Kovensky)2013-07-261-3/+6
| | | | | | Fixes reports of printing of garbage (or anything else) other than clearing the status line to the end of line: the buffer returned by termcap_get could get moved, and if that happened then these 3 caps pointed to garbage.
* getch2: Deactivate getch2 on SIGINT; also handle SIGQUITDiogo Franco (Kovensky)2013-07-261-0/+4
|
* getch2: Only send ESC if it was typed twiceDiogo Franco (Kovensky)2013-07-261-3/+5
| | | | Avoids quitting mpv if any unknown escape is entered.
* getch2: Handle setupterm errorsDiogo Franco (Kovensky)2013-07-261-1/+18
| | | | | | setupterm abort()s if it can't initialize the terminal and the last parameter is NULL; handle setupterm errors and retry with "ansi" if the TERM env var was unset.
* getch2: fix compilationwm42013-07-261-1/+1
|
* getch2: Support ESC keypresses againDiogo Franco (Kovensky)2013-07-251-1/+9
| | | | | | Due to the termcap matching and the hardcoded fallbacks, the ESC keypress has to be followed by another non-matching keypress (such as another ESC) for it to be accepted. We drop the second ESC in case it was typed twice.
* getch2: Doing it right this timeDiogo Franco (Kovensky)2013-07-251-1/+1
| | | | | getch2_pos should be set to 1, not 0, when backtracking. Avoids the possible infinite loop but correctly.
* Revert "getch2: Avoid possible infinite loop"Diogo Franco (Kovensky)2013-07-251-4/+4
| | | | This reverts commit ba95aed6f1067dc577d8813625233982157167d9.
* getch2: Avoid possible infinite loopDiogo Franco (Kovensky)2013-07-251-4/+4
| | | | | | If the first character is not a valid UTF-8 start code nor is in termcap, getch2 would enter an infinite loop. Always walk 1 byte in the UTF-8 case unless it's a valid start code.
* getch2, mplayer: Always call load_termcapDiogo Franco (Kovensky)2013-07-251-0/+5
| | | | | getch2 now deals with the cases where we don't have termcap. Add a dummy load_termcap to getch2-win so we don't get linking errors on mingw.
* getch2: Remove unused function, fix possible crashDiogo Franco (Kovensky)2013-07-251-25/+19
| | | | | | | | | If we still haven't read the full key from the input but it's regardless a unique match in the database, we could receive a NULL keycode from keys_search (it's not a full match after all) and proceed to use it. Don't disable the keycode matching code if we don't have termcap as we can still match against the hardcoded sequences.
* getch2: Refactor/rewriteDiogo Franco (Kovensky)2013-07-251-192/+344
| | | | | | | | | | | | | | | | | | | | | | Still uses termcap, but uses terminfo for loading the termcap database if possible. Adds configure test to find terminfo; skips the termcap test if terminfo is found since terminfo provides termcap. Use termcap completely for special keys; if we can't get it from termcap and it isn't one of the known fallbacks, we ignore its specialness and treat as a sequence of UTF-8 codes. Further hardcoded fallbacks can be added by calling keys_push_once in load_termcap; there is no limit to the amount of keys pushed. Uses the "ke" and "ks" capabilities to start / exit application mode, which is necessary on vt100 emulators (including screen, xterm and all terminals that emulate either of those) to correctly receive arrow keys. It's now possible to compile getch2 even without termcap, though it won't be of much use since it'll be unable to detect special keys. Converted to 4 spaces per tab, prettified some statements.
* cocoa_common: handle keyboard modifiers for mouse eventsStefano Pigozzi2013-07-213-13/+24
|
* w32: update manifest for high DPI and Windows 8.1James Ross-Gowan2013-07-141-0/+18
| | | | | | | | | | | | | | | | | Since Windows Vista, when running at 144 DPI or higher with composition switched on, applications that don't declare themselves to be DPI aware are stretched by the window manager, kind of like low resolution apps in OSX. To avoid this, declare DPI awareness in the manifest. Since mpv is practically resolution independent this shouldn't cause any trouble. The 'True/PM' value declares per-monitor DPI awareness in Windows 8.1, so that the mpv isn't shrunk when moved from a high DPI screen to one with a lower DPI. Also, avoid compatibility shims by declaring compatibility with all Windows versions from Vista to 8.1 and add the missing uiAccess attribute to the requestedExecutionLevel element.
* getch2-win: uncrustifywm42013-07-141-116/+118
|
* osdep: remove unused mmap compatibility hackswm42013-07-073-168/+0
| | | | | | | Not sure how this worked. Only af_export.c and tvi_v4l2.c were using mmap, but they didn't include osdep/mmap.h or mmap_anon.h. In any case, we trust that the target system is sufficiently POSIX compliant if mmap is actually defined (as checked by configure).
* cocoa: remove usage of mp_fifoStefano Pigozzi2013-07-034-11/+2
| | | | | | Update Cocoa parts to remove usage of the mp_fifo internal API to send events to the core and use the input context directly. This is to follow commits the work in commits 70a8079c and d603e73c.
* core: cleanup more mp_fifo leftoverswm42013-07-023-8/+6
| | | | Now only the OSX and Wayland parts are using this.
* OSX: fix compilation with 10.7 SDKStefano Pigozzi2013-06-193-1/+61
| | | | | | | | | | | | | | | | | | | | | | | | Recent work in the OS X parts of the code started using clang's support for Obj-C's support for Literals and Subscripting. These particular language features remove a lot of boilerplate code and allow to interact with collections as consicely as one would do in scripting languages like Ruby or Python. Even if these are compiler features, Subscripting needs some runtime support. This is provided with libarclite (coming with the compiler), but we need to add the proper method definitions since the 10.7 SDK headers do not include them. That is because 10.7 shipped before this language features. This will cause some warnings when compiling with the 10.7 SDK because the commit also redefines BOOL to make autoboxing/unboxing of BOOL literals to work. If you need to test this for whatever reason on 10.8, just pass in the correct SDK to configure's extra cflags: ./configure --extra-cflags='-mmacosx-version-min=10.7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk' Fixes #117
* osdep: remove shmem wrapperwm42013-06-182-164/+0
| | | | This is unused now that the cache is always threaded.
* macosx_events: handle key modifiers with media keysStefano Pigozzi2013-06-062-27/+56
| | | | | | This was overlooked in the previous inplementation. Adding it required some refactoring of the `handleKeyDown:` method in order to extract common parts with `handleMediaKey:`.
* macosx_events: DRY up key lookup over dictionaryStefano Pigozzi2013-06-051-10/+12
| | | | | Two methods duplicated very similar behaviour. Extract method with the common behaviour.
* macosx_events: make remote property an instance variableStefano Pigozzi2013-06-052-7/+8
| | | | There was no reason for it to be public.
* osx: improve Media Keys supportStefano Pigozzi2013-06-044-31/+109
| | | | | | | | | | | | | | | | | | | | | | | This commit addresses some issues with the users had with the previous implementation in commit c39efb9. Here's the changes: * Use Quartz Event Taps to remove Media Key events mpv handles from the global OS X queue. This prevents conflicts with iTunes. I did this on the main thread since it is mostly idling. It's the playloop thread that actually does all the work so there is no danger of blocking the event tap callback. * Introduce `--no-media-keys` switch so that users can disable all of mpv's media key handling at runtime (some prefer iTunes for example). * Use mpv's bindings so that users can customize what the media keys do via input.conf. Current bindings are: MK_PLAY cycle pause MK_PREV playlist_prev MK_NEXT playlist_next An additional benefit of this implementation is that it is completly handled by the `macosx_events` file instead of `macosx_application` making the project organization more straightforward.
* osx: add Apple Remote supportStefano Pigozzi2013-06-035-3/+2512
| | | | | | | | | | | | | | | | | After killing the non functional AR support in c8fd9e5 I got much complaints so this adds AR support back in (and it works). I am using the HIDRemote class by Felix Schwarz and that part of the code is under the BSD license. I slightly modified it replacing [NSApplication sharedApplication] with NSApp. The code of the class is quite complex (probably because it had to deal with all the edge cases with IOKit) but it works nicely as a black box. In a later commit I'll remove the deprecation warnings caused by HIDRemote's usage of Gestalt. Check out `etc/input.conf` for the default bindings. Apple Remote functionality is automatically compiled in when cocoa is enabled. It can be disabled at runtime with the `--no-ar` option.
* osx: implement media keysStefano Pigozzi2013-06-033-1/+33
| | | | | | | | | | | | | | | Media keys are pretty handy if you use mpv as a music player (yes I'm one of those people that do). These are the bindings (which lead to the same behaviour as iTunes): * NX_KEYTYPE_PLAY -> MP_KEY_PLAY * NX_KEYTYPE_FAST -> MP_KEY_NEXT * NX_KEYTYPE_REWIND -> MP_KEY_PREV I just handled these ones as the volume one would be pretty invasive. I could maybe change it to increase the application's volume instead of system volume only when mpv is frontmost (iTunes does this), but some users would probably hate it.
* macosx_events: send all queued eventsStefano Pigozzi2013-06-031-2/+3
| | | | | Seeking feels a little faster or it may be self suggestion. There's really no reason to just send only one event at a time.
* osx: cocoa_common: use default wakeup periodStefano Pigozzi2013-06-031-0/+8
| | | | | Now that Cocoa's input handling is done on a separate thread from the playloop it is ridicolously simple to have longer asynchronous sleeps when paused.
* osx: create macosx_events to deal with keyDown eventsStefano Pigozzi2013-06-035-26/+268
| | | | | | On OSX with Cocoa enabled keyDown events are now handled with addLocalMonitorForEventsMatchingMask:handler:. This allows to respond to events even when there is no VO initialized but the GUI is focused.
* macosx_application: refactor psn matching codeStefano Pigozzi2013-05-301-7/+5
| | | | Objective-C is shorter / more readable than snprintf.
* macosx_application: refactor filename escapeStefano Pigozzi2013-05-301-14/+8
| | | | Use Objective-C's new literal syntax to make the code simpler.
* macosx_application: use @autoreleasepoolStefano Pigozzi2013-05-302-35/+25
| | | | I don't even want to know how this worked. It scares me a lot.
* macosx_application: move escape_loadfile_name in this fileStefano Pigozzi2013-05-301-0/+21
| | | | This allows to move back osx_common to raw C.
* macosx_application: fix menu 'ghosting'Stefano Pigozzi2013-05-261-0/+7
| | | | | | | This fixes a bug that caused the application to never leave it's frontmost position. The idea is stolen from @donmelton who used it in MPlayerShell. Thanks!
* Replace calls to usec_sleep()wm42013-05-262-9/+0
| | | | | | This is just dumb sed replacement to mp_sleep_us(). Also remove the now unused usec_sleep() wrapper.
* Replace all calls to GetTimer()/GetTimerMS()wm42013-05-262-12/+0
| | | | | | | | | | | | | | | | | | | | | | GetTimer() is generally replaced with mp_time_us(). Both calls return microseconds, but the latter uses int64_t, us defined to never wrap, and never returns 0 or negative values. GetTimerMS() has no direct replacement. Instead the other functions are used. For some code, switch to mp_time_sec(), which returns the time as double float value in seconds. The returned time is offset to program start time, so there is enough precision left to deliver microsecond resolution for at least 100 years. Unless it's casted to a float (or the CPU reduces precision), which is why we still use mp_time_us() out of paranoia in places where precision is clearly needed. Always switch to the correct time. The whole point of the new timer calls is that they don't wrap, and storing microseconds in unsigned int variables would negate this. In some cases, remove wrap-around handling for time values.
* timer: use gettimeofday() on Windowswm42013-05-261-1/+4
| | | | | | | MinGW-w64 emulates this via GetSystemTimeAsFileTime(), which has supposedly the best and most stable timer source out of most others. http://mingw-w64.svn.sourceforge.net/viewvc/mingw-w64/trunk/mingw-w64-crt/misc/gettimeofday.c
* timer: refactor, add 64 bit timer functionwm42013-05-265-96/+138
| | | | | | | | | | | | | | Make OS specific timer code export a mp_raw_time_us() function, and add generic implementations of GetTimer()/GetTimerMS() using this function. New mpv code is supposed to call mp_time_us() in situations where precision is absolutely needed, or mp_time_s() otherwise. Make it so that mp_time_us() will return a value near program start. We don't set it to 0 though to avoid confusion with relative vs. absolute time. Instead, pick an arbitrary offset. Move the test program in timer-darwin.c to timer.c, and modify it to work with the generic timer functions.
* macosx_application: implement "Quit & remember position"Stefano Pigozzi2013-05-232-7/+20
| | | | | | | Add a menu item to quit and save the current playback position using the code added with commit ce9a854. Fixes #85
* input: do property expansion for all input command string argumentswm42013-05-181-1/+1
| | | | | | Also add a "raw" prefix for commands, which prevents property expansion. The idea is that if the commands are generated by a program, it doesn't have to know whether the command expands properties or not.
* macosx_application: fix crash when quitting playerStefano Pigozzi2013-05-121-1/+5
| | | | | | | | | mpv crashed on quit when it was run using the bundle functionality and started without any files thus waiting for file open events. In that case, since there is no key_fifo initialized yet, short circuit to `terminate_cocoa_application()` which is generally called from `exit_player()` during normal lifecycle. Fixes bug report from user `eng` on IRC.
* macosx_application: add menu item for hide operationStefano Pigozzi2013-05-121-0/+2
| | | | Fixes #35
* OSX: run native event loop in a separate threadStefano Pigozzi2013-05-123-59/+71
| | | | | | | | | | | | | | This commit is a followup on the previous one and uses a solution I like more since it totally decouples the Cocoa code from mpv's core and tries to emulate a generic Cocoa application's lifecycle as much as possible without fighting the framework. mpv's main is executed in a pthread while the main thread runs the native cocoa event loop. All of the thread safety is mainly accomplished with additional logic in cocoa_common as to not increase complexity on the crossplatform parts of the code.
* OSX: use native Cocoa's event loopStefano Pigozzi2013-05-125-126/+446
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Schedule mpv's playloop as a high frequency timer inside the main Cocoa event loop. This has the benefit to allow accessing menus as well as resizing the window without the playback being blocked and allows to remove countless hacks from the code that involved manually pumping the event loop as well simulating manually some of the Cocoa default behaviours. A huge improvement consists in removing NSApplicationLoad. This is a C function defined in the Cocoa header and implements a minimal OSX application under ther hood so that you can use the Cocoa GUI toolkit from C/C++ without having to respect the Cocoa standards in terms of application initialization. This was bad because the behaviour implemented by NSApplicationLoad was hard to customize and had several gotchas especially in the menu department. mpv was changed to be just a nib-less application. All the Cocoa part is still generated in code but the event handling is now not dissimilar to what is present in a stock Mac application. As a part of reviewing the initialization process, I also removed all of `osdep/macosx_finder_args`. The useful parts of the code were moved to `osdep/macosx_appication` which has the broaded responsibility of managing the full lifecycle of the Cocoa application. By consequence the `--enable-macosx-finder` configure switch was killed as well, as this feature is always enabled. Another change the users will notice is that when using a bundle the `--quiet` option will be inserted much earlier in the initializaion process. This results in mpv not spamming mpv.log anymore with all the initialization outputs.
* mp_msg: fix status output disappearing when redirecting INPUT.Rudolf Polzer2013-03-181-2/+2
| | | | | Instead, we now check stderr's destination against the foreground tty for deciding whether we want status output or not.
* Prefix keycode defines with MP_wm42013-02-122-52/+52
| | | | | | | | | | Do this to reduce conflicts with <linux/input.h>, which contains some conflicting defines. This changes the meaning of MP_KEY_DOWN: KEY_DOWN is renamed to MP_KEY_DOWN (cursor down key) MP_KEY_DOWN is renamed to MP_KEY_STATE_DOWN (modifier for key down state)
* cocoa_events: remove this functionalityStefano Pigozzi2013-02-022-167/+0
| | | | | | | | | | | | | This functionality looked smart but created problems with some kinds of multi touch events. Moreover some events coming from the windows server – like hovering a corner for window resize – didn't cause the player to wake up immediately. The "correct" non hacky way to implement async event polling with cocoa would be having the vanilla cocoa event loop driving the player and setting up mpv's terminal FDs as event sources for the cocoa event loop. Fixes #20
* mp_msg, getch2: unix tty background supportRudolf Polzer2013-01-233-17/+104
| | | | | | | | Now, when backgrounded, mpv plays and outputs messages to stdout, but statusline is not output. Background<->foreground transitions are detected by signals and polling the process groups.
* Replace strsep() useswm42013-01-132-88/+0
| | | | | | This function sucks and apparently is not very portable (at least on mingw, the configure check fails). Also remove the emulation of that function from osdep/strsep*, and remove the configure check.
* windows support: fix _wstat misusagewm42013-01-132-2/+2
| | | | | | | I have no idea when or how this broke, but _wstati64() is the function we want anyway (64 bit filesize). Possibly this was a mingw-w64 bug. It's unknown why "wstat()" just doesn't work in this case, as it's not defined by MSDN and could be defined by mingw as it needs.
* osdep: remove gettimeofday() emulationwm42013-01-131-29/+0
| | | | Guaranteed by POSIX, and mingw provides it as well.
* osdep: remove setenv() emulationwm42013-01-131-43/+0
| | | | | mpv doesn't use setenv() anymore. The configure check was actually removed earlier; maybe it was forgotten to remove this completely.
* osdep: remove broken vsscanf() emulationwm42013-01-131-36/+0
| | | | | | vsscanf() is in POSIX, C99, mingw, etc. Further, the implementation in osdep/vsscanf.c was completely broken, and if it worked, it worked only by chance.
* Update copyright yearwm42013-01-041-1/+1
|
* path: add mp_find_config_file and reorganize some of the codeStefano Pigozzi2012-12-152-0/+56
| | | | | | | | | | | | | | Add `mp_find_config_file` to search different known paths and use that in ass_mp to look for the fontconfig configuration file. Some incidental changes spawned by this feature where: * Buffer allocation for the strings containing the paths is now performed with talloc. All of the allocations are done on a NULL context, but it still improves readability of the code. * Move the OSX function for lookup inside of a bundle: this code path was currently not used by the bundle generated with `make osxbundle`. The plan is to use it again in a future commit to get a fontconfig config file.
* Rename directories, move files (step 2 of 2)wm42012-11-129-13/+13
| | | | | | | | | | | | Finish renaming directories and moving files. Adjust all include statements to make the previous commit compile. The two commits are separate, because git is bad at tracking renames and content changes at the same time. Also take this as an opportunity to remove the separation between "common" and "mplayer" sources in the Makefile. ("common" used to be shared between mplayer and mencoder.)
* build: fix compilation on Windows (manifest files)wm42012-10-202-0/+0
|
* Rename to "mpv"wm42012-10-124-10/+10
| | | | | | | | | | | | | | | | | | This changes the name of this project to mpv. Most user-visible mentions of "MPlayer" and "mplayer" are changed to "mpv". The binary name and the default config file location are changed as well. The new default config file location is: ~/.mpv/ Remove etc/mplayer.desktop. Apparently this was for the MPlayer GUI, which has been removed from mplayer2 ages ago. We don't have a logo, and the MS Windows resource files sort-of require one, so leave etc/mplayer.ico/.xpm as-is. Remove the debian and rpm packaging scripts. These contained outdated dependencies and likely were more harmful than useful. (Patches which add working and well-tested packaging are welcome.)
* windows support: include io.h when building on CygwinKovensky2012-09-301-0/+4
|
* getch2: request at least 1 byte of input each readRudolf Polzer2012-09-191-1/+1
| | | | | | | | fixes issue with | less, where mplayer broke less's terminal expectations and made less quit Note this means that read() will be blocking again. Should be ok, as we always check via select() before reading.
* timer: remove timer_namewm42012-09-074-14/+0
| | | | This was unreferenced and useless.
* macosx_finder_args: fix file open orderStefano Pigozzi2012-08-161-1/+3
| | | | | | | When files are double clicked or drag and dropped to the mplayer2 icon they can be in random order. This commit forces alphabetical order. Opening them with command + down arrow already worked correctly.
* macosx_finder_args: make work with recent changesStefano Pigozzi2012-08-162-4/+4
|
* cache2: allow cache sizes up to 4 TBmplayer-svn2012-08-032-9/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove variable that is only assigned but never used. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@34791 b3059339-0415-0410-9bf9-f77b7e298cf2 Allow using a cache size of up to 4 TB. Obviously anything close to 4 GB will always fail on 32 bit systems. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@34792 b3059339-0415-0410-9bf9-f77b7e298cf2 Replace off_t by int64_t in cache code. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@34793 b3059339-0415-0410-9bf9-f77b7e298cf2 Remove casts that are no longer necessary. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@34794 b3059339-0415-0410-9bf9-f77b7e298cf2 Fix header file after r34793. Patch by Stephen Sheldon, sfsheldo gmail com. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@34802 b3059339-0415-0410-9bf9-f77b7e298cf2 Put #include <inttypes.h> into the header file where it should be. Reported by Stephen Sheldon, sfsheldo gmail com. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@34798 b3059339-0415-0410-9bf9-f77b7e298cf2 Correct r34798. The header only needs stdint.h while the C file needs inttypes.h. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@34799 b3059339-0415-0410-9bf9-f77b7e298cf2 Author: reimar
* osdep:/glob-win.c: reformatmplayer-svn2012-08-031-55/+47
| | | | | | | Use uncrustify on glob-win.c to fix the indentation mess in it. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@34239 b3059339-0415-0410-9bf9-f77b7e298cf2 Author: reimar
* Remove leftover BeOS support stuffwm42012-08-033-38/+0
| | | | As by mplayer-svn commit 33972. Their BeOS removal was more thorough.
* mplayer: turn playtree into a list, and change per-file option handlingwm42012-07-312-18/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: - There is no playtree anymore. It's reduced to a simple list. - Options are now always global. You can still have per-file options, but these are optional and require special syntax. - The slave command pt_step has been removed, and playlist_next and playlist_prev added. (See etc/input.conf changes.) This is a user visible incompatible change, and will break slave-mode applications. - The pt_clear slave command is renamed to playlist_clear. - Playtree entries could have multiple files. This is not the case anymore, and playlist entries have always exactly one entry. Whenever something adds more than one file (like ASX playlists or dvd:// or dvdnav:// on the command line), all files are added as separate playlist entries. Note that some of the changes are quite deep and violent. Expect regressions. The playlist parsing code in particular is of low quality. I didn't try to improve it, and merely spent to least effort necessary to keep it somehow working. (Especially ASX playlist handling.) The playtree code was complicated and bloated. It was also barely used. Most users don't even know that mplayer manages the playlist as tree, or how to use it. The most obscure features was probably specifying a tree on command line (with '{' and '}' to create/close tree nodes). It filled the player code with complexity and confused users with weird slave commands like pt_up. Replace the playtree with a simple flat playlist. Playlist parsers that actually return trees are changed to append all files to the playlist pre-order. It used to be the responsibility of the playtree code to change per-file config options. Now this is done by the player core, and the playlist code is free of such details. Options are not per-file by default anymore. This was a very obscure and complicated feature that confused even experienced users. Consider the following command line: mplayer file1.mkv file2.mkv --no-audio file3.mkv This will disable the audio for file2.mkv only, because options are per-file by default. To make the option affect all files, you're supposed to put it before the first file. This is bad, because normally you don't need per-file options. They are very rarely needed, and the only reasonable use cases I can imagine are use of the encode backend (mplayer encode branch), or for debugging. The normal use case is made harder, and the feature is perceived as bug. Even worse, correct usage is hard to explain for users. Make all options global by default. The position of an option isn't significant anymore (except for options that compensate each other, consider --shuffle --no-shuffle). One other important change is that no options are reset anymore if a new file is started. If you change settings with slave mode commands, they will not be changed by playing a new file. (Exceptions include settings that are too file specific, like audio/subtitle stream selection.) There is still some need for per-file options. Debugging and encoding are use cases that profit from per-file options. Per-file profiles (as well as per-protocol and per-VO/AO options) need the implementation related mechanisms to backup and restore options when the playback file changes. Simplify the save-slot stuff, which is possible because there is no hierarchical play tree anymore. Now there's a simple backup field. Add a way to specify per-file options on command line. Example: mplayer f1.mkv -o0 --{ -o1 f2.mkv -o2 f3.mkv --} f4.mkv -o3 will have the following options per file set: f1.mkv, f4.mkv: -o0 -o3 f2.mkv, f3.mkv: -o0 -o3 -o1 -o2 The options --{ and --} start and end per-file options. All files inside the { } will be affected by the options equally (similar to how global options and multiple files are handled). When playback of a file starts, the per-file options are set according to the command line. When playback ends, the per-file options are restored to the values when playback started.
* mp_msg: remove filename_recodewm42012-07-313-69/+0
| | | | | | | | | | This was intended for translating filenames from filesystem charset to the terminal charset. Modern sane platforms use UTF-8 for everything, and on Windows we use unicode APIs, so this is not needed anymore. Remove filename_recode, all uses of it, options and configure checks related to terminal output charset, and code that tries to determine the same.
* Merge remote-tracking branch 'origin/master'wm42012-04-292-0/+167
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: bstr.c bstr.h libvo/cocoa_common.m libvo/gl_common.c libvo/video_out.c mplayer.c screenshot.c sub/subassconvert.c Merge of cocoa_common.m done by pigoz. Picking my version of screenshot.c. The fix in commit aadf1002f8a will be redone in a follow-up commit, as the original commit causes too many conflicts with the work done locally in this branch, and other work in progress.
| * OSX, input: implement wakeup in response to Cocoa eventsStefano Pigozzi2012-04-262-0/+167
| | | | | | | | | | | | | | | | | | Add code to wake up the select() call in input.c when an OSX event is available and a Cocoa OpenGL backend is initialized. Fixes the slow response to input or other events in Cocoa-based VOs during long select() sleeps (e.g., when mplayer2 is paused) introduced by commit 7040968.
* | win32: simplify icon loadingwm42012-04-141-3/+3
| | | | | | | | | | I have no idea why the code used this roundabout method. Also detab mplayer.rc.
* | Merge remote-tracking branch 'origin/master'wm42012-04-137-470/+17
|\| | | | | | | | | Conflicts: libvo/vo_kva.c
| * build: remove OS/2 supportUoti Urpala2012-04-066-466/+3
| |
| * input: stop trying to read terminal input on EOFUoti Urpala2012-04-063-4/+14
| | | | | | | | | | | | | | | | | | | | | | | | Stop trying to read terminal input if a read attempt returns EOF. The most important case where this matters is when someone runs the player with stdin redirected from /dev/null and without specifying --no-consolecontrols. This used to cause 100% CPU load while paused, as select() would continuously trigger on stdin (the need for --no-consolecontrols was not apparent to people with older mplayer versions, as input reading was less efficient and latencies like hardcoded sleeps kept CPU use well below 100%). Now this will only cause a "Dead key input" error message.
* | win32: use more unicode functionswm42012-04-062-5/+22
| | | | | | | | | | | | | | | | Use the *W variants instead of the implicit *A functions. (One could define the UNICODE macro to switch the functions without suffix from A to W, but I'm too lazy to figure out how portable that is, etc.) Also make sure io.h defines a unicode aware printf().
* | Merge remote-tracking branch 'origin/master'wm42012-04-013-132/+99
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: bstr.c bstr.h etc/input.conf input/input.c input/input.h libao2/ao_pulse.c libmpcodecs/vf_ass.c libmpcodecs/vf_vo.c libvo/gl_common.c libvo/x11_common.c mixer.c mixer.h mplayer.c
| * macosx_finder_args: use a custom logfile instead of system.logStefano Pigozzi2012-03-251-0/+12
| | | | | | | | | | | | | | | | | | | | Change the macosx_finder_args function so that when mplayer2 is invoked from the Finder in a Mac application bundle, it redirects the output to ~/Library/Logs/mplayer2.log instead of cluttering the global system.log. This doesn't affect terminal use which keeps writing to stdout and stderr.
| * macosx_finder_args: use cocoa instead of carbonStefano Pigozzi2012-03-253-132/+87
| | | | | | | | | | | | | | | | | | | | | | | | macosx_finder_args was using Carbon and wasn't usable any longer on modern versions of MacOSX. This is very useful to embed mplayer in a mac application bundle. When using application bundles, the operating system will call the main function with only one argument that identifies the process serial number (this is some additional process identifier in osx other than the pid). File open events are then dispatched to the application through events that must be handled accordingly.
| * input: handle UTF-8 terminal inputwm42012-03-251-0/+11
| | | | | | | | | | | | | | | | | | | | | | This assumes the terminal uses UTF-8. If invalid UTF-8 is encountered (for example because the terminal uses a legacy encoding), the code falls back to the old method and feeds each byte as key code to the input code. In theory, UTF-8 input could randomly fail, because the code in getch2.c doesn't try to fill the input buffer correctly with input sequences longer than a byte. This is a problem with the design of the existing code.
| * input: allow unicode keys and reassign internal key codeswm42012-03-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This moves all key codes above the highest valid unicode code point (which is 0x10FFFF). All key codes below MP_KEY_BASE now directly map to unicode (KEY_ENTER is 13, carriage return). Configuration files (input.conf) can contain unicode characters in UTF-8 to map non-ASCII characters/keys. This shouldn't change anything user visible, except that "direct key codes" (as used in input.conf) will change their meaning. Parts of the bstr functions taken from libavutil's GET_UTF8 and slightly modified.
* | Merge remote-tracking branch 'origin/master' into my_masterwm42012-03-164-2/+331
|\| | | | | | | | | | | | | | | Conflicts: command.c mp_core.h mplayer.c screenshot.c
| * windows: terminal: unicode, --msgcolor, size changeMartin Herkt2012-03-093-0/+66
| | | | | | | | | | | | | | Make mp_msg() support unicode output, --msgcolor and variable screen sizes. Patch reintegrated by wm4.
| * windows support: unicode filenameswm42012-03-092-0/+261
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Windows uses a legacy codepage for char* / runtime functions accepting char *. Using UTF-8 as the codepage with setlocale() is explicitly forbidden. Work this around by overriding the MSVCRT functions with wrapper macros, that assume UTF-8 and use "proper" API calls like _wopen etc. to deal with unicode filenames. All code that uses standard functions that take or return filenames must now include osdep/io.h. stat() can't be overridden, because MinGW-w64 itself defines "stat" as a macro. Change code to use use mp_stat() instead. This is not perfectly clean, but still somewhat sane, and much better than littering the rest of the mplayer code with MinGW specific hacks. It's also a bit fragile, but that's actually little different from the previous situation. Also, MinGW is unlikely to ever include a nice way of dealing with this.
| * cleanup: Silence compilation warnings on MinGW-w64wm42012-03-012-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some of the code, especially the dshow and windows codec loader parts, are extremely hacky and likely full of bugs. The goal is merely getting rid of warnings that could obscure more important warnings and actual bugs, instead of fixing actual problems. This reduces the number of warnings from over 500 to almost the same as when compiling on Linux. Note that many problems stem from using the ancient wine-derived windows headers. There are some differences to the "proper" windows header. Changing the code to compile with the proper headers would be too much trouble, and it still has to work on Unix. Some of the changes might actually break compilation on legacy MinGW, but we don't support that anymore. Always use MinGW-w64, even when compiling to 32 bit. Fixes some warnings in the win32 loader code on Linux too.
* | input: restore terminal attributes after resumewm42012-02-251-6/+21
| | | | | | | | | | | | | | | | | | | | Install a signal handler on SIGCONT, and restore the terminal attributes with tcsetattr() if it happens. This is needed with some shells (such as tcsh) that don't restore the terminal attributes set by mplayer. Without this, terminal I/O doesn't work as intended after resume with these shells. Fixes #155.
* | Merge remote-tracking branch 'origin/master' into my_masterwm42012-02-191-1/+1
|\|
| * Update copyright yearUoti Urpala2012-01-281-1/+1
| |
* | input: fix "enter" on consolewm42012-02-191-8/+9
| | | | | | | | | | | | | | The commit "input: handle UTF-8 terminal input" accidentally messed up the handling of certain special keys. Apparently only KEY_ENTER was affected by this, because the code was valid UTF-8, but didn't directly map to the keycode.
* | input: handle UTF-8 terminal inputwm42012-01-181-0/+10
| | | | | | | | | | | | | | | | | | | | | | This assumes the terminal uses UTF-8. If invalid UTF-8 is encountered (for example because the terminal uses a legacy encoding), the code falls back to the old method and feeds each byte as key code to the input code. In theory, UTF-8 input could randomly fail, because the code in getch2.c doesn't try to fill the input buffer correctly with input sequences longer than a byte. This is a problem with the design of the existing code.
* | input: allow unicode keys and reassign internal key codeswm42012-01-181-1/+1
|/ | | | | | | | | | This moves all key codes above the highest valid unicode code point (which is 0x10FFFF). All key codes below MP_KEY_BASE now directly map to unicode. Configuration files (input.conf) can contain unicode characters in UTF-8 to map non-ASCII characters/keys. This shouldn't change anything user visible, except that "direct key codes" (as used in input.conf) will change their meaning.
* getch2.c: fix negative keycodes returned for non-asciiUoti Urpala2011-10-031-1/+1
| | | | | | | | | | | | | | | | | | getch2.c read data into a "char" array, and returned values other than escape sequences directly from there. This meant that it could return negative values (except on platforms where "char" is unsigned) if the input contained bytes >= 128. This would break later parsing in input.c as the values would be interpreted as having the MP_KEY_DOWN flag set, which would make the key binding code think a key is held down (and never released). Fix by changing the buffer type to unsigned char. The bug itself was very old, but started triggering visible breakage more easily after commit 82b8f89baea ("input: rework event reading and command queuing"). Before that the key values would be passed through the input.c "key read function" interface, which (mis)interpreted the negative values as errors from the function, and in most cases discarded them without much visible effect.
* osdep/mplayer.rc: change to use "mplayer2" nameMartin Herkt2011-08-211-7/+6
|
* build: fix --enable-debug, remove some "#ifdef MP_DEBUG"Uoti Urpala2011-07-301-3/+0
| | | | | | | | | | | Recent commit 5d5ca22a6d ("options: commandline: accept --foo=xyz style options") left some bad code under "#ifdef MP_DEBUG" in playtree.c, which caused a compilation failure if configured with "--enable-debug". Fix this. Having the "#ifdef MP_DEBUG" there was completely unnecessary; it only increased the risk for this kind of problems for no real benefit - executing the asserts under it would have no noticeable performance or other penalty in default builds either. Remove several cases of such harmful "#ifdef MP_DEBUG".
* options: change option parsing to use bstrUoti Urpala2011-07-291-1/+1
| | | | | | Using bstr allows simpler parsing code, especially because it avoids the need to modify or copy strings just to terminate extracted substrings.
* options: indicate ambiguous option parameters explicitlyUoti Urpala2011-07-291-1/+1
| | | | | | | | Command line options like "-foo xyz" are ambiguous: "xyz" may be a parameter to the option "foo" or an unrelated argument. Instead of relying on the struct m_config mode field (commandline/file) pass parameters to specify ambiguous mode explicitly. Meant for "--foo" options which are never ambiguous on command line either.
* input: don't make fd 0 nonblockingUoti Urpala2011-07-171-5/+0
| | | | | | | | | | | | | | | Setting O_NONBLOCK on a file descriptor also affects all other fds that share the same underlying open file description, and in case of stdin such sharing is likely. Making stdin nonblocking can also make stdout nonblocking (they may be the same connection to a terminal), and it can also affect other processes (in "program1 | program2", the shell may give the same terminal connection to program1 as stdin and to program2 as stdout, thus program1 making its stdin nonblocking also turns program2's stdout nonblocking). To avoid these problems stop making fd 0 nonblocking. After the previous commit this should no longer cause problems as long as select() does not spuriously report the fd as readable.
* input: make slave command file descriptors nonblockingUoti Urpala2011-05-041-2/+2
| | | | | | | Neither fd 0 slave input (-slave) nor additional opened fds (-input file=X) were set to nonblocking mode as they should have been. Fix. Also rename the horribly generic USE_SELECT #define used for a specific slave input detail.
* input: move all key code lists to input/keycodes.hUoti Urpala2011-05-024-106/+3
| | | | | | | | | | | | | Move the definitions of all special key codes (those not passed by ASCII value) to input/keycodes.h. Before they were spread between osdep/keycodes.h, input/joystick.h, input/mouse.h and input/ar.h, plus some special values in input.h. This was especially inconvenient as the codes had to be coordinated to not conflict between the files. The change requires a bit of ugliness as appleir.c includes <linux/input.h> which contains various conflicting KEY_* definitions. Work around this by adding a special preprocessor variable which can be used to avoid defining these in keycodes.h.
* input: make stdin non-blocking for terminal inputUoti Urpala2011-04-281-1/+7
| | | | | | | getch2.c did not make stdin non-blocking, and relied on only being called after select() had shown readability. Stop relying on that assumption and set stdin to non-blocking mode. Hopefully no relevant platform has problems with this...
* tl_matroska.c: move the find_files() function hereUoti Urpala2011-03-032-79/+0
| | | | | | Move the find_files() function from findfiles.c to tl_matroska.c. Delete the findfiles.c file. Add a check against opendir() failure in find_files().
* bstr.[ch], path.[ch]: add string and path handling functionsUoti Urpala2011-02-261-27/+7
| | | | | | | Add some new string and path handling functions to be used in following commits. Use new path handling functions to simplify find_files().
* osdep: tweak some #includesdiego2011-01-315-1/+6
| | | | | | Add/remove a few standard header #includes in osdep files. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32762 b3059339-0415-0410-9bf9-f77b7e298cf2
* build: cygwin: don't rely on _WIN32 being definedreimar2011-01-291-1/+1
| | | | | | | | | | | | | | | configure: Compilation fixes for current Cygwin git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32724 b3059339-0415-0410-9bf9-f77b7e298cf2 Do not #define _WIN32 on the command line for Cygwin. Newer Cygwin versions no longer do this and hopefully we should be able to survive without this hack as well. This change necessitates adapting two #ifdefs in the MPlayer codebase. It is committed untested as I do not have access to a Cygwin system. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32763 b3059339-0415-0410-9bf9-f77b7e298cf2
* Merge branch 'hr-seek'Uoti Urpala2010-12-201-0/+6
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * hr-seek: input: add default keybindings Shift+[arrow] for small exact seeks input: support bindings with modifier keys for X input core: audio: make ogg missing audio timing workaround more complex core: add support for precise non-keyframe-limited seeks core: add struct for queued seek info commands: add generic option -> property wrapper options: add "choice" option type, use for -pts-association-mode core: remove looping in update_video(), modify command handling a bit core: seek: use accurate seek mode with audio-only files core: avoid using sh_video->pts as "current pts" libvo: register X11 connection fd in input event system core: timing: add special handling of long frame intervals core: move central play loop to a separate function Conflicts: DOCS/tech/slave.txt
| * input: support bindings with modifier keys for X inputUoti Urpala2010-12-201-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for binding commands to modifier+key combinations like "Shift+Left" or "Ctrl+Alt+x", and support reading such combinations from the output window of X VOs. The recognized modifier names are Shift, Ctrl, Alt and Meta. Any combination of those and then a non-modifier key name, separated by '+', is accepted as a key name in input.conf. For non-special keys that produce characters shift is ignored as a modifier. For example "A" is handled as a key without modifiers even if you use shift to write the capital letter; 'a' vs 'A' already distinguishes the combinations with a normal keymap, and having separate 'a', 'Shift+A' and 'A' (written with caps lock for example) would bring more confusion than benefit. Currently reading the modifier+key combinations is only supported in the output window of those VOs that use x11_common.c event handling. It's not possible to input the key combinations in other VOs or in a terminal window.
* | vd_ffmpeg: set thread count to number of cores on machine by defaultUoti Urpala2010-12-202-0/+67
|/ | | | | | | | | | | Make "-lavdopts threads=0" mean an autodetected number of threads, and make that the default value of the option. Also increase the upper limit of the option from 8 to 16. Add new file osdep/numcores.c which tries to determine the number of cores available on the machine. numcores.c is based (heavily modified) on public domain numcpus.c by Philip Willoughby <pgw99@doc.ic.ac.uk>, downloaded from http://csgsoft.doc.ic.ac.uk/numcpus/
* cleanup: remove NULL checks before free() all over the codecboesch2010-11-141-2/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32624 b3059339-0415-0410-9bf9-f77b7e298cf2
* osdep/macosx_finder_args.h: include required header m_config.hdiego2010-11-021-0/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32166 b3059339-0415-0410-9bf9-f77b7e298cf2
* osdep: Fix gettimeofday type to match the real onereimar2010-11-021-1/+2
| | | | | | | Avoids issues if the system headers have a declaration for gettimeofday but there's just no implementation there. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31733 b3059339-0415-0410-9bf9-f77b7e298cf2
* Windows support: add a manifest filereimar2010-11-022-0/+22
| | | | | | | Add a manifest file to disable file and registry "virtualization" on Windows. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31630 b3059339-0415-0410-9bf9-f77b7e298cf2
* Delete things related to old translation systemUoti Urpala2010-03-101-1/+0
| | | | | Remove the help/ subdirectory, configure code to create toplevel help_mp.h, and all the '#include "help_mp.h"' lines from .c files.
* Merge svn changes up to r30848Uoti Urpala2010-03-102-23/+21
|\
| * 1. Move the macros for priority classes for OS/2 from priority.c to osdep.hkomh2010-03-042-23/+21
| | | | | | | | | | | | | | | | | | | | | | 2. Define SetPriorityClass() and GetCurrentProcess() in osdep.h 3. Include osdep.h in priority.c This removes OS2-platform check in priority.c git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30828 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r30798Uoti Urpala2010-03-102-13/+57
|\|
| * Add cddb:// support for OS/2komh2010-02-281-0/+33
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30788 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Add support for reading key events from MinGW xterm.reimar2010-02-281-1/+10
| | | | | | | | | | | | | | | | Unfortunately keys only arrive after enter was pressed and SetNamedPipeHandleState does not seem to help. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30784 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Make -slave also work with the normal console on Windows.reimar2010-02-271-3/+8
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30780 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Do not misuse the stdin name.reimar2010-02-271-10/+8
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30777 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Include getch2.h to get rid of some warnings.reimar2010-02-271-0/+1
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30776 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r30748Uoti Urpala2010-03-101-1/+1
|\|
| * Do not cast the results of malloc/calloc/realloc.diego2010-02-261-1/+1
| | | | | | | | | | | | | | | | 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
* | Merge svn changes up to r30732Uoti Urpala2010-03-104-3/+42
|\|
| * Add header for macosx_finder_args() instead of forward declaring it.diego2010-02-232-0/+27
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30717 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Mark sleep_accurate() as static, it is only used within the file.diego2010-02-221-1/+1
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30715 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Conditionally declare mp_input_slave_cmd_func().diego2010-02-221-2/+1
| | | | | | | | | | | | | | It does only get compiled on MinGW and OS/2. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30711 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Properly declare get_term_charset() instead of forward declaring it.diego2010-02-221-0/+13
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30710 b3059339-0415-0410-9bf9-f77b7e298cf2
| * cosmetics: Remove pointless empty lines at EOF.diego2010-02-205-5/+0
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30675 b3059339-0415-0410-9bf9-f77b7e298cf2
| * #include corresponding .h files in .c files.diego2010-02-164-0/+5
| | | | | | | | | | | | | | This ensures that function declarations in both files always match. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30596 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r30375Uoti Urpala2010-01-252-0/+31
|\|
| * Add a proper header for our strsep implementation so strsep willreimar2010-01-172-0/+31
| | | | | | | | | | | | | | not be used without a declaration, causing issues on 64 bit systems. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30355 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r30236Uoti Urpala2010-01-081-1/+1
|\|
| * Happy new year!zuxy2010-01-071-1/+1
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30235 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r29412Uoti Urpala2009-07-073-5/+7
|\|
| * Use a malloced string for the get_term_charset return value.reimar2009-05-313-5/+7
| | | | | | | | | | | | | | | | This is necessary at least on POSIX systems since the buffer returned by nl_langinfo may change its contents with e.g. each setlocale call. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29332 b3059339-0415-0410-9bf9-f77b7e298cf2
| * whitespace cosmetics: Remove all trailing whitespace.diego2009-05-139-42/+42
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29305 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Remove trailing whitespace from most filesUoti Urpala2009-07-0714-46/+41
| |
* | Translation system changes part 2: replace macros by stringsAmar Takhar2009-07-071-1/+1
| | | | | | | | | | Replace all MSGTR_ macros in the source by the corresponding English string.
* | Translation system changes part 1: wrap translated stringsAmar Takhar2009-07-071-1/+1
| | | | | | | | | | Replace mp_msg() calls which have a translated string as the format argument with mp_tmsg and add _() around all other translated strings.
* | Merge svn changes up to r29277Uoti Urpala2009-05-082-8/+11
|\|
| * Add missing 'void' to parameterless function declarations.diego2009-05-042-5/+5
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29254 b3059339-0415-0410-9bf9-f77b7e298cf2
| * cosmetics: reindentdiego2009-04-191-31/+38
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29198 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge branch 'ordered_chapters'Uoti Urpala2009-04-082-0/+99
|\ \
| * | Initial ordered chapters supportUoti Urpala2009-04-022-0/+99
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add basic support for Matroska ordered chapters. The switching between segments is implemented as a general edit timeline that could also be used for other purposes. Some things still need improvement. In particular the current code does not try to do any proper mapping between audio/video/subtitle streams of different files and there should be options for better control of how MPlayer searches other files for the required content.
* | | Merge svn changes up to r29117Uoti Urpala2009-04-011-1/+1
|\ \ \ | |/ / |/| / | |/
| * cosmetics: Remove file names from file header, it only causes trouble.diego2009-03-151-1/+1
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28959 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r28862Uoti Urpala2009-03-0720-20/+383
|\|
| * Add back mistakenly removed copyright notice.diego2009-03-031-0/+2
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28802 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Add standard license headers to files.diego2009-03-0120-20/+381
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28779 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r28537Uoti Urpala2009-02-122-0/+120
|\|
| * Remove unnecessary _UWIN #define.diego2009-02-111-3/+0
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28529 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Add priority support for OS/2 and factorize the Windows priority support.diego2009-02-102-0/+123
| | | | | | | | | | | | | | patch by KO Myung-Hun, komh chollian net git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28520 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r28341Uoti Urpala2009-01-191-1/+1
|\| | | | | | | | | | | Conflicts: configure libmpcodecs/native/rtjpegn.c
| * Update copyright year, patch by Zhou Zongyi, zhouzongyi pset.suntec net.diego2009-01-151-1/+1
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28312 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r28310Uoti Urpala2009-01-152-6/+11
|\| | | | | | | | | | | | | | | The libdvdread4 and libdvdnav directories, which are externals in the svn repository, are at least for now not included in any form. I added configure checks to automatically disable internal libdvdread and libdvdnav if the corresponding directories are not present; if they're added manually then things work the same as in svn.
| * timer-win2.c: Fix "voi" (void) typo breaking Windows compilationuau2009-01-051-1/+1
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28269 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Add missing 'void' keyword to parameterless function declarations.diego2009-01-052-7/+13
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28267 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r28087Uoti Urpala2008-12-042-10/+10
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: command.c libao2/ao_ivtv.c libao2/ao_v4l2.c libmpcodecs/dec_video.h libvo/aspect.h libvo/sub.c libvo/sub.h libvo/vo_directx.c libvo/vo_macosx.m libvo/vo_quartz.c mp_core.h mplayer.c mplayer.h osdep/getch2.h osdep/timer.h
| * Get rid of pointless 'extern' keywords.diego2008-12-033-12/+12
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28085 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Use correct terminal "clear line" codeUoti Urpala2008-08-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The "erase_to_end_of_line" string used to clear the terminal status line was initialized with the termcap id "cd", which means to clear all lines below the cursor. Change it to the correct "ce" to clear the current line. Usually the status line is on the bottommost line of the terminal so the behaviour wouldn't differ much. However it did make a difference when I tested starting MPlayer at the top of a huge gnome-terminal window so the status line was not at the bottom; in that case clearing just the current line used less CPU than clearing the part of the huge window below the status line.
* | Include corresponding .h in some .c filesUoti Urpala2008-08-121-0/+1
| |
* | Merge svn changes up to r27441Uoti Urpala2008-08-083-5/+5
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: cfg-common-opts.h command.c configure input/input.c libmpcodecs/dec_video.c libmpcodecs/vd.c libmpdemux/stheader.h libvo/sub.c libvo/video_out.c libvo/vo_xv.c libvo/vosub_vidix.c libvo/x11_common.c libvo/x11_common.h mp_core.h mplayer.c stream/stream.h
| * Rename font-related preprocessor directives.diego2008-08-073-5/+5
| | | | | | | | | | | | | | Switch them from a HAVE_ to a CONFIG_ prefix. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27425 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r27399Uoti Urpala2008-08-023-9/+9
|\| | | | | | | | | | | | | | | | | | | Conflicts: libmpcodecs/vd.c libmpcodecs/ve_raw.c libvo/video_out.c libvo/x11_common.c mplayer.c
| * Rename some preprocessor directives from CONFIG_* to HAVE_* where appropriate;diego2008-08-013-9/+9
| | | | | | | | | | | | | | CONFIG_ prefix for configurable options, HAVE_ for system-dependent stuff. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27391 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r27374Uoti Urpala2008-07-303-12/+12
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: cfg-common-opts.h cfg-mplayer.h command.c configure libmpcodecs/dec_video.c libmpcodecs/vd.c libmpcodecs/vf_vo.c libmpdemux/demuxer.h libmpdemux/stheader.h mp_core.h mplayer.c stream/stream_radio.c
| * Start unifying names of internal preprocessor directives.diego2008-07-303-12/+12
| | | | | | | | | | | | | | | | 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
* | Merge svn changes up to r26979Uoti Urpala2008-06-043-4/+4
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Most of the conflicts are trivial. Conflicts: Makefile cfg-mplayer.h input/input.c libmenu/vf_menu.c libmpcodecs/dec_video.c libmpcodecs/vf_expand.c libmpcodecs/vf_vo.c libmpdemux/demux_mkv.c libmpdemux/demuxer.c libmpdemux/demuxer.h libvo/vo_directfb2.c libvo/vo_gl.c libvo/vo_winvidix.c libvo/vo_xv.c libvo/vo_xvidix.c libvo/vo_xvmc.c libvo/x11_common.c mplayer.c osdep/timer-linux.c stream/cache2.c
| * cosmetics: Remove useless parentheses from return statements.diego2008-05-163-4/+4
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26791 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Remove useless variable startup_time, since we do not need it any more.ulion2008-05-051-5/+4
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26672 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r26624Uoti Urpala2008-05-011-2/+2
|\| | | | | | | | | | | Conflicts: Makefile
| * Use consistent include paths, we always build from the top level now.diego2008-04-301-2/+2
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26603 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Add a context for mp_fifoUoti Urpala2008-04-294-7/+8
| | | | | | | | | | Store data in an allocated context and take it as an argument instead of using static variables.
* | mp_fifo.c, osdep/: Include corresponding .h in .c filesUoti Urpala2008-04-295-0/+8
| |
* | Merge svn changes up to r26587Uoti Urpala2008-04-291-4/+2
|\| | | | | | | | | | | | | | | Conflicts: Makefile configure osdep/timer-darwin.c
| * Force to uint64_t first to avoid direct conversion from double to unsigned int.ulion2008-04-281-4/+2
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26582 b3059339-0415-0410-9bf9-f77b7e298cf2
* | osdep: Remove cruftUoti Urpala2008-04-282-21/+0
| | | | | | | | Delete some commented out or otherwise unused lines.
* | timers: Remove GetRelativeTime()Uoti Urpala2008-04-284-44/+2
| | | | | | | | | | | | | | | | | | | | Move the code calculating time delta since last query out of the platform-specific drivers and into mplayer.c. The platform-specific drivers now return absolute values only. The way the code in timer-darwin.c uses doubles in wrapping arithmetic looks questionable and this change might make problems in it more visible.
* | osdep: Change timer_name to a saner typeUoti Urpala2008-04-284-4/+4
|/ | | | | timer_name was a (non-const) pointer to a const char array. Make the symbol the array itself.
* Merge osdep/Makefile into the top-level Makefile, thus getting riddiego2008-04-081-23/+0
| | | | | | | of recursive make in the osdep/ subdirectory. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26352 b3059339-0415-0410-9bf9-f77b7e298cf2
* Move decision about which getch2 and timer file to compile to configure.diego2008-04-081-17/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26351 b3059339-0415-0410-9bf9-f77b7e298cf2
* Move decision about whether or not to compile osdep/mmap_os2.c to configure.diego2008-04-081-3/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26350 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add missing header #includes to fix 'make checkheaders'.diego2008-03-072-0/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26196 b3059339-0415-0410-9bf9-f77b7e298cf2
* mmap() support for OS/2diego2008-02-273-0/+269
| | | | | | | patch by KO Myung-Hun, komh chollian net git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26108 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add MPLAYER_ prefix to multiple inclusion guards.diego2008-02-225-15/+15
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26061 b3059339-0415-0410-9bf9-f77b7e298cf2
* OS/2 getch2() supportdiego2008-02-213-0/+211
| | | | | | | patch by KO Myung-Hun, komh chollian net git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26048 b3059339-0415-0410-9bf9-f77b7e298cf2
* Rename mp_input_win32_slave_cmd_func to mp_input_slave_cmd_func.diego2008-02-212-2/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26047 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove pointless #ifdefs around extern declarations.diego2008-02-201-2/+0
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26039 b3059339-0415-0410-9bf9-f77b7e298cf2
* Happy New Year!zuxy2008-01-021-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25583 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add multiple inclusion guards to all header files that lack them.diego2008-01-014-0/+18
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25581 b3059339-0415-0410-9bf9-f77b7e298cf2
* Replace multiple inclusion guards with leading underscores by default names.diego2008-01-011-3/+3
| | | | | | | Leading underscores are reserved for system identifiers. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25579 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix warnings when compiling test application.diego2007-12-281-1/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25538 b3059339-0415-0410-9bf9-f77b7e298cf2
* Make windres binary name configurable, useful for cross-compiling.diego2007-12-281-1/+1
| | | | | | | patch by sheba, sheba469 yahoo com git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25534 b3059339-0415-0410-9bf9-f77b7e298cf2
* Rename timer-lx.c --> timer-linux.c.diego2007-11-212-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25129 b3059339-0415-0410-9bf9-f77b7e298cf2
* main() --> main(void)diego2007-11-213-3/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25128 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix GetTimerMS() discontinuous return value bug caused by GetTimer() overflowulion2007-10-231-1/+2
| | | | | | | on darwin. This bug will cause osd stuck on darwin. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24843 b3059339-0415-0410-9bf9-f77b7e298cf2
* getch2: Fix incorrect testuau2007-09-151-1/+1
| | | | | | | | | | | Keycode length wasn't checked in one case because of missing parentheses. This was accidentally broken in my previous commit to the file. Most likely the error had no practical effect; the length checks are unreliable in any case as they can be satisfied by unrelated data corresponding to other keypresses. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24535 b3059339-0415-0410-9bf9-f77b7e298cf2
* warning fix:diego2007-08-251-1/+1
| | | | | | | | mmap_anon.c: In function 'mmap_anon': mmap_anon.c:37: warning: unused variable 'fd' git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24194 b3059339-0415-0410-9bf9-f77b7e298cf2
* Clean up getch2() code somewhatuau2007-08-251-69/+102
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24150 b3059339-0415-0410-9bf9-f77b7e298cf2
* Make terminal input work more like VO key inputuau2007-08-253-17/+18
| | | | | | | | | | | | | | | | | The Unix version of getch2() could either return an internally buffered key or do a second-level select() in addition to the input.c one and then read more data. Change getch2() to always add all read keys with mplayer_put_key() (like video output window keyboard input does) and remove the internal select() from the Unix version. Make input.c call mplayer_get_key() directly. The primary motivation for this change is to make combining multiple event sources under one select() easier. Now getch2() only needs to be called when the corresponding fd is readable, and it will be possible to handle events from X-based VOs with the same code. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24149 b3059339-0415-0410-9bf9-f77b7e298cf2
* Identifiers starting with underscores are reserved.diego2007-07-311-3/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23954 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove unused scandir() check and fallback implementation.diego2007-07-172-134/+0
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23799 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove unused ftello() check and fallback implementation.diego2007-07-172-20/+0
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23798 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove unused fseeko() check and fallback implementation.diego2007-07-172-68/+0
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23797 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove empty strlcat and strlcpy filesreimar2007-07-062-0/+0
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23725 b3059339-0415-0410-9bf9-f77b7e298cf2
* Avoid code duplication and ugly config.h hack by using av_strlcat/av_strlcpyreimar2007-07-053-39/+0
| | | | | | | instead of plain strlcat/strlcpy git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23723 b3059339-0415-0410-9bf9-f77b7e298cf2
* "()" to "(void)" function param list fixesuau2007-04-012-2/+2
| | | | | | | patch from Stefan Huehner, stefan huehner org git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22904 b3059339-0415-0410-9bf9-f77b7e298cf2
* Update copyright year.diego2007-03-241-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22794 b3059339-0415-0410-9bf9-f77b7e298cf2
* Do not disable cache on MinGW, just disable shmem compilation.diego2007-03-171-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22705 b3059339-0415-0410-9bf9-f77b7e298cf2
* cosmetics: Fix indentation, reorder some lines for consistency.diego2007-03-131-1/+0
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22549 b3059339-0415-0410-9bf9-f77b7e298cf2
* Give more descriptive names to the source and library variables and splitdiego2007-03-131-17/+17
| | | | | | | between common, MPlayer-specific and MEncoder-specific parts. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22546 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add code to detect and convert to console codepage on Windows.reimar2007-03-042-0/+58
| | | | | | | Patch by Zuxy Meng [zuxy.meng at gmail com] git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22460 b3059339-0415-0410-9bf9-f77b7e298cf2
* Include stdio.h for printfreimar2007-03-041-0/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22459 b3059339-0415-0410-9bf9-f77b7e298cf2
* Move the decision about stream cache compilation to configure.diego2007-02-271-2/+0
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22366 b3059339-0415-0410-9bf9-f77b7e298cf2
* Move glob-win.c out of MinGW section, configure handles it.diego2007-02-271-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22365 b3059339-0415-0410-9bf9-f77b7e298cf2
* 100l misplaced #endifdiego2007-01-121-1/+1
| | | | | | | patch by elupus, elupus ecce se git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21883 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove superfluous #ifdefs.diego2007-01-111-5/+0
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21880 b3059339-0415-0410-9bf9-f77b7e298cf2
* Split strl.c into strl(cat|cpy).c and move #ifdefs into the build system.diego2007-01-104-38/+39
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21875 b3059339-0415-0410-9bf9-f77b7e298cf2
* Split fseeko.c into fseeko.c and ftello.c, move #ifdefs into the build system.diego2007-01-103-19/+22
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21874 b3059339-0415-0410-9bf9-f77b7e298cf2
* Move #ifdef directives around complete files into the build system.diego2007-01-1010-33/+13
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21873 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove redundant ifdef, this file is only ever compiled on MinGW.diego2007-01-101-2/+0
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21872 b3059339-0415-0410-9bf9-f77b7e298cf2
* consistent include pathdiego2007-01-101-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21871 b3059339-0415-0410-9bf9-f77b7e298cf2
* bswap.h --> mpbswap.hdiego2007-01-101-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21870 b3059339-0415-0410-9bf9-f77b7e298cf2
* Always use tcgetattr/tcsetattr instead of #ifdef messreimar2006-12-121-18/+0
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21605 b3059339-0415-0410-9bf9-f77b7e298cf2
* fix include clash for mmap_anon on darwin ppcnplourde2006-12-051-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21505 b3059339-0415-0410-9bf9-f77b7e298cf2
* Move the generation of osdep/mplayer-rc.o back to the top-level Makefile,diego2006-12-041-1/+0
| | | | | | | | having it as a part of osdep/libosdep.a is not enough. based on a patch by Zuxy Meng, zuxy.meng gmail com git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21489 b3059339-0415-0410-9bf9-f77b7e298cf2
* FFmpeg-style dependency declarationdiego2006-11-271-4/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21325 b3059339-0415-0410-9bf9-f77b7e298cf2
* Simplify, TARGET_WIN32 is both Cygwin and MinGW.diego2006-11-271-4/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21313 b3059339-0415-0410-9bf9-f77b7e298cf2
* Merge common parts of all Makefiles into one file included by all.diego2006-11-261-27/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21275 b3059339-0415-0410-9bf9-f77b7e298cf2
* Disable when HAVE_SYS_MMAN_H is not defined, since it can not be compiled then.reimar2006-11-261-0/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21269 b3059339-0415-0410-9bf9-f77b7e298cf2
* Adjust icon path since windres is now called from osdep subdirreimar2006-11-261-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21268 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove useless fd parameter for mmap_anonreimar2006-11-262-6/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21264 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove superfluous comment.diego2006-11-251-3/+0
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21222 b3059339-0415-0410-9bf9-f77b7e298cf2
* all should be the first target.diego2006-11-251-2/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21210 b3059339-0415-0410-9bf9-f77b7e298cf2
* 10l copy + paste typodiego2006-11-251-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21208 b3059339-0415-0410-9bf9-f77b7e298cf2
* Simplify LIBNAME target with $@ and $^.diego2006-11-251-2/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21207 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove commented-out cruft.diego2006-11-251-4/+0
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21206 b3059339-0415-0410-9bf9-f77b7e298cf2
* Move osdep/mplayer.rc handling to the osdep Makefile.diego2006-11-251-0/+6
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21205 b3059339-0415-0410-9bf9-f77b7e298cf2
* added mmap_anon to osdep lib. Used in loader for nownplourde2006-11-253-0/+76
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21203 b3059339-0415-0410-9bf9-f77b7e298cf2
* Unify dep/depend targets.diego2006-11-201-3/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21096 b3059339-0415-0410-9bf9-f77b7e298cf2
* * remove extern definitions of functions in .c filesattila2006-09-121-0/+3
| | | | | | | | | | | | | | | | | * create new .h files where necessary todo: * go trough other files than mplayer.c * vf_menu_pause_update() * mp_input_register_options() * import_playtree_playlist_into_gui() * import_initial_playtree_into_gui() For more infos see http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/2006-September/045683.html ( 20060902133225.2cc82aec.attila@kinali.ch on -dev-eng ) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19814 b3059339-0415-0410-9bf9-f77b7e298cf2
* Move all internal -I parameters to the front of CFLAGS to avoid using externaldiego2006-08-171-1/+1
| | | | | | | | header files that happen to have the same name as internal ones. based on a patch by Vladislav Naumov, vladislav.naumov **at** gmail **dot** com git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19426 b3059339-0415-0410-9bf9-f77b7e298cf2
* introduce new 'stream' directory for all stream layer related components and ↵ben2006-07-311-1/+1
| | | | | | split them from libmpdemux git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19277 b3059339-0415-0410-9bf9-f77b7e298cf2
* OPTFLAGS already includes EXTRA_INC.diego2006-07-121-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19042 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove now obsolete .cvsignore files.diego2006-06-021-1/+0
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18556 b3059339-0415-0410-9bf9-f77b7e298cf2
* remove useless cruft (caused error tz undefined)rfelker2006-05-131-4/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18468 b3059339-0415-0410-9bf9-f77b7e298cf2
* 10l, fix broken if (X >= Y >= Z) comparison, probably stopped F-keys from ↵reimar2006-04-151-1/+1
| | | | | | working git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18108 b3059339-0415-0410-9bf9-f77b7e298cf2
* getch2 should wait for input. Fixes 100% CPU usage during cache fill.reimar2006-04-101-0/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18071 b3059339-0415-0410-9bf9-f77b7e298cf2
* cosmetics: Shorten overly long lines, put SRCS/OBJS on individual linesdiego2006-03-251-3/+10
| | | | | | | to ease patching in the future. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17944 b3059339-0415-0410-9bf9-f77b7e298cf2
* Missing initializationreimar2006-03-081-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17768 b3059339-0415-0410-9bf9-f77b7e298cf2
* Patch by Stefan Huehner / stefan % huehner ! org \rathann2006-02-094-14/+14
| | | | | | | | | | | | | | | | | | | | | | patch replaces '()' for the correct '(void)' in function declarations/prototypes which have no parameters. The '()' syntax tell thats there is a variable list of arguments, so that the compiler cannot check this. The extra CFLAG '-Wstrict-declarations' shows those cases. Comments about a similar patch applied to ffmpeg: That in C++ these mean the same, but in ANSI C the semantics are different; function() is an (obsolete) K&R C style forward declaration, it basically means that the function can have any number and any types of parameters, effectively completely preventing the compiler from doing any sort of type checking. -- Erik Slagter Defining functions with unspecified arguments is allowed but bad. With arguments unspecified the compiler can't report an error/warning if the function is called with incorrect arguments. -- Måns Rullgård git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17567 b3059339-0415-0410-9bf9-f77b7e298cf2
* Make clean/distclean behave uniformly in all directories.diego2006-01-271-2/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17489 b3059339-0415-0410-9bf9-f77b7e298cf2
* AIX PPC portdiego2005-12-291-3/+3
| | | | | | | patch by "Derek E. Lewis" < -- dlewis -- @ -- solnetworks -- . -- net -- > git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17265 b3059339-0415-0410-9bf9-f77b7e298cf2
* change erase to end of line, fall back to old behavior if no termcap foundods152005-12-292-4/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17259 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix erase to end of line with windows, windows terminal does not supportods152005-12-271-1/+1
| | | | | | | control codes. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17252 b3059339-0415-0410-9bf9-f77b7e298cf2
* 10000l to me, broke compilation on mingw, erase_to_end_of_line needs to beods152005-12-261-0/+1
| | | | | | | in both getch2 and getch2-win because only one of them is linked to. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17248 b3059339-0415-0410-9bf9-f77b7e298cf2
* - move our setenv() fallback implementation to osdepal2005-12-262-1/+30
| | | | | | | | | | | - assert that the override param is nonzero (zero is not implemented) - correct return value type to int based on a patch by Diego fixes bugzilla bug #342 git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17246 b3059339-0415-0410-9bf9-f77b7e298cf2
* Use termcap "erase to end of line" character code instead of using spacesods152005-12-252-0/+6
| | | | | | | to end of screen. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17241 b3059339-0415-0410-9bf9-f77b7e298cf2
* Unify include paths, -I.. is in CFLAGS.diego2005-11-1414-17/+17
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@16986 b3059339-0415-0410-9bf9-f77b7e298cf2
* libvo input cleanup: remove the dependency on libinput,albeu2005-11-021-6/+19
| | | | | | | remove most of the crappy mappings (like O->o or ESC->q). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@16893 b3059339-0415-0410-9bf9-f77b7e298cf2
* fix broken (off-by-one) behavior of our strl* functions (patch by reimar)rfelker2005-10-251-17/+5
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@16854 b3059339-0415-0410-9bf9-f77b7e298cf2
* use libvbe from vesautilsalex2005-08-185-2027/+0
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@16257 b3059339-0415-0410-9bf9-f77b7e298cf2
* add some closedir() to fix some opendir() leaksaurel2005-07-221-1/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@16062 b3059339-0415-0410-9bf9-f77b7e298cf2
* proper disabling/enabling of console output for vo_vesaaurel2005-07-161-21/+26
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@15981 b3059339-0415-0410-9bf9-f77b7e298cf2
* not used anymorereimar2005-05-271-9/+0
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@15578 b3059339-0415-0410-9bf9-f77b7e298cf2
* DragonFly BSD supportdiego2005-05-251-3/+3
| | | | | | | patch by Joerg Sonnenberger <joerg - at - britannica - dot - bec - dot - de> git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@15567 b3059339-0415-0410-9bf9-f77b7e298cf2
* use sleep_accurate darwin timernplourde2005-04-271-1/+11
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@15276 b3059339-0415-0410-9bf9-f77b7e298cf2
* - fix gcc warnings, strlcat/strlcpy prototypesrathann2005-04-061-3/+4
| | | | | | | - fix bad sscanf usage in geometry.c git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@15059 b3059339-0415-0410-9bf9-f77b7e298cf2
* add support for macosx finder argument support (let you bundle mplayer to be ↵nplourde2004-11-102-0/+111
| | | | | | a finder compliant .app) patch by Chris Roccati <roccati@pobox.com> git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@13910 b3059339-0415-0410-9bf9-f77b7e298cf2
* repace call to sleep_accurate to usleep which fix hang while using -cache ↵nplourde2004-10-271-9/+1
| | | | | | option on osx git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@13777 b3059339-0415-0410-9bf9-f77b7e298cf2
* Zeta OS support, mostly working.reimar2004-10-114-0/+23
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@13613 b3059339-0415-0410-9bf9-f77b7e298cf2
* Currently vbeGetProtModeInfo call the 0x4f0a function of int 10h the getfaust32004-10-061-8/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a simple 32 bits protected mode interface to some VESA functions. This protected mode interface is interesting because it's quicker than the raw int 10h interface. Unfortunatly, begining with VBE 3.0, the 0x4f0a function is optional, and some video cards don't implement it (3dfx, intel 845/855/865...). This protected mode interface is then only used in vbeSetWindow and vbeSetDisplayStart :  - vbeSetWindow already implement an alternative methode if protected mode interface is not available.  - vbeSetDisplayStart also contain an alternative implementation, but this one is disabled with a #if 0. I don't exactly know why because it works well ! So currently, cards which don't have the 0x4f0a function are not supported. This patch correct this.  - vbeGetProtModeInfo failure is not fatal.  - vbeSetDisplayStart has it's alternative implementation reenabled.    it's used only with cards which don't have the 0x4f0a function    so this won't make any difference for cards which were already    working. This patch also make the failure of vbeGetModeInfo not fatal. The VBE 3.0 standard state that GetModeInfo can fail with some mode which are listed as supported if the mode can't be used in the current situation (not enough video memory for example). So a failure of vbeGetModeInfo don't mean that other modes won't work and should really not be fatal. patch by Aurelien Jacobs <aurel@gnuage.org> git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@13569 b3059339-0415-0410-9bf9-f77b7e298cf2
* stdout and stderr are macros --- you can't assign to them. Assignment ↵faust32004-09-161-2/+2
| | | | | | doesn't make sense anyway, because freopen will always return the same FILE * structure that it got in parameter. patch by Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz> git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@13353 b3059339-0415-0410-9bf9-f77b7e298cf2
* fix slave mode for mingw, patch by Anton Ragnarsson <anton.ragnarsson.1093 ↵faust32004-08-131-12/+6
| | | | | | at student.uu.se> some cleanup by be git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@13016 b3059339-0415-0410-9bf9-f77b7e298cf2
* And a tiny compile fix.wight2004-08-041-1/+1
| | | | | | | I should learn to test before apply. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12956 b3059339-0415-0410-9bf9-f77b7e298cf2
* Native darwin timer update.wight2004-08-044-107/+63
| | | | | | | Patch by Dan Christiansen <danchr@daimi.au.dk> git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12955 b3059339-0415-0410-9bf9-f77b7e298cf2
* typodiego2004-06-281-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12720 b3059339-0415-0410-9bf9-f77b7e298cf2
* mingw crosscompiling step 1faust32004-06-271-2/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12707 b3059339-0415-0410-9bf9-f77b7e298cf2
* 10lfaust32004-06-261-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12678 b3059339-0415-0410-9bf9-f77b7e298cf2
* neomagic tv out support throught vesa vbe, patch by Rudolf Marekalex2004-06-252-0/+44
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12661 b3059339-0415-0410-9bf9-f77b7e298cf2
* string handling security fixesdiego2004-06-252-1/+49
| | | | | | | | patch by Nicholas Kain, Alexander Strasser <eclipse7@gmx.net> reviewed by Pontscho, Alex, Rich git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12647 b3059339-0415-0410-9bf9-f77b7e298cf2
* name changediego2004-06-251-2/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12646 b3059339-0415-0410-9bf9-f77b7e298cf2
* ranlib cleanup by Dan Christiansenalex2004-06-241-0/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12633 b3059339-0415-0410-9bf9-f77b7e298cf2
* morphos support by Nicolas Detalex2004-04-051-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12123 b3059339-0415-0410-9bf9-f77b7e298cf2
* 10l for the orignial author and 1000l for me for commiting a broken workaroundfaust32004-04-041-2/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12116 b3059339-0415-0410-9bf9-f77b7e298cf2
* fseeko emulation patch by Steven M. Schultz <sms at 2bsd.com>faust32004-03-262-1/+85
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12072 b3059339-0415-0410-9bf9-f77b7e298cf2
* The attached patch fixes a minor build problem on GNU/k*BSD: getch2.c shoulddiego2004-03-241-3/+3
| | | | | | | | check for Glibc, not GNU. patch by Robert Millan <zeratul2@wanadoo.es> git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12064 b3059339-0415-0410-9bf9-f77b7e298cf2
* disable buggy code, patch by Romain Dolbeaualex2004-01-281-0/+4
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@11868 b3059339-0415-0410-9bf9-f77b7e298cf2
* Modification statement added.diego2004-01-161-0/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@11796 b3059339-0415-0410-9bf9-f77b7e298cf2
* happy new year, copyright is MPlayer team now, naming cosmeticsdiego2004-01-121-2/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@11780 b3059339-0415-0410-9bf9-f77b7e298cf2
* linux 2.6 patch by "ismail 'cartman' dönmez" <ismail.donmez@boun.edu.tr>attila2004-01-101-0/+9
| | | | | | | no idea whether this really works :) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@11766 b3059339-0415-0410-9bf9-f77b7e298cf2
* Save fs before calling vm86, this might eleminate bugs (if there were any) ↵alex2003-11-241-1/+3
| | | | | | in cooperation of using vesa with win32 dlls. Patch by Peter Kosinar <goober@ksp.sk> git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@11520 b3059339-0415-0410-9bf9-f77b7e298cf2
* Sleep(0) != usleep(0), bugreport by Paul-Kenji Cahierfaust32003-11-161-0/+4
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@11481 b3059339-0415-0410-9bf9-f77b7e298cf2
* cumulative libc5 compatibility patch ;)gabucino2003-11-132-0/+10
| | | | | | | | - VESA detection by sys/io.h header - workaround a missing define on libc5 git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@11456 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix pthread & lrmi segfault issue. ("Oleg I. Vdovikin" <vdovikin@jscc.ru>)ranma2003-11-111-0/+8
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@11435 b3059339-0415-0410-9bf9-f77b7e298cf2
* add a read function for slave mode on mingwfaust32003-09-221-0/+19
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@10929 b3059339-0415-0410-9bf9-f77b7e298cf2
* warning fix (missing C initializer)pl2003-09-121-2/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@10858 b3059339-0415-0410-9bf9-f77b7e298cf2
* 10lalex2003-08-031-3/+0
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@10516 b3059339-0415-0410-9bf9-f77b7e298cf2
* Obsoleted by timer-win2.c.diego2003-06-181-71/+0
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@10308 b3059339-0415-0410-9bf9-f77b7e298cf2
* obsoleted by timer-darwin.cdiego2003-06-111-64/+0
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@10281 b3059339-0415-0410-9bf9-f77b7e298cf2
* renames: DATADIR->MPLAYER_DATADIR, CONFDIR->MPLAYER_CONFDIR, ↵arpi2003-06-091-1/+0
| | | | | | LIBDIR->MPLAYER_LIBDIR git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@10273 b3059339-0415-0410-9bf9-f77b7e298cf2
* fix volume increasingfaust32003-06-011-1/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@10231 b3059339-0415-0410-9bf9-f77b7e298cf2
* use threads on windowsfaust32003-05-261-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@10198 b3059339-0415-0410-9bf9-f77b7e298cf2
* Precise timer for Darwin (it's more accurate than timer-macosx.c)alex2003-05-212-2/+171
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@10149 b3059339-0415-0410-9bf9-f77b7e298cf2
* uninit fix by Aurelien JACOBS <aurel at gnuage.org>faust32003-05-161-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@10115 b3059339-0415-0410-9bf9-f77b7e298cf2
* alternative timer and glob emulation code for mingw32 portfaust32003-04-255-3/+145
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@9984 b3059339-0415-0410-9bf9-f77b7e298cf2
* windows resource file for versioninfo and iconfaust32003-04-201-0/+39
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@9945 b3059339-0415-0410-9bf9-f77b7e298cf2
* disable getch2 on windows when we can't read stdin (msys)faust32003-04-191-3/+10
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@9937 b3059339-0415-0410-9bf9-f77b7e298cf2
* mem mapped area need to be unmapped.albeu2003-04-122-2/+9
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@9915 b3059339-0415-0410-9bf9-f77b7e298cf2
* keypad and function (f1-f10) suppport (currently only vo_sdl and the ↵alex2003-04-091-0/+17
| | | | | | terminal input code supports it). Patch by Vladimir Mosgalin <mosgalin@VM10124.spb.edu> git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@9892 b3059339-0415-0410-9bf9-f77b7e298cf2
* Unbreakrguyom2003-04-041-0/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@9835 b3059339-0415-0410-9bf9-f77b7e298cf2
* enable timer-win and getch2-win for mingw32faust32003-04-041-4/+13
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@9831 b3059339-0415-0410-9bf9-f77b7e298cf2
* gettimeofday() emulation using ftime()faust32003-04-041-0/+11
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@9830 b3059339-0415-0410-9bf9-f77b7e298cf2
* Support for "internet" or "multimedia" keyboards in X11.albeu2003-04-041-0/+6
| | | | | | | Patch from Jason Tackaberry <tack at auc dot ca>. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@9823 b3059339-0415-0410-9bf9-f77b7e298cf2
* atm shmem.c is only needed for cache2faust32003-04-021-0/+4
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@9798 b3059339-0415-0410-9bf9-f77b7e298cf2
* windows getch2 for MINGW32 portfaust32003-03-301-0/+109
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@9767 b3059339-0415-0410-9bf9-f77b7e298cf2
* high precision timer for windows patch by Frodo <csharprules at hotmail.com>faust32003-03-301-0/+71
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@9766 b3059339-0415-0410-9bf9-f77b7e298cf2
* precise macosx timer by Dan Christiansen <danchr@daimi.au.dk> and 10l fix by mealex2003-02-192-2/+73
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@9466 b3059339-0415-0410-9bf9-f77b7e298cf2
* linux->osdeparpi2003-02-0916-0/+2705
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@9381 b3059339-0415-0410-9bf9-f77b7e298cf2