summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* demux_lavf: do a better job at guessing the vobsub .sub filenamewm42015-05-281-0/+40
| | | | | | | | | | | Vobsubs come as .idx/.sub pair of files. The .idx file is the one that should be opened, but the name of the .sub file is unknown. We can now make our own guess what the name of that file is. In particular, improve support with URLs (as these can have the file extension in the middle of the filename string if there are HTTP parameters). Note that this works only with newer ffmpeg versions, because the recently added sub_name demuxer option is used for this.
* vo_drm: Expose mode ID option to usersMarcin Kurczewski2015-05-282-10/+23
|
* vo_drm: Fix resolution not restored after exitingMarcin Kurczewski2015-05-281-1/+1
|
* vo_drm: Fix stride problem for certain devicesMarcin Kurczewski2015-05-281-1/+1
|
* command: remove deprecated get_property commandwm42015-05-275-37/+2
| | | | | | This command has been deprecated in the 0.8.x and 0.9.x releases - get rid of it. Its only point ever was MPlayer compatibility, which broke years ago anyway.
* options: remove --slave-brokenwm42015-05-276-32/+4
| | | | It has been deprecated for ages.
* player: set cocoa input context at an earlier pointwm42015-05-271-4/+4
| | | | | There is not much of a reason to do this later. (Since some time ago, the input_ctx is created right at the start, so this can be done now.)
* player: load scripts at an earlier pointwm42015-05-271-4/+4
| | | | This is about as early as possible.
* vo_opengl: rename use_full_range to use_normalized_rangewm42015-05-271-8/+8
| | | | | As suggested by haasn. The term "full range" makes it sound like it has to do with TV vs. PC range, which is not the case at all.
* DOCS: fix wrong libmpv's cocoa example commentStefano Pigozzi2015-05-271-4/+2
| | | | | libmpv can be embedded in a cocoa view (without the mpv window). This has been the case for serveral months, and the comment is just wrong now.
* vo_opengl: fix source-shader + XYZ inputNiklas Haas2015-05-271-2/+5
|
* DOCS: interface-changes: mention recent vo_opengl additionswm42015-05-271-0/+2
|
* vo_opengl: CMS no longer implies linear scalingNiklas Haas2015-05-272-14/+7
| | | | | | | | | | | They're completely orthogonal concepts, merged in the past due to convenience and ease of implementing it in the old #ifdef hell renderer. Especially after the CMS stuff was generalized by 634b4a, this was a trivial change to implement and also means color management will be much higher quality when enabled with vo=opengl (which had quantization issues in the past due to the 8 bit FBO format and upscaling), since it can be done in a single pass now.
* vo_opengl: icc-profile overrides icc-profile-autoNiklas Haas2015-05-272-3/+4
| | | | Signed-off-by: wm4 <wm4@nowhere>
* vo_opengl: add support for custom shadersNiklas Haas2015-05-2710-55/+350
|
* osx: synchronize access to the input_ctxwm42015-05-261-18/+30
| | | | | | | | | | While all functions of input_ctx are inherently thread-safe, access to the _inputContext field itself is not. It could be unset any time by cocoa_set_input_context(). So even trivial input_ctx calls must be under a lock, so that the input_ctx can not be destroyed while the function call is "starting". (Even a function call in progress wouldn't be fine, because mp_input_uninit() requires the caller to "own" the object, i.e. no other threads can access it at this point.)
* osx: never expose input_ctx from EventsResponderwm42015-05-263-20/+33
| | | | Keep it internal, so we can synchronize access to it properly.
* input: remove some unneeded thingswm42015-05-262-34/+5
| | | | | Wakeup FDs are not needed anymore (this code exists only for libwaio usage by now), and 2 other functions can be made private.
* command: better choice when to allow playback-related commandswm42015-05-261-16/+16
| | | | | | | | For certain reasons, we allow adding external tracks even before the main file is loaded. This somewhat breaks in old assumption, which uses mpctx->num_sources to determine whether a command can be applied in the current state. Use the newer playback_initialized instead, which is a much better choice for this purpose.
* command: fix track property when no file is loadedwm42015-05-261-2/+8
| | | | | | | | | | | The previous commit removed this. Although mp_switch_track() can now be called in all situations, we still don't want it to be called here. Setting a track property while no file is loaded would simply deselect the track instead of setting the underlying option to the requested value. Likewise, if the "cycle" command (M_PROPERTY_SWITCH) is used, don't just deselect the track.
* player: fix crashes when adding external tracks before loading main filewm42015-05-264-40/+30
| | | | | | | | | | | | | | | | Adding an external audio track before loading the main file didn't work right. For one, mp_switch_track() assumes it is called after the main file is loaded. (The difference is that decoders are only initialized once the main file is loaded, and we avoid doing this before that for whatever reason.) To avoid further messiness, just allow mp_switch_track() to be called at any time. Also make it do what mp_mark_user_track_selection() did, since the latter requires current_track to be set. (One could probably simply allow current_track to be set at this point, but it'd interfere with default track selection anyway and thus would be pointless.) Fixes #1984.
* demux: don't get stuck on some cases of timestamp resetswm42015-05-261-1/+2
| | | | | In this case, streaming ogg via mpd over icecast made it buffer infinitely on new tracks.
* ao_alsa: hack back mono outputwm42015-05-251-1/+6
| | | | | The ALSA API is inconsistent and doesn't report support. Just requesting 1 channel actually works. Whatever.
* TOOLS/lua/status-bar: update use of a deprecated propertywm42015-05-251-1/+3
| | | | | Also mention that this code does not reflect the status line of current mpv.
* input: allow - as separator between commands, instead of _wm42015-05-256-119/+127
| | | | | | | | | | Wnile it seems quite logical to me that commands use _ as word separator, while properties use -, I can't really explain the difference, and it tends to confuse users as well. So always prefer - as separator for everything. Using _ still works, and will probably forever. Not doing so would probably create too much chaos and confusion.
* command: change the hwdec propertieswm42015-05-253-49/+71
| | | | | | Another very minor step towards property/option unification. Not bothering with interface compatibility here.
* vd_lavc: report actually used hwdec APIwm42015-05-252-4/+1
| | | | | Instead of the requested one, which can be just "auto", and which is rather useless.
* vf_dlopen: declare as deprecatedwm42015-05-252-0/+6
| | | | | Mostly to see whether someone uses it, and if a better solution can be worked out. (It's simple enough to be supported forever.)
* cocoa: don't load hardcoded icon if running from bundleStefano Pigozzi2015-05-251-0/+3
| | | Makes ricers happy.
* demux_edl: fix includeswm42015-05-241-2/+2
| | | | It doesn't need access to the playback core state anymore.
* video: do not use MP_NOPTS_VALUE for A/V differencewm42015-05-243-7/+3
| | | | | | There's no need for this, it just creates more corner cases. Also always reset it on seeks etc..
* player: add function to compute past frame durationswm42015-05-243-17/+28
| | | | | And use it for the estimated-vf-fps property (it should be doing the same as before).
* vo_null: add framerate emulationwm42015-05-242-4/+40
|
* manpage: --media-title -> --force-media-titlePhilip Sequeira2015-05-241-1/+1
| | | Missed in 450af053.
* DOCS/client_api_examples/cocoa-openglcb: do initial flush correctly.torque2015-05-231-11/+5
|
* command: add protocol-list propertywm42015-05-235-6/+45
| | | | Fixes #1972.
* ytdl: do not use deprecated optionwm42015-05-231-1/+1
| | | | This was missed in commit 450af053.
* vo_opengl: switch to new OpenGL backend API for icc-profile-autoNiklas Haas2015-05-221-1/+1
| | | | The current code just segfaults.
* command: allow changing track properties while no file is loadedwm42015-05-221-16/+20
| | | | | | | | | | Now it simply changes the options, i.e. what will be requested, instead of returning M_PROPERTY_UNAVAILABLE. This is another minor step towards unifying options and properties. Still a bit weird: it will always return "no" if no file is loaded, and disregards the option value.
* player: use an array for stream ID options and suchwm42015-05-226-67/+52
| | | | This makes the code slightly more generic.
* command: deprecate audio-sampleratewm42015-05-223-50/+4
| | | | | | | Also replace their implementation with the recently introduced properties. One significant difference is that audio-channels using OSD formatting does not print the channel layout. The user can just use the replacement property instead.
* command: add audio-params and audio-out-params propertieswm42015-05-223-1/+77
|
* command: remove old property deprecation warning mechanismwm42015-05-221-48/+1
| | | | | | | We don't need two. This mechanism was basically for MPlayer, and it has expired its usefulness by now.
* command: rename audio-format propertywm42015-05-223-7/+10
| | | | Clashes with the option.
* options: rename --media-title optionwm42015-05-223-2/+4
| | | | Conflicts with the property.
* command: deprecate the "length" propertywm42015-05-224-11/+15
| | | | It collides with the --length option.
* command: add a new property deprecation mechanismwm42015-05-221-0/+29
| | | | Looks like this will be needed a lot...
* DOCS: add a changelog for option/command/property changeswm42015-05-222-3/+47
| | | | | All these make up both user interface and API. It's a good idea to actually keep track of changes to it.
* audio: make softvol scale cubicwm42015-05-223-10/+13
| | | | | | | | This brings the volume control closer to what is percepted as linear volume change. Adjust the --softvol-max default to roughly the old maximum (roughly doubles the gain).
* audio: change range of volume option/propertywm42015-05-226-35/+31
| | | | | | | | | Now --volume takes an absolute volume, meaning it doesn't depend on --softvol-max. 0 is still silence, and 100 now always means unchanged volume. The OSD and the "volume" property are changed accordingly. Also raise the minimum value of --softvol-max. A value below 100 makes no sense and breaks the OSD.
* options: --loop without argument means looping foreverwm42015-05-221-1/+1
| | | | | | | | | | | | Adding a "yes" choice makes the option parser consider this option as a multi-state flag option, and without argument "yes" is implicitly selected. "yes" is made an alias for "inf", so it will loop infinitely. As a negative side effect, the old syntax "-loop inf" does not work anymore. Since this is ambiguous, the option parser prefers interpreting the "inf" as filename. Fixes #1970.
* command: explicitly show mouse cursor when unfullscreeningwm42015-05-211-2/+6
|
* win32: do not call timeEndPeriod(1) on terminationwm42015-05-211-8/+0
| | | | | | | | This was called for formal reasons at best. The way it does this is somewhat dangerous, because if libmpv is unloaded as DLL, this would attempt to call a dangling function pointer. (No, we don't want an extra DllMain entrypoint just for win32.)
* DOCS/client_api_examples: cocoa: minor fixeswm42015-05-211-2/+2
| | | | | | | Cocoa needs to be linked explicitly. EXIT_SUCCESS is pretty pointless, and the same file uses exit(1) in other places.
* DOCS/client_api_examples: add opengl-cb-based cocoa example.torque2015-05-211-0/+310
| | | | Contains a basic toggle button that pauses the video.
* chmap: use av_popcount64()wm42015-05-211-9/+3
| | | | Saves us some code, and also happens to fix #1968.
* vo_opengl: vda: make it work anywherewm42015-05-212-5/+35
| | | | | | | | A rather dumb hack to copy the problematic rectangle textures (mandated by VDA) into 2D ones. (This isn't done yet for OpenGL 3.0+. We need to make sure the performance isn't reduced too much by it.)
* video: do not align source position to 2wm42015-05-212-11/+11
| | | | | vo_direct3d still seems to require this (tested on Windows 8.1 with Intel graphics). Do it in vo_direct3d instead of messing with all VOs.
* vo_opengl: remove npot optionwm42015-05-212-20/+0
| | | | Completely useless.
* DOCS/mplayer-changes: add relative seeking by %Robin2015-05-211-0/+1
| | | | Add relative seeking by percentage to mplayer-changes.rst
* vo_xv: make number of buffers configurablewm42015-05-202-3/+14
|
* command: refactor if/else statements to switchRobin2015-05-201-11/+19
| | | | | | The code checking for the type of seeking contained some if else statements. To improve readability, I decided to refactor those statements to a switch statement.
* video: force audio resync after video discontinuitywm42015-05-201-0/+1
|
* video: better heuristic for timestamp resetswm42015-05-201-2/+13
| | | | | | | | | | | | | | | Reduce the default tolerance for timestamp jumps from 60 to 15 seconds. For .ts files, where ts_resets_possible coming from AVFMT_TS_DISCONT is set, apply a more sophisticated heuristic. It's clear that such a file wouldn't have a framerate below, say, 23hz. If the demuxer reports a lower fps, we allow longer PTS jumps. This should replace long pauses on discontinuities with .ts files with at most a short stutter. Of course, all kinds of things could go wrong anyway if the source is VFR, or FFmpeg's frame rate detection fails in some other way. I haven't found such a file yet, though.
* audio: fix resync issue differentwm42015-05-191-1/+3
| | | | | | | | | | | Commit 10915000 attempted to fix wasting CPU when resyncing and no new data was actually coming from the demuxer. The fix assumed that at this point it would have reached the sync point, but since the code attempts weird incremental decoding, this wasn't actually true. So it broke seeking in addition to removing the CPU waste. Try something else. This time, we essentially only wakeup again if data was read (i.e. audio_decode() returned successfully).
* command: change OSD symbol for absolute perc. seekrrooij2015-05-191-2/+4
| | | | | | | | | | The OSD symbol for seeking to an absolute percentage was always OSD_FFW, even when it should be OSD_REW. It uses the correct OSD symbols now, by checking the current position ratio. Note: The symbol is still incorrectly given when the absolute percentage is very close to the current position ratio. Fortunately, that's a rare use case.
* manpage: fix syntaxwm42015-05-191-1/+1
| | | | | I guess this wasn't meant to be literal syntax, but it implies "," is used as sub-option separator.
* demux: read cue sheets embedded in tagswm42015-05-191-2/+17
| | | | | | | | | This reads the "CUESHEET" tag, and attempts to parse it as .cue data. If any is found, the cue tracks are added as chapters. This reuses the parser written for demux_cue.c. Fixes #1957.
* demux_cue: move cue parser to a separate filewm42015-05-195-180/+259
| | | | Preparation for the next commit.
* ad_spdif: use DTS-HD passthrough only if the audio is really DTS-HDwm42015-05-191-4/+54
| | | | | | | | | | | | | | | | | | | | | | | Apparently some A/V receivers do not behave well if "normal" DTS is passed through using the high bitrate spdif format normally used for DTS-HD (other receivers are fine with it). Parse the first packet passed to ad_spdif by decoding it with libavcodec in order to get the profile. Ignore the --ad-spdif-dtshd if it's not DTS-HD. (If the codec profile changes midstream, the user is out of luck. But this is probably an insignificant corner case.) I thought about parsing the bitstream, but let's not. While it probably wouldn't be that much effort, we are trying to keep it down on codec details here - otherwise we could just do our own spdif framing instead of using libavformat's spdif pseudo-muxer. Another possibility, using the codec parameters signalled by libavformat, is disregarded. Our builtin Matroska decoder doesn't do this, and also we do not want on the demuxer having to decode some packets in order to retrieve codec params (as libavformat does). Fixes #1949.
* ad_spdif: set output format lazilywm42015-05-191-15/+27
| | | | | Preparation for the following commit, which looks at the packet data before deciding what to output.
* audio: avoid wasting CPU due to continuous wakeupwm42015-05-191-1/+2
| | | | | | | | | Thsi code path happens during seeking. If video is still being decoded to get to the first video frame, audio has nothing to do, as it is synchronized against the first video frame. We only want to wake up if there's an actual state change. Fixes #1958.
* command: use consistent comment stylerrooij2015-05-191-1/+1
| | | | Signed-off-by: wm4 <wm4@nowhere>
* input: add relative percentage seekrrooij2015-05-193-1/+9
| | | | | | | | | | | Only absolute percentage seeking was permitted first. It is now also possible to seek by relative percentage. MPSEEK_FACTOR is used as seek_type. Fixes #1950. Signed-off-by: wm4 <wm4@nowhere>
* x11: never forcefully terminate xdg-screensaver processwm42015-05-182-9/+8
| | | | | | It sometimes happens on exit, and it's probably a bad idea. If the process hangs on exit (possibly due to stupid hardcoded timeouts it's doing), mpv will a