Commit Graph

37 Commits

Author SHA1 Message Date
wm4 cc54377463 Do not call strerror()
...because everything is terrible.

strerror() is not documented as having to be thread-safe by POSIX and
C11. (Which is pretty much bullshit, because both mandate threads and
some form of thread-local storage - so there's no excuse why
implementation couldn't implement this in a thread-safe way. Especially
with C11 this is ridiculous, because there is no way to use threads and
convert error numbers to strings at the same time!)

Since we heavily use threads now, we should avoid unsafe functions like
strerror().

strerror_r() is in POSIX, but GNU/glibc deliberately fucks it up and
gives the function different semantics than the POSIX one. It's a bit of
work to convince this piece of shit to expose the POSIX standard
function, and not the messed up GNU one.

strerror_l() is also in POSIX, but only since the 2008 standard, and
thus is not widespread.

The solution is using avlibc (libavutil, by its official name), which
handles the unportable details for us, mostly. We avoid some pain.
2014-11-26 21:21:56 +01:00
wm4 e9b756c7ad input: remove central select() call
This is now unused. Get rid of it and all surrounding infrastructure,
and replace the remaining "wakeup pipe" with a semaphore.
2014-09-10 03:24:45 +02:00
wm4 ae63702a2c input: remove useless joystick.h/lirc.h include files
These really just waste space.
2014-09-10 00:51:36 +02:00
wm4 fe0ca7559c input: use an input thread for lirc 2014-09-10 00:48:45 +02:00
foo86 6a556f524e input: enable wakeup on LIRC socket
Commit dc00b14 removed playloop polling. Enable wakeup on LIRC socket,
otherwise remote control doesn't work when paused.
2014-07-20 13:52:06 +02:00
wm4 78128bddda Kill all tabs
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).
2014-04-13 18:03:01 +02:00
wm4 ed71606e65 input: rework how input sources are added
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.
2013-12-21 20:50:13 +01:00
wm4 0112143fda Split mpvcore/ into common/, misc/, bstr/ 2013-12-17 02:39:45 +01:00
wm4 8d5214de0a Move mpvcore/input/ to input/ 2013-12-17 01:23:09 +01:00
wm4 d4bdd0473d Rename directories, move files (step 1 of 2) (does not compile)
Tis drops the silly lib prefixes, and attempts to organize the tree in
a more logical way. Make the top-level directory less cluttered as
well.

Renames the following directories:
    libaf -> audio/filter
    libao2 -> audio/out
    libvo -> video/out
    libmpdemux -> demux

Split libmpcodecs:
    vf* -> video/filter
    vd*, dec_video.* -> video/decode
    mp_image*, img_format*, ... -> video/
    ad*, dec_audio.* -> audio/decode

libaf/format.* is moved to audio/ - this is similar to how mp_image.*
is located in video/.

Move most top-level .c/.h files to core. (talloc.c/.h is left on top-
level, because it's external.) Park some of the more annoying files
in compat/. Some of these are relicts from the time mplayer used
ffmpeg internals.

sub/ is not split, because it's too much of a mess (subtitle code is
mixed with OSD display and rendering).

Maybe the organization of core is not ideal: it mixes playback core
(like mplayer.c) and utility helpers (like bstr.c/h). Should the need
arise, the playback core will be moved somewhere else, while core
contains all helper and common code.
2012-11-12 20:06:14 +01:00
wm4 65fc530f0c Rename to "mpv"
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.)
2012-10-12 10:14:32 +02:00
wm4 6d6ae638fa lirc: silence output in case LIRC can't be opened
By default mplayer attempts to use LIRC. If LIRC can't be opened, a
bunch of warnings are printed. Since mplayer is often built with LIRC
enabled by default, many users will see these rather pointless
warnings. Lower verbosity, so that the warnings are not visible by
default anymore.
2012-07-30 01:46:04 +02:00
Uoti Urpala 79469244f7 input/ar.c, input/lirc.c: fix changes missing from 1916b95b8
1916b95b8 changed two function types from returning "void" to
returning "int", but was missing changes to add "return 0;" to the
functions. Fix.

The reason for the change in the original commit was that the
functions were called through a function pointer returning int anyway,
so the missing return probably made things no more likely to fail at
runtime than they were before that commit. However, it caused a
compilation failure with clang, which treats non-void function not
returning a value as a fatal error (in GCC it's just a warning).
2011-09-04 08:04:31 +03:00
Uoti Urpala 1916b95b8d cleanup: remove some unnecessary input.[ch] typedefs
Remove some unnecessary typedefs and remove pointless mp_ prefix from
some internal struct names.

Change the type of the "close_func" pointers from "void f(int fd)" to
"int f(int fd)" so that using standard close() there is valid.

Delete some useless assert() statements.

Move internal MP_MAX_KEY_DOWN define from input.h to input.c.
2011-07-16 21:32:37 +03:00
cboesch fe3c4810e1 cleanup: remove NULL checks before free() all over the code
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32624 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-14 13:11:20 +02:00
Uoti Urpala 00323c06e2 Delete things related to old translation system
Remove the help/ subdirectory, configure code to create toplevel
help_mp.h, and all the '#include "help_mp.h"' lines from .c files.
2010-03-10 03:47:14 +02:00
Uoti Urpala bc1d0ca37d Merge svn changes up to r30798 2010-03-10 02:35:02 +02:00
cehoyos 7529306884 Include lirc.h in lirc.c to add missing prototypes.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30767 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-02-27 20:32:55 +00:00
Uoti Urpala 0eb321bf2c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
Amar Takhar e306174952 Translation system changes part 2: replace macros by strings
Replace all MSGTR_ macros in the source by the corresponding English
string.
2009-07-07 01:38:20 +03:00
Amar Takhar b5972d6f14 Translation system changes part 1: wrap translated strings
Replace mp_msg() calls which have a translated string as the format
argument with mp_tmsg and add _() around all other translated strings.
2009-07-07 01:28:07 +03:00
diego 6e9cbdc104 whitespace cosmetics: Remove all trailing whitespace.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29305 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-05-13 02:58:57 +00:00
reimar 57ff94b5cd Move setting of O_NONBLOCK before lirc_readconfig, this avoids a memleak
due to not freeing the lirc config on error.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28390 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-01-30 15:41:45 +00:00
reimar 3de8ddabc7 Fix an MSGT_INPUT to MSGT_LIRC in lirc.c
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28389 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-01-30 15:38:54 +00:00
reimar 88aca1ef25 Do not use select n lirc code, instead set the fd non-blocking.
select can not work because lirc_nextcode buffers data internally,
causing events to be delayed until the next keypress in some cases.
Patch by Dennis Vshivkov [jaimor (at) orcon net nz]


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28380 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-01-27 19:06:50 +00:00
reimar 5fb47cba37 Fix typo: pool -> poll
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28356 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-01-25 18:46:24 +00:00
diego 64a2ccee54 Add standard GPL license header.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28146 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-12-13 18:28:00 +00:00
ptt ca72e69c11 litle bug, didn't compile :(
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20197 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-10-12 23:48:52 +00:00
diego fcd45c5111 slight overall verbosity reduction
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20191 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-10-12 22:24:19 +00:00
diego af06a4425b Move conditional compilation to the build system.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19807 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-09-12 08:42:01 +00:00
diego c67ccd1e8a Unify include paths, -I.. is in CFLAGS.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@16861 b3059339-0415-0410-9bf9-f77b7e298cf2
2005-10-25 21:23:45 +00:00
reimar 189e0d00a6 consume empty lirc events at once.
Patch by Lev A. Melnikovsky {leva at kapitza ras ru}.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@15826 b3059339-0415-0410-9bf9-f77b7e298cf2
2005-06-27 08:16:23 +00:00
arpi 288e2a0f4e rewrote the lirc code to remove the fork
patch by Albeu


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@7884 b3059339-0415-0410-9bf9-f77b7e298cf2
2002-10-23 22:23:12 +00:00
albeu 27382f151d A bug fix + moved error msg from verbose to error
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5197 b3059339-0415-0410-9bf9-f77b7e298cf2
2002-03-19 13:28:45 +00:00
albeu aab54639b4 Make old and new lirc support independant from each other
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@4824 b3059339-0415-0410-9bf9-f77b7e298cf2
2002-02-23 21:18:40 +00:00
albeu 87d8c59258 Remove some unuseful stuff and don't try to kill an unexisting
child process on uninit


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@4527 b3059339-0415-0410-9bf9-f77b7e298cf2
2002-02-04 15:03:18 +00:00
albeu ebdb9bffa3 Added lirc support in input
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@4433 b3059339-0415-0410-9bf9-f77b7e298cf2
2002-01-31 09:39:11 +00:00