summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
| * sd_ass: fix top alignment of secondary subtitleswm42016-09-251-3/+4
| | | | | | | | | | | | | | | | | | | | | | Secondary subtitle streams (to be shown on the top of the screen along main subtitle stream) were shown with normal alignment. This is because we tell libass to override the alignment style (a relatively recent change, see commit 2f1eb49e). This would behave differently with old libass versions too. To escape the mess, just set the alignment explicitly with an override tag instead of modifying the style.
| * lua: complain loudly if Lua state creation failswm42016-09-251-1/+3
| | | | | | | | | | | | | | This should normally happen only if memory allocation for the state happens, which should be extremely rare. But with Luajit on OSX, it can happen if the magic compiler flags required by Luajit were not passed to mpv compilation. Print an error to reduce confusion.
| * options: do not mark --profile/--include as M_OPT_FIXEDwm42016-09-241-2/+2
| | | | | | | | | | | | | | | | | | The intention of M_OPT_FIXED is to make options not runtime-changeable, so trying to set them at runtime will always error. This is not wanted for --profile and --include, for which there is no reason to block them at runtime. Fixes #3581.
| * player: fix instant subtitle refresh on track switcheswm42016-09-242-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When switching a subtitle track, the subtitle wasn't necessarily updated, especially when playback was paused. Some awfully subtle and complex interactions here. First off (and not so subtle), the subtitle decoder will read packets only on explicit update_subtitles() calls, which, if video is active, is called only when a new video frame is shown. (A simply video frame redraw doesn't trigger this.) So call it explicitly. But only if playback is "initialized", i.e. not when it does initial track selection and decoder init, during which no packets should be read. The second issue is that the demuxer thread simply will not read new packets just because a track was switched, especially if playback is paused. That's fine, but if a refresh seek is to be done, it really should do this. So if there's either 1. a refresh seek requested, or 2. a refresh seek ongoing, then read more packets. Note that it's entirely possible that we overflow the packet queue with this in unpredicated weird corner cases, but the queue limit will still be enforced, so this shouldn't make the situation worse.
| * lua: fix array detectionwm42016-09-241-2/+2
| | | | | | | | | | | | | | This was dumb and could return something like "{name=123}" as an array. Also, fix the error message if a key is not a string. lua_typename() takes a type directly, not a stack item.
| * command: some minor corrections to previous commitwm42016-09-241-20/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The last commit was fine - just making some enhancements. Rename the function to parse_node_chapters(), since it really has not much to do with Lua. Don't use len<0 as check whether it makes sense to set chapters, and instead check for mpctx->demuxer (that includes the possibility to set chapters e.g. within a preload hook, but after chapters are initialized from the demuxer). Return M_PROPERTY_ERROR instead of M_PROPERTY_OK if the mpv_node has the wrong type. It's ok if a chapter has no title, so change the checks accordingly. Remove a Yoda condition. Notify that chapter metadata might have changed with mp_notify() (the chapter list itself is already taken care by generic code). Fix leaking the metadata allocations of the new chapter list.
| * command: make it possible to set chapters via lua pluginsMaurycy Skier2016-09-241-1/+70
| |
| * vo_opengl: hwdec_cuda: get the cuda device from the GL contextPhilip Langdale2016-09-241-3/+3
| | | | | | | | | | | | | | | | | | | | Obviously, in the vast majority of cases, there's only one device in the system, but doing this means we're more likely to get a usable device in the multi-device case. cuda would support decoding on one device and displaying on another but the peer memory handling is not transparent and I have no way to test it so I can't really write it.
| * vo_opengl: hwdec_cuda: directly map GL textures and skip using PBOsPhilip Langdale2016-09-241-65/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The documentation around this stuff is poor, but I found an nvidia sample that demonstrates how to use the interop API most efficiently. (https://github.com/nvpro-samples/gl_cuda_interop_pingpong_st) Key lessons are: 1) you can register the texture itself and have cuda write to it, thereby skipping an additional copy through the PBO. 2) You don't have to be mapped when you do the copy - once you get a mapped pointer, it remains valid. Magic! This lets us throw out the PBOs as well as much of the explicit alignment and stride handling. CPU usage is slightly (~3%) lower for 4K content in one test case, so it makes a detectable difference, and presumably saves memory.
| * manpage: hwdec_cuda: update docs to say 10bit hevc is supportedPhilip Langdale2016-09-241-2/+2
| | | | | | | | | | Now that ffmpeg bundles working headers, this no longer relies on a custom ffmpeg build with a hacked up header file.
| * player: fix intended pseudo-gui behaviorwm42016-09-231-3/+3
| | | | | | | | It's still supposed to be possible to customize the pseudo-gui section.
| * player: do not let pseudo-gui override user config settingswm42016-09-2311-11/+42
| | | | | | | | | | | | | | | | Seems like this confused users quite often. Instead of --profile=pseudo-gui, --player-operation-mode=pseudo-gui now has to be used to invoke pseudo GUI mode. The old way still works, and still behaves in the old way.
| * m_config, command: remove some minor code duplicationwm42016-09-233-6/+11
| | | | | | | | | | | | I would have been fine with this, but now I want to add another flag, and the duplication would become more messy than having a strange function for deduplication.
| * TOOLS/lua/observe-all: explicitly observe all optionswm42016-09-231-1/+9
| |
| * command: make most options observablewm42016-09-231-0/+6
| | | | | | | | | | | | | | | | | | | | | | The property observation mechanism turns properties into integer IDs for fast comparison. This means if two properties get the same ID, they will receive the same notifications. Use this to make properties under options/ receive notifications. The option-property bridge marks top-level properties with the same name as the options. This still might not work in cases the C code sets values on options structs directly.
| * vo_opengl: hwdec_rpi: remove copy&paste errorwm42016-09-231-1/+0
| |
| * vo: log framedropswm42016-09-231-1/+3
| | | | | | | | Seems useful. (This was possibly added ages ago and then removed.)
| * command: fix potential UBwm42016-09-231-5/+5
| | | | | | | | Pointed out by quilloss on github.
| * x11: fix external fullscreen updatewm42016-09-233-13/+19
| | | | | | | | | | | | | | | | | | | | | | | | On x11, you can change the fullscreen via the window manager and without mpv's involvement. In these cases, the internal fullscreen flag has to be updated. The hack used for this didn't really work properly. Change it accordingly. The important thing is that the shadow copy of the option is updated. This is still not really ideal. Fixes #3570.
| * aspect: use nominal width instead of actual width for video-unscaledNiklas Haas2016-09-221-3/+3
| | | | | | | | | | | | | | | | The documentation claims that --video-unscaled will still perform anamorphic adjustments, and it rightfully should. The current reality is that it does not, because the video-unscaled size was based on the wrong set of variables. (encoded width/height instead of nominal display width/height)
| * player: make audio-channels etc. runtime settablewm42016-09-223-5/+13
| | | | | | | | | | | | | | | | | | If one of the audio output format options is set, brually reinit the audio chain. Since the audio-channels property is still mapped to the deprecated read-only property, "options/audio-channels" currently has to be used, e.g. "cycle-values options/audio-channels 2 7.1".
| * command: add a load-script commandwm42016-09-226-5/+20
| | | | | | | | | | | | | | The intention is to give libmpv users as much flexibility to load scripts as using mpv from CLI, but without restricting libmpv users from having to decide everything on creation time, or having to go through hacks like recreating the libmpv context to update state.
| * player: remove some explicit options accesses when saving resume filewm42016-09-221-29/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | Basically, make use of all the new code. Unfortunately, the new code and it's "compromise semantics" with the old behavior before the options/properties merge bites back: this vid/aid/sid, deinterlace, and video-aspect properties have neutral default settings (such as "auto"), but return the current value during playback, so we would unnecessarily force this value when playback is resumed. So leave those as they are. Also, the colormatrix options were removed a long time ago.
| * command: fix missing update notifications in some caseswm42016-09-221-0/+1
| |
| * player: some M_SETOPT_RUNTIME cleanupswm42016-09-223-21/+9
| | | | | | | | | | | | | | | | | | Add this flag where needed. You shouldn't be able to set e.g. config-dir in these situations. Remove the mpctx->initialized check from the property/option bridge, since it's in use strictly only after initialization. Likewise, the apply-profile command doesn't need to check this.
| * ytdl_hook: temporarily force disable dash segments formatsRicardo Constantino2016-09-221-4/+5
| |
| * vo: add a unique frame_id to vo_framewm42016-09-222-0/+9
| | | | | | | | | | We think that this allows simpler logic than using the redraw and repeat fields. Not used yet.
| * vo_opengl: apply 90° rotation to chroma texture sizewm42016-09-221-0/+3
| | | | | | | | | | | | | | | | | | When we rotate the inmage by 90° or 270°, chroma width and height need to be swapped. Fixes #3568. But is the chroma sub location correct? Who the hell knows...
| * hwdec/cuda: Document how to activate cuda deinterlacingPhilip Langdale2016-09-221-8/+11
| | | | | | | | | | | | The latest changes to the decoder in ffmpeg enable frame doubled deinterlacing so that it's actually useful. Let's document how to use it.
| * cocoa: fix macOS 10.12 deprecation warningsAkemi2016-09-224-12/+45
| |
| * player: add --watch-later-directory optionDavid Logie2016-09-224-2/+19
| | | | | | | | | | | | | | This option allows the user to set the directory where "watch later" files are stored. Signed-off-by: wm4 <wm4@nowhere>
| * client API: more or less deprecate mpv_set_option()wm42016-09-218-56/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the merging of options and properties, the mpv_set_option() function is close to being useless, and mpv_set_property() can be used for everything instead. There are certain conflicts remaining, which are explained in depth in the docs. For now, none of this should affect existing code using the client API. Make mpv_set_property() redirect to mpv_set_option() before initialization. Remove some options marked as M_OPT_FIXED. The "pause" and "speed" options cannot be written anymore without the playloop being notified by it, so the M_OPT_FIXED does nothing. For "vo-mmcss-profile", the problem was lack of synchronization, which has been added. I'm not sure what the problem was with "frames" - I think it was only marked as M_OPT_FIXED because changing it during playback will have no effect. Except for pause/speed, these changes are needed to make them writable as properties after mpv_initialize(). Also replace all remaining uses of CONF_GLOBAL with M_OPT_FIXED.
| * options: make input options generally runtime-settablewm42016-09-217-71/+105
| |
| * client API: fix init/destruction race conditionswm42016-09-213-8/+19
| | | | | | | | | | | | | | | | | | | | mp_new_client() blatantly accessed some mutex-protected state outside of the mutex. The destruction code is in theory OK, but with changes in the following commits it'll be a bit hard to guarantee that it stays this way. Add a simple flag that makes adding new clients impossible, so that having no clients after shutdown_clients() remains guaranteed.
| * lua: add API for registering idle handlerswm42016-09-212-0/+17
| | | | | | | | | | This is only a functionality the Lua event dispatcher provides, rather than the libmpv client API.
| * lua: run timers only after draining the event queuewm42016-09-211-12/+11
| | | | | | | | | | | | Instead of rechecking the timers every time after an event is read, do it only once the event queue is empty. This is probably slightly more efficient, and facilitates the next commit.
| * manpage: lua: mention recent deprecationswm42016-09-211-4/+6
| | | | | | | | | | These are listed in interface-changes.rst, but the documentation in the manpage wasn't updated.
| * lua: expose subprocess_detachedrr-2016-09-212-0/+45
| |
| * ao_openal: enable building on OSXJosh de Kock2016-09-213-2/+27
| | | | | | | | Signed-off-by: Josh de Kock <josh@itanimul.li>
| * command: make bitrate properties observablewm42016-09-211-1/+2
| |
| * client API: revert unintended mpv_wait_event() behavior changewm42016-09-211-3/+0
| | | | | | | | | | Commit bf385e11 accidentally added some testing changes that were not intended to be committed.
| * command: add a video-dec-params propertywm42016-09-204-2/+27
| | | | | | | | | | | | This is the actual decoder output, with no overrides applied. (Maybe video-params shouldn't contain the overrides in the first place, but damage done.)
| * video: handle override video parameters in a better placewm42016-09-202-8/+7
| | | | | | | | | | | | | | | | This really shouldn't be in vd_lavc.c - move it to dec_video.c, where it also applies aspect overrides. This makes all overrides in one place. The previous commit contains some required changes for resetting the image parameters change detection (i.e. it's not done only on video aspect override changes).
| * command: change update handling of some video-related propertieswm42016-09-205-32/+19
| | | | | | | | | | | | | | | | Use the new mechanism, instead of wrapped properties. As usual, extend the update handling to some options that were forgotten/neglected before. Rename video_reset_aspect() to video_reset_params() to make it more "general" (and we can amazingly include write access to video-aspect as well in this).
| * player: kill associated OSD and key bindings when removing a scriptwm42016-09-205-4/+35
| | | | | | | | | | The former was done already for Lua scripts, but move it to the generic code.
| * osd: fix OSD redrawing after removing external overlayswm42016-09-201-0/+2
| |
| * man/options.rst: fix typo and layoutKranky K. Krackpot2016-09-201-6/+8
| | | | | | | | Signed-off-by: wm4 <wm4@nowhere>
| * audio: fix segfault when yanking USB DACKevin Mitchell2016-09-201-0/+1
| | | | | | | | | | The ao_c pointer was stale after the mpctx entry was freed / NULLed. This prevented the correct early exit from fill_audio_out_buffers.
| * options: fix window-scale propertywm42016-09-202-2/+2
| | | | | | | | | | | | | | A recent change merged the window-scaler option and property, but forgot that the option is float for some reason, while the property uses double. This led to undefined behavior. Fix it by changing the option to double too.
| * m_option: resort M_OPT_ flag valueswm42016-09-201-11/+11
| | | | | | | | Remove the gaps that have been added over time.
| * player: make --osc/--ytdl settable during playbackwm42016-09-206-7/+44
| | | | | | | | | | | | | | | | | | Setting the osc or ytdl properties will now load/unload the associated scripts. (For ytdl this does not mean the currently played URL will be reloaded.) Also add a changelog entry for this, which also covers the preceding work for --terminal.
| * options, command: simplify some option updateswm42016-09-194-86/+56
| | | | | | |