Commit Graph

202 Commits

Author SHA1 Message Date
wm4 0a54f5e741 commands: remove legacy slave mode get commands
These have been replaced by properties. Also remove some other slave-
mode specific get commands that can be replaced by property uses.

The get_metadata() function didn't actually contain anything useful,
and just replicated code from other parts of mplayer.
2012-10-12 10:10:28 +02:00
Rudolf Polzer 416c03417e vf_rectangle: remove as it is very dirty and we have a replacement now 2012-09-18 21:08:20 +02:00
wm4 0f155921b0 core: manage tracks in the frontend
Introduce a general track struct for every audio/video/subtitle track
known to the frontend. External files (subtitles) are now represented
as tracks too. This mainly serves to clean up the subtitle selection
code: now every subtitle is simply a track, instead of using a messy
numbering that goes by subtitle type (as it was stored in the
global_sub_pos field). The mplayer fontend will list external subtitle
files as additional tracks.

The timeline code now tries to match the exact demuxer IDs of all
tracks. This may cause problems when Matroska files with different
track numberings are used with EDL timelines. Change demux_lavf not
to set demuxer IDs, since most time they are not set.
2012-09-18 21:04:45 +02:00
wm4 1fb275b7de command: remove sub_remove command
This messes deeply with the subtitle bookkeeping data structures, and
would have to be reimplemented anyway.

It's not sure what this was even useful for. Possibly for slave mode.
2012-09-07 16:06:36 +02:00
wm4 330c90cbb8 command: remove sub_log command
Not very useful, and introduced special cases. Just get rid of it, can
be reintroduced if in a better way if someone misses this feature.
2012-09-07 16:06:36 +02:00
wm4 27a8610c56 input: add ability to disable all default bindings for an input section
Add a flags parameter to mp_input_set_section(). Add a flag that defines
whether bindings in the default section are used or not. This is useful
for special functionality, where the normal key bindings may have
unwanted effects.

For example, it shouldn't be possible to seek during encoding. However,
you want to be able to cancel the encoding process gracefully. For that
purpose, the "encode" section of input.conf could be made exclusive:

    mp_input_set_section(mpctx->input, "encode", MP_INPUT_NO_DEFAULT_SECTION);

And input.conf could contain this definition:

    RIGHT seek 10
    q {encode} quit

Then only the key "q" would be bound during encoding.
2012-08-24 14:30:25 +02:00
wm4 41fbcee1f5 Remove dvdnav support (DVD menus)
When the internal mplayer MPEG demuxer was removed (commit 1fde09db),
the default demuxer when using dvdnav was set to libavformat. Now it
turns out that this doesn't work with libavformat. It will terminate
playback right after the audio runs out (instead of looping it like the
video, or whatever it's supposed to do). I'm not sure what exactly the
problem is, but since 1. even mplayer-svn can't handle DVD menus
directly (missing highlights), 2. DVD menus are essentially worthless,
and 3. I don't directly watch DVDs, don't bother with it and remove it.

For basic playback, there's still libdvdread support.

Also, use pkg-config for libdvdread, and drop support for in-tree
libdvdread. Remove support for in-tree libdvdcss as well.
2012-08-16 17:17:49 +02:00
wm4 ebaaa41f2a Remove teletext support
Teletext requires special OSD support. Because I can't even test
teletext, I can't restore support for it. Since teletext can be
considered ancient and obscure, and since it doesn't make sense to keep
the remaining teletext code without being able to use it, I'm removing
it.
2012-08-03 00:12:46 +02:00
wm4 7059c15f4a mplayer: rip out --capture support
While this was an interesting idea, it wasn't actually useful.
Basically it dumped the raw data (as requested by the demuxer) into a
file. The result is only useful if the file format was raw or maybe
some MPEG packet stream, but not with most modern file formats.
2012-08-02 23:22:52 +02:00
wm4 c92538dfaa Remove dead code
This was done with the help of callcatcher [1]. Only functions which
are statically known to be unused are removed.

Some unused functions are not removed yet, because they might be needed
in the near future (such as open_output_stream for the encode branch).

There is one user visible change: the --subcc option did nothing, and is
removed with this commit.

[1] http://www.skynet.ie/~caolan/Packages/callcatcher.html
2012-08-01 17:07:35 +02:00
wm4 e9a18efa2b VO: add mechanisms to change VO commandline for VOs supporting it 2012-08-01 01:06:59 +02:00
wm4 89a17bcda6 mplayer: turn playtree into a list, and change per-file option handling
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.
2012-07-31 21:33:26 +02:00
wm4 42c3a30008 commands: add show_tracks_osd command to display audio and subtitle tracks on OSD
The command lists the audio and subtitle tracks in the current file on the
OSD. It also marks the currently active streams.
Video streams are not shown, as files with more than one video stream are
exceedingly rare.
2012-07-28 20:57:44 +02:00
wm4 af7a29424c commands: add show_chapters_osd command to display chapters on OSD
The command lists the chapters in the current file on the OSD. It also
marks the current chapter.

This is actually a cheap replacement for the chapter select libmenu
functionality.
2012-07-28 20:57:40 +02:00
wm4 1aa2e36122 Merge remote-tracking branch 'origin/master'
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
2012-04-01 22:52:33 +02:00
Uoti Urpala a0de4bc500 ao_pulse, core: make pulse thread wake up core for more data
For ao_pulse, the current latency is not a good indicator of how soon
the AO requires new data to avoid underflow. Add an internal pipe that
can be used to wake up the input loop from select(), and make the
pulseaudio main loop (which runs in a separate thread) use this
mechanism when pulse requests more data. The wakeup signal currently
contains no information about the reason for the wakup, but audio
buffers are always filled when the event loop wakes up.

Also, request a latency of 1 second from the Pulseaudio server. The
default is normally significantly higher. We don't need low latency,
while higher latency helps prevent underflows reduces need for
wakeups.
2012-03-26 03:55:31 +03:00
Uoti Urpala 215035b31a input.c: simplify command definitions
Change command definitions to allow writing the command definition
table in more readable format.
2012-03-25 22:30:38 +03:00
wm4 489f61aa4c commands: add pt_clear command to clear playlist
This deletes all playlist elements, except the currently active
playlist entry.

NOTE: this doesn't remove parent nodes in the case when we really have
a play tree (as opposed to a play list). Apparently this doesn't cause
any harm.
2012-02-10 19:14:19 +01:00
wm4 02fedc7bab input.c: simplify command definitions
Using type = -1 for terminating the command argument list was an
unnecessary complication. Change it to 0 to make use of default
initialization. Remove the explicit termination from the command
definitions. Now the argument list is automatically terminated by C
default initialization rules.

Also remove other redundant {0} initializers.

When an argument's default value is actually initialized to something other
than 0, make the field being initialized explicit (e.g. {1} becomes
{.i = 1}).

Try to make use of whitespace more consistent.
2012-01-26 03:06:59 +01:00
wm4 98203198b6 input: fix crashes with libmenu
Note: now that libmenu has been removed, the related code in input.c has
been removed. If libmenu is ever added back, a queue_remove() function
that can remove any item in the input queue will be required.

libmenu triggered some special case that caused crashes by double frees.
In particular the queue_pop function is used, expecting to remove an element
that is not necessarily always the one that queue_pop removes. Fix by
adding a queue_remove functions. Rewrite the other queue functions, since
these are probably buggy as well. queue_pop didn't even attempt to
maintain the doubly linked list.
2012-01-18 02:52:34 +01:00
Uoti Urpala 8b5efd6455 libmenu: remove OSD menu functionality (--menu)
Something like the OSD menu functionality could be useful. However the
current implementation has several problems and would require a
relatively large amount of work to get into good shape. As far as I
know there are few users of the existing functionality. Nobody is
working on the existing code and keeping it compiling at all while
changing other code would require extra work. So delete the menu code
and some related code elsewhere that's used by nothing else.
2011-10-25 07:05:47 +03:00
Uoti Urpala 82b8f89bae input: rework event reading and command queuing
Rework much of the logic related to reading from event sources and
queuing commands. The two biggest architecture changes are:
- The code buffering keycodes in mp_fifo.c is gone. Instead key input
  is now immediately fed to input.c and interpreted as commands, and
  then the commands are buffered instead.
- mp_input_get_cmd() now always tries to read every available event
  from every event source and convert them to (buffered) commands.
  Before it would only process new events until one new command became
  available.

Some relevant behavior changes:
- Before commands could be lost when stream code called
  mp_input_check_interrupt() which read commands (to see if they were
  of types that triggered aborts during slow IO tasks) and then threw
  them away. This was especially an issue if cache was enabled and slow
  to read. Fixed - now it's possible to check whether there are queued
  commands which will abort playback of the current file without
  throwing other commands away.
- mp_input_check_interrupt() now prints a message if it returns
  true. This is especially useful because the failures caused by
  aborted stream reads can trigger error messages from other code that
  was doing the read; the new message makes it more obvious what the
  cause of the subsequent error messages is.
- It's now possible to again avoid making stdin non-blocking (which
  caused some issues) without reintroducing extra latency. The change
  will be done in a subsequent commit.
- Event sources that do not support select() should now have somewhat
  lower latency in certain situations as they will be checked both
  before and after select()/sleep in input reading; before the sleep
  always happened first even if such sources already had queued
  input. Before the key fifo was also handled in this manner (first
  key triggered select, but if multiple were read then rest could be
  delayed; however in most cases this didn't add latency in practice
  as after central code started doing command handling it queried for
  further commands with a max sleep time of 0).
- Key fifo limiting is more accurate now: it now counts actual
  commands intead of keycodes, and all queued keys are read
  immediately from input devices so they can be counted correctly.
- Since keypresses are now interpreted immediately, commands which
  change keybindings will no longer affect following keypresses that
  have already been read before the command is executed. This should
  not be an issue in practice with current keybinding behavior.
2011-07-17 07:36:09 +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
Uoti Urpala db4dee4584 cosmetics: reformat input.h, fix comments 2011-07-16 17:47:02 +03:00
Uoti Urpala 5c4b059f16 input: rewrite -key-fifo-size limiting logic
Instead of strictly limiting the number of total entries in the
internal fifo, make the overall buffer bigger and try to limit entries
based on how many bound commands they're expected to generate. Now
doubleclick and button down events aren't counted for that limit.
Normally the sequence down-doubleclick-up generates at most one
command, so this better matches the quantity we actually want to
limit. Also add a mechanism to clear the button combination state kept
by input.c when the fifo is full; this avoids "stuck button" problems
due to button release events being dropped.

The key combination state clearing is partially based on MPlayer 1
changes by Reimar Döffinger (though overall the effects of this commit
are quite different). It still doesn't make "stuck button" problems
completely impossible; at least if the VO gets closed while a button
was down then nothing will send a button up event or reset state.
2011-05-02 00:44:21 +03:00
Uoti Urpala 23cb829072 input: move all key code lists to input/keycodes.h
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.
2011-05-02 00:43:31 +03:00
Uoti Urpala 3cb3bbbddc Add a simple capture feature (-capture)
If a specified key is pressed during playback, the current stream is
captured to a file, similar to what -dumpstream achieves.

original patch by Pásztor Szilárd, don tricon hu

Taken from the following svn commits, but with several fixes and
modifications (one obvious user-visible difference is that the default
key binding is 'C', not 'c'):

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32524 b3059339-0415-0410-9bf9-f77b7e298cf2

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32529 b3059339-0415-0410-9bf9-f77b7e298cf2

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32530 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-02 07:48:31 +02:00
reimar dbd5feedd5 new slave command: af_cmdline, for changing audio filter options
Add experimental af_cmdline slave command to allow changing filter
options at runtime.

Patch by Adrian Stutz [adrian sttz ch]

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32505 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-02 04:18:37 +02:00
Uoti Urpala 7795726e0f Merge svn changes up to r31033 2010-04-26 18:25:34 +03:00
Uoti Urpala 4cb23ad350 input: remove unused "paused" arguments from some functions 2010-04-25 22:48:18 +03:00
cehoyos 40ac0d3109 Add slave commands for loading and unloading audio filters at runtime.
Patch by Jehan Hysseo, hysseo zemarmot net


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31030 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-04-11 18:59:19 +00:00
cehoyos 543504363f Add osd_show_progression: Show progress bar and elapsed/total time.
Patch by Hugo Chargois, hugo D chargois A free fr


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31028 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-04-09 19:20:52 +00:00
diego 89dfec20a2 Declare mp_input_register_options() in input/input.h.
This also avoids a forward declaration in mplayer.c.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30572 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-02-14 12:39:58 +00:00
Uoti Urpala a0854c1978 commands: Add set_property_osd and step_property_osd 2009-09-19 05:30:20 +03:00
Anton Khirnov 87366694d8 Remove the internal GUI
The GUI is badly designed and too closely coupled to the internal
details of other code. The GUI code is in bad shape and unmaintained
for years. There is no indication that anyone would maintain it in the
future either. Even if someone did volunteer to implement a better
integrated GUI having the current code in the tree probably wouldn't
help much. So get rid of it.
2009-07-07 21:49:42 +03:00
Uoti Urpala 0eb321bf2c Remove trailing whitespace from most files 2009-07-07 02:34:35 +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
Uoti Urpala a3ab9e8e46 Merge svn changes up to r28149 2008-12-14 17:28:16 +02: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
Uoti Urpala cb3dc68691 Merge svn changes up to r28103 2008-12-06 02:16:51 +02:00
reimar 45904b63ef Re-add "extern"s incorrectly removed in r28085
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28088 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-12-04 15:07:15 +00:00
Uoti Urpala 8c144171bb Merge svn changes up to r28087
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
2008-12-04 01:55:52 +02:00
diego 0864f92e7a Get rid of pointless 'extern' keywords.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28085 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-12-03 23:01:03 +00:00
Uoti Urpala cfe2839386 Move some declarations from mplayer.c to proper headers
Declare mp_input_register_options in input.h and
xscreensaver_heartbeat in x11_common.h.
2008-08-12 14:57:18 +03:00
Uoti Urpala de560e8167 Merge svn changes up to r27123
Conflicts:

	libmenu/menu_filesel.c
	libmenu/menu_pt.c
2008-06-23 03:58:44 +03:00
ben 59346bc23a Change DVDNAV command key names.
Parameters now use a string much more intuitive than previous int value.



git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27100 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-06-19 18:51:42 +00:00
ben dc8383d0a9 Group all input command defines in one big enum
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27098 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-06-18 17:18:49 +00:00
Uoti Urpala d5c868325c Merge svn changes up to r26979
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
2008-06-04 08:10:48 +03:00
ben bc212e3500 Add a slave command to stop stream playback.
Mostly useful when used with -idle mode.
Patch by Mathieu Schroeter ( mathieu dot schroeter at gamesover dot ch )



git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26909 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-05-27 18:39:57 +00:00
Uoti Urpala 8de8be1536 Move input options to option struct 2008-04-30 19:34:48 +03:00
Uoti Urpala a5fdd8f6f9 input: Move command filedescriptor list to context struct 2008-04-30 14:46:21 +03:00
Uoti Urpala 423b95bf5c input: Move cmd_queue to context struct
Menu instances now also need a input context pointer to queue commands.
2008-04-30 14:46:21 +03:00
Uoti Urpala bfcb3a7a81 input: Move key filedescriptor list to context struct
The context variable is now passed to VOs too as it's now needed to
add a callback on the X filedescriptor.
2008-04-30 14:46:17 +03:00
Uoti Urpala d0e8292629 input.[ch]: Move some type definitions from .h to .c
These aren't used outside input.c.
2008-04-30 13:24:57 +03:00
Uoti Urpala 7b085d4514 input: Move command bind variables to context struct 2008-04-30 13:24:56 +03:00
Uoti Urpala 9e9932d4d7 Create a context for input.c state
Start moving static variables to a context struct. Only autorepeat
state is moved to the struct in this commit.

mp_input_check_interrupt now requires the context variable. Change
stream functions to pass it. It's still stored in a static variable in
stream/.
2008-04-30 13:24:54 +03:00
Uoti Urpala 986e519fc9 input: Remove separate mp_input_add_event_fd
Use the same mp_input_add_key_fd for all uses and add a context
argument to its callback that was before only in the event fd
callbacks. Instead of checking in input.c whether keys were inserted
to the keypress FIFO during the callback do the check in the callback
before returning and set return value accordingly.
2008-04-29 12:55:23 +03:00
Uoti Urpala e5e8effca8 Add a context argument to mp_input_add_event_fd callback 2008-04-23 13:41:04 +03:00
diego 8efb2fa21c Add MPLAYER_ prefix to multiple inclusion guards.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26061 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-02-22 09:09:46 +00:00
ben e28bd7c6de Add new command to switch between dvdnav titles
Based on parts of dvdnav monster patches from Otvos Attila



git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25845 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-01-24 19:14:05 +00:00
eugeni f817a5dc52 Add ass_use_margins command and property to shift subtitles to margins and back
on the fly.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25842 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-01-23 21:18:32 +00:00
reimar 876b028289 Do not use exit_player in the signal handler, this code just can not
be called from a signal handler.
Instead only make the input system generate quit commands for the first
CTRL+C and otherwise do getch2_disable and exit.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25651 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-01-08 21:40:44 +00:00
nicodvb d18dab693a properties to change angle; patch by oattila chello hu
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25604 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-01-05 14:31:03 +00:00
diego 2b6af2000b Add multiple inclusion guards to all header files that lack them.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25581 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-01-01 21:35:58 +00:00
ulion b6870cc5ba From now on, libmenu does not steal all input keys from input modules.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25530 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-12-26 13:13:48 +00:00
ulion 38473dd468 Add new function for parsing and queueing multi-commands separated by \n or \r.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25347 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-12-11 08:03:47 +00:00
ulion a986e2a1f6 Remove hardcoded key->cmd bindings in libmenu, support custom key bindings
by menu config file.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25291 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-12-04 10:42:59 +00:00
ulion 595de9b1fc Support select subtitle by source, add 4 properties:
1. sub_source for current sub source (sub file, vobsub, or from demuxer).
2. sub_file for all subtitles from files.
3. sub_vobsub for all subtitles from vobsub.
4. sub_demux for all subtitles from demuxer.
Now mplayer can supply a stable and clear interface to external programs
using mplayer in slave mode to select a subtitle by its source and
its unique id for that source printed by mplayer using -identify parameter. 


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25157 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-11-25 04:09:04 +00:00
uau 95a174a65a Add separate event input type for terminal+vo
Add an input/input.c fd type whose read function takes no arguments and
returns no value. If such a function reads key or command events it'll
add them to the queues itself. Use this type for terminal input which
was special-cased before. The event function for X11-based VOs will use
the same type later.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24152 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-08-25 04:28:14 +00:00
voroshil f1fbca4bdd Automatic TV channels scanning ability for MPlayer.
Code is based on patch from Otvos Attila oattila at chello dot hu


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24125 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-08-23 16:09:30 +00:00
voroshil 4f0d56b9ae Teletext support.
Part 2/5: options/slaves/configure/definitions/etc


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23920 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-07-29 17:55:28 +00:00
albeu 63865de207 Add a loop command and property.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23747 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-07-09 14:52:46 +00:00
albeu 1544e64717 Add the sub_scale property and command.
Patch from Anatoli Marinov (anatoli [dot] marinov [at] gmail [dot] com).


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23745 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-07-09 11:19:21 +00:00
voroshil 2f76cfc28a Revert r23530.
r23530 breaks policy: notification was not sent to mailing list,
agreements of other devs were not received.
Code also should be reviewed/cleaned up/fixed.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23593 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-06-21 08:18:51 +00:00
zuxy be09bd1c04 The audio balance feature implemented with af_pan.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23588 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-06-20 02:26:20 +00:00
voroshil 83a2c50ef9 Teletext support for tv:// (v4l and v4l2 only)
modified patch from Otvos Attila oattila at chello dot hu

Module uses zvbi library for all low-level  VBI operations (like I/O with vbi
device, converting vbi pages into usefull vbi_page stuctures, rendering them
into RGB32 images).

All teletext related stuff (except properties, slave commands and rendering
osd in text mode or RGB32 rendered teletext pages in spu mode) is implemented
in tvi_vbi.c

New properties:
teletext_page - switching between pages
teletext_mode - switch between on/off/opaque/transparent modes
teletext_format - (currently read-only) allows to get format info
(black/white,gray,text)
teletext_half_page - trivial zooming (displaying top/bottom half of teletext
page)

New slave commands:
teletext_add_dec - user interface for jumping to any page by editing page number
interactively
teletext_go_link - goes though links, specified on current page



git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23530 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-06-10 00:06:12 +00:00
voroshil 252f69abf7 implement "bind sections"
allows to bind one input key to several slave commands (independently for each section)
as shown below:
RIGHT seek +10
RIGHT {tv} tv_step_channel 1
RIGHT {dvdnav} dvdnav 4
Currenlty only "tv" section added.

patch by Otvos Attila oattila at chello dot hu



git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23497 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-06-07 18:06:53 +00:00
voroshil 94674443a3 New slave command: tv_step_freq <offset in MHz>
Command sets the TV frequency relative to current value


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22685 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-03-17 11:51:17 +00:00
uau 7ac889b796 Remove remnants of the nonfunctional "grab_frames" command.
The command has been a no-op for years.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22273 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-02-19 06:20:47 +00:00
voroshil f41cff8360 new slave command: radio_step_freq
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21058 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-11-19 16:15:05 +00:00
reimar 7a71da01d6 Introduce step_property command.
Patch by Carl Eugen Hoyos [cehoyos <at> ag or at] with modifications by me.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20931 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-11-14 19:52:21 +00:00
nicodvb b578d8ccbf introduced new MP_CMD_DVDNAV_MOUSECLICK command (bound to mouse0);
it's used to activate the button corresponding to the last mouse position.
This is a workaround against possibly buggy implementation of 
upper_lower/upper_button_select() and friends; will be removed when
possible


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19918 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-09-19 23:50:21 +00:00
nicodvb d7f2d69dd0 removed old dvdnav_event definitions
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19917 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-09-19 22:59:05 +00:00
nicodvb 2003857aa2 report to mplayer with a slave command the coordinates of the pointer reported by x11; rescale coordinates to [0,1]x[0,1] range - patch by Jonas Jermann and me
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19856 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-09-16 15:13:41 +00:00
nicodvb caa3c79989 permit to select previous dvdnav menu, in the order chapter->title->root
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19783 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-09-10 10:25:48 +00:00
reimar acf654cf8f Radio support, patch by Vladimir Voroshilov (voroshil gmail com)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19574 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-08-28 17:05:18 +00:00
ben dd0c5220f6 extended slave mode with metadata retrieval commands
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19539 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-08-26 09:44:20 +00:00
ben 7764a187e0 added new filter option to menu file browser to only display some files according to extension
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19497 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-08-22 20:55:49 +00:00
eugeni 1de0c3327d Add matroska chapter seeking capability.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19348 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-08-06 18:55:34 +00:00
uau 8f30963c37 Make EDL compilation unconditional
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18313 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-04-27 12:40:29 +00:00
albeu 116ca0c768 Add a new command: osd_show_property_text that show an expanded property
string on the OSD. Based on a patch 'by someone named "veal" on irc'
that showed the filename.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18223 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-04-23 14:31:54 +00:00
albeu 7ccf483026 Add the new property API and implement a couple properties.
Move the volume and mute command to the command to property
bridge.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17912 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-03-22 00:19:02 +00:00
albeu f440a3c1bf Enable gui key bindings only when running the gui. Fix enter and esc
not working with a GUI enabled build running w/o GUI.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17891 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-03-18 18:13:22 +00:00
joey 8901ee0b0a add a switch, slave command, and vo control to toggle borderless window.
includes documentation.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@16969 b3059339-0415-0410-9bf9-f77b7e298cf2
2005-11-10 22:25:54 +00:00
nplourde b872f146e1 add key_down_eventto slave mode, used to inject key down event with mplayer_put_key
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@16324 b3059339-0415-0410-9bf9-f77b7e298cf2
2005-08-31 02:15:03 +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
reimar 2f376d1b39 Add sub_load and sub_remove slave commands.
Patch by kiriuja [mplayer-patches at en-directo dot net]


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@15707 b3059339-0415-0410-9bf9-f77b7e298cf2
2005-06-09 20:13:53 +00:00
reimar 2b1bb59996 new get_time_pos slave mode commando
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@15505 b3059339-0415-0410-9bf9-f77b7e298cf2
2005-05-18 11:38:06 +00:00
gpoirier 9e909f0dde Added support of audio stream switching in the MPEG demuxer using the #-key
Patch by Michael Behrisch < behrisch $ informatik * hu-berlin * de >
commited with the kind blessing of D. Richard Felker III


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@15047 b3059339-0415-0410-9bf9-f77b7e298cf2
2005-04-03 14:08:28 +00:00
henry 65ad39a096 command to log current subtitle to file
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@14685 b3059339-0415-0410-9bf9-f77b7e298cf2
2005-02-12 14:45:54 +00:00