summaryrefslogtreecommitdiffstats
path: root/mpcommon.h
Commit message (Collapse)AuthorAgeFilesLines
* mplayer: turn playtree into a list, and change per-file option handlingwm42012-07-311-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* windows: fix format string attributes on MinGWwm42012-03-011-0/+20
| | | | | | | | | | MinGW maps the "printf" format string archetype to the non-standard MSVCRT functions, even if __USE_MINGW_ANSI_STDIO is defined and set to 1. We need to use "gnu_printf" to use the format strings as provided by vsnprintf and similar functions to get correct warnings. Since "gnu_printf" isn't necessarily available on other GCC compatible compilers (such as clang), do this only on MinGW.
* subs: move vobsub loading logic down to find_subfiles.cUoti Urpala2011-04-201-0/+5
| | | | | | | Analogously to the previous commit, move path handling logic for loading external vobsub files from mplayer.c to find_subfiles.c. Based on a commit from Clément Bœsch but fixed and simplified.
* tl_matroska.c: move the find_files() function hereUoti Urpala2011-03-031-0/+2
| | | | | | 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().
* cleanup: define ROUND() macro in mpcommon.hcboesch2011-01-311-0/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32751 b3059339-0415-0410-9bf9-f77b7e298cf2
* cleanup: move MP_NOPTS_VALUE definition to mpcommon.hUoti Urpala2011-01-151-0/+3
|
* subtitles: move global ass_track to struct osd_stateUoti Urpala2011-01-151-2/+0
|
* core: move most mpcommon.c contents to mplayer.cUoti Urpala2011-01-151-23/+0
| | | | | | | | | | | | | | | | The contents of mpcommon.c were quite arbitrary; the most common reason to place some functions in this file had been "MEncoder happens to need similar code as MPlayer and we want to share some parts, but we have no clue whatsoever how to organize things in a sensible way, so we'll just dump those parts we want to share in mpcommon.c". As a result of containing an essentially random subset of top-level player functionality the mpcommon.h header required access to central structs and was unsuitable for inclusion in lower-level code, but was nonetheless included there for the mplayer_version symbol. Move almost all contents from mpcommon.c to mplayer.c. mplayer.c is already big and should perhaps be split further, but keeping a few random functions in mpcommon.c would not be an improvement.
* core: move global "subdata" and "vo_sub_last" to mpctxUoti Urpala2011-01-111-1/+0
|
* subtitles: remove sub_last_pts hackUoti Urpala2011-01-111-1/+0
| | | | | This code was probably added because of bad pts handling in old timing code, and should not be needed any more.
* options: move -noconfig to option struct, simplifyUoti Urpala2011-01-111-3/+0
|
* mpcommon.h: reduce header dependencies on other headersUoti Urpala2010-11-021-9/+16
| | | | | Use "struct foo *ptr" without full definition of the struct, instead of using typedef names and including other headers for them.
* cosmetics: mpcommon.h: Group all extern variable declarations togetherdiego2010-11-021-3/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32113 b3059339-0415-0410-9bf9-f77b7e298cf2
* Factorize MPlayer/MEncoder version string handling.diego2010-11-021-0/+4
| | | | | | | The string now resides in a central object file instead of being duplicated in every file that requires a version string. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31577 b3059339-0415-0410-9bf9-f77b7e298cf2
* libass: match font attachments based on extensionGrigori Goronzy2010-06-011-0/+1
| | | | | | | Instead of only relying on the MIME type, use the file extension as a fallback for deciding which attachments are fonts and should be fed to libass. This also refactors the check into a separate function in mpcommon.
* Merge svn changes up to r30967Uoti Urpala2010-04-261-4/+0
|\
| * Get rid of pointless def_path variable; use codec_path directly instead.diego2010-03-231-2/+0
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30949 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Make all instances of codec_patch unconditional, otherwiseattila2010-03-211-2/+0
| | | | | | | | | | | | | | | | | | | | | | compilation will break on systems that do not have win32 dlls enabled. Fixes compilation bug introduced by r30942 10l to the anonymous guy who explains the importance of commit messages and would like to have romance novels in these very messages. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30945 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r30917Uoti Urpala2010-04-261-0/+4
|\|
| * Follow a more proper way to support -codecpath.komh2010-03-171-0/+4
| | | | | | | | | | | | | | | | | | | | 1. Include loader/drv.h for SetCodecPath() instead of a declaration of it. 2. Move codec_path from get_path.h to mpcommon.h and mpcommon.c. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30914 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r30475Uoti Urpala2010-03-091-0/+18
|\|
| * Add license header to all top-level files missing them.diego2010-01-301-0/+18
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30471 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Some ugly hacks to make compiling against a newer external version of libass ↵reimar2009-12-241-1/+2
| | | | | | | | | | | | work. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30107 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r29752Uoti Urpala2009-10-061-2/+5
|\| | | | | | | | | | | | | | | | | As part of merging subtitle-in-terminal changes make update_subtitles() only clear existing subtitles if called with the reset argument, and not try to set new ones. Later calls should set the needed new subtitles, and this change avoids some problems with trying to set subtitles when mp_property_sub() in command.c gets called from initialization code before full initialization.
| * Add support for displaying subtitles on the command-line when playingreimar2009-09-231-0/+1
| | | | | | | | | | | | | | audio-only files. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29712 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Make function argument name in header match name in .c file.reimar2009-09-231-1/+1
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29711 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Make update_subtitles work without sh_video for text subtitles.reimar2009-09-231-1/+1
| | | | | | | | | | | | | | | | | | This fixes a crash with e.g. auto-enabled subtitles and -novideo due to command.c calling update_subtitles even without video and is a step toward subtitle support for audio-only files. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29710 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Change libass type names to match upstream renamesUoti Urpala2009-07-291-1/+1
| |
* | Initial ordered chapters supportUoti Urpala2009-04-021-1/+2
|/ | | | | | | | | | | 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.
* Factorize print_version().diego2009-01-251-0/+2
| | | | | | | Print CPU information in verbose mode instead of by default. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28360 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add options to disable some or all config files.albeu2008-04-141-0/+3
| | | | | | | Patch by Andrew Savchenko (Bircoph -at- list -dot- ru). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26448 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add necessary #includes to pass 'make checkheaders'.diego2008-03-041-0/+4
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26163 b3059339-0415-0410-9bf9-f77b7e298cf2
* Select audio stream in mplayer and mencoder, overriding demuxer decision.eugeni2008-02-291-0/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26122 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add MPLAYER_ prefix to multiple inclusion guards.diego2008-02-221-3/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26061 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix compilation with ASS disabledreimar2008-02-201-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26040 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
* Add multiple inclusion guards to all header files that lack them.diego2008-01-011-0/+5
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25581 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix warning:diego2007-08-251-0/+1
| | | | | | | | mplayer.c: In function 'generate_video_frame': mplayer.c:1631: warning: implicit declaration of function 'update_teletext' git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24185 b3059339-0415-0410-9bf9-f77b7e298cf2
* Fix warnings:diego2007-08-251-1/+0
| | | | | | | | | | | | | | | In file included from mplayer.c:380: mpcommon.h:5: warning: redundant redeclaration of 'subdata' libvo/sub.h:63: warning: previous declaration of 'subdata' was here In file included from command.c:26: mpcommon.h:5: warning: redundant redeclaration of 'subdata' libvo/sub.h:63: warning: previous declaration of 'subdata' was here In file included from mencoder.c:239: mpcommon.h:5: warning: redundant redeclaration of 'subdata' libvo/sub.h:63: warning: previous declaration of 'subdata' was here git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24177 b3059339-0415-0410-9bf9-f77b7e298cf2
* Move some subtitle handling from mplayer.c to mpcommon.c and share it with ↵reimar2007-02-171-0/+7
mencoder.c git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22251 b3059339-0415-0410-9bf9-f77b7e298cf2