summaryrefslogtreecommitdiffstats
path: root/mpvcore/command.c
Commit message (Collapse)AuthorAgeFilesLines
* quvi: restore playback position when switching formatswm42013-09-101-0/+7
| | | | This simply issues a seek after reloading.
* quvi: coerce libquvi 0.4 support into allowing format switchingwm42013-09-101-3/+9
| | | | | | | | | | | | | libquvi 0.4 doesn't allow us listing the formats supported by a streaming site without doing additional network accesses, so switching formats was not supported with it. (It's different with libquvi 0.9.) But the most important case is switching between SD and HD. Usually, --quvi-format=default will get SD, while --quvi-format=best gives HD. Use this, and pretend that an URL supported by libquvi 0.4 supports both of these. "cycle quvi-format" will switch between these. If the user specifies something else via --quvi-format, this is included in the list of switchable formats additionally to "default" and "best".
* command: make title property unavailable if there's no supportwm42013-09-101-3/+3
| | | | | Instead of returning 0 if the stream doesn't have title info, make the property unavailable.
* demux: retrieve per-chapter metadatawm42013-09-081-2/+15
| | | | | | | | | | Retrieve per-chapter metadata, but don't do much with it. We just make the metadata of the _current_ chapter available as chapter-metadata property. Returning the full chapter list with metadata would be no problem, except that the property interface isn't really good with structured data, so it's not available for now. Not sure if it's worth it, but it was requested via github issue #201.
* demux: refactor tag handlingwm42013-09-081-13/+23
| | | | | Make the code somewhat reuseable, instead of bound to a single demuxer instance. The plan is to add support for per-chapter tags later.
* mplayer: remove unused mp_add_subtitles() parameterwm42013-09-071-2/+2
|
* command: make options writeable in idle modewm42013-09-071-0/+8
| | | | | | | | | | | | Until now, options could be accessed as properties via "options/name", but the access was read-only. Change it so that write access is possible in --idle mode. (All options have to support setting options at that time, simply because of the way MPlayer designed per-file options. During playback, normal properties take care of changing things, including things backed by options.) This is work in progress. There are some issues: at least setting the "vf" and "af" options won't work for strange reasons.
* command: remove some unneeded codewm42013-09-071-6/+1
| | | | | | | chapter_display_name() always returns something. The "chapter < -1" check is not needed, because this is done at the start of the function.
* mplayer: allow resuming from playlistwm42013-09-041-2/+4
| | | | | | | | | | | | | | | | | | This includes the case of passing multiple files to command line (internally this is the same as loading a playlist). Resuming works by finding the first playlist entry that can be resumed. Alternative implementations would be possible, such as hashing the playlist contents. But this implementation is simpler, and doesn't have the disadvantage that changes to the playlist (like appending entries) will throw away the resume point. This makes loading large playlists a bit slower, because it has to look into ~/.mpv/watch_later/ for every entry. Loading a 15000 entries playlist now increases from 150ms to 400ms. Considering you rarely load playlists this big with mpv (because it's impractical considering the terminal and non-GUI nature of the player), this is probably ok.
* command: unescape URLs for ${filename} and ${media-title}wm42013-09-041-2/+7
| | | | | | | | | | | Undo URL percent encoding if the filename appears to be an URL. This will fix display of the actual filename in some cases. We don't put any effort into checking whether the URL is really percent encoded, because we don't really know how the protocol handler is going to interpret the URL. For stream_lavf, we probably can't know. Still, from the perspective of this commit, it seems to make sense to assume they are percent encoded.
* input: print more debug infos, raise loglevelwm42013-09-011-0/+3
|
* video: add unscaled mode with --video-unscaledwm42013-09-011-0/+1
|
* core: add a playlist demuxerwm42013-08-261-1/+1
| | | | | | | | | Modeled after the old playlist_parser.c, but actually new code, and it works a bit differently. Demuxers (and sometimes streams) are the component that should be used to open files and to determine the file format. This was already done for subtitles, but playlists still use a separate code path.
* video: handle video output levels with mp_image_paramswm42013-08-241-14/+8
| | | | | | | | | | | | Until now, video output levels (obscure feature, like using TV screens that require RGB output in limited range, similar to YUY) still required handling of VOCTRL_SET_YUV_COLORSPACE. Simplify this, and use the new mp_image_params code. This gets rid of some code. VOCTRL_SET_YUV_COLORSPACE is not needed at all anymore in VOs that use the reconfig callback. The result of VOCTRL_GET_YUV_COLORSPACE is now used only used for the colormatrix related properties (basically, for display on OSD). For other VOs, VOCTRL_SET_YUV_COLORSPACE will be sent only once after config instead of twice.
* command: simplify video brightness/gamma/etc. handling a bitwm42013-08-201-44/+17
| | | | | | | | | | | | | We don't need to store the offsets of the options corresponding to the properties, because the option-property bridge knows about this already. The check against 1000 was for the case if e.g. the --brightness option is not used. Always overwrite the option value instead, both when querying and setting the property. (This is needed to make the settings persistent even if vf_eq is used and the video chain is reinitialized.) This commit assumes that VFCTRL_SET_EQUALIZER is always paired with VFCTRL_GET_EQUALIZER (likewise for VOCTRL), which is the case.
* video: make it possible to scale/pan the video by arbitrary amountswm42013-08-191-4/+9
| | | | | | | | | | | Add --video-align-x/y, --video-pan-x/y, --video-scale options and properties. See the additions to the manpage for description and semantics. These transformations are intentionally done on top of panscan. Unlike the (now removed) --panscanrange option, this doesn't affect the default panscan behavior. (Although panscan itself becomes kind of useless if the new options are used.)
* command: more intuitive chapter seek behaviorPhilip Sequeira2013-08-171-1/+22
| | | | | | | | | If close to chapter start, skipping back goes to previous chapter (no change). If more than <threshold> seconds in, skipping back will now go to the beginning of the current chapter instead. The threshold is set by the new option --chapter-seek-threshold and defaults to 5 seconds. A negative value disables the new functionality.
* command: allow seek to "chapter -1"Philip Sequeira2013-08-171-1/+1
| | | | | This will seek to the start of the file regardless of whether the first real chapter starts there or not.
* input: add support for precise scroll axesAlexander Preisinger2013-08-071-3/+3
| | | | | | | | | | | | | | | Support horizontal and vertical axes of input devices. If the input device support precise scrolling with an input value then it should first be scaled to a standard multiplier, where 1.0 is the default. The multiplier will then applied to the following commands if possible: * MP_CMD_SEEK * MP_CMD_SPEED_MULT * MP_CMD_ADD All other commands will triggered on every axis event, without change the values specified in the config file.
* core: move contents to mpvcore (2/2)Stefano Pigozzi2013-08-061-4/+4
| | | | Followup commit. Fixes all the files references.
* core: move contents to mpvcore (1/2)Stefano Pigozzi2013-08-061-0/+2673
core is used in many unix systems for core dumps. For that reason some tools work under the assumption that the file is indeed a core dump (for example autoconf does this). This commit just renames the files. The following one will change all the includes to fix compilation. This is done this way because git has a easier time tracing file changes if there is a pure rename commit.