summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Release 0.5.2v0.5.2Alessandro Ghedini2014-09-093-1/+34
|
* stream_lavf: assume icy title data is terminated with ';'wm42014-09-061-1/+1
| | | | Should fix #1071.
* audio/out: make EOF handling properly event-basedwm42014-09-064-6/+52
| | | | | | | | | | | | | | | | | With --gapless-audio=no, changing from one file to the next apparently made it hang, until the player was woken up by unrelated events like input. The reason was that the AO doesn't notify the player of EOF properly. the played was querying ao_eof_reached(), and then just went to sleep, without anything waking it up. Make it event-based: the AO wakes up the playloop if the EOF state changes. We could have fixed this in a simpler way by synchronously draining the AO in these cases. But I think proper event handling is preferable. Fixes: #1069 CC: @mpv-player/stable (perhaps)
* audio: correctly initialize output bufferwm42014-09-051-0/+6
| | | | | | | Just like the previous commit, this takes care of fallout from commit 7ab228, which fixed a bug, but introduced some new ones. CC: @mpv-player/stable
* player: check for null in resume config searchJames Ross-Gowan2014-09-051-1/+2
| | | | | | Signed-off-by: wm4 <wm4@nowhere> CC: @mpv-player/stable
* audio: fix obscure audio resync failure with timelineswm42014-09-052-3/+6
| | | | | | | | | | | | | | | | | Somehow, there was a larger misunderstanding in the code: ao_buffer does not need to be preserved over audio reinit for proper support of gapless audio. The actual AO internal buffer takes care of this. In fact, preserving ao_buffer just breaks audio resync. In the ordered chapter case, end_pts is used, which means not all audio data in the buffer is played, thus some data is left over when audio decoding resumes on the next segment. This triggers some code that aborts resync if there's "audio decoded" (ao_buffer contains something), but no PTS is known (nothing was actually decoded yet). Simplify, and always bind the output buffer to the decoder. CC: @mpv-player/stable (maybe)
* build: handle insane libavcodec API bullshitwm42014-09-053-11/+37
| | | | | | | | | | | | | | | | | | | | | The oldest supported FFmpeg release doesn't provide av_vdpau_alloc_context(). With these versions, the application has no other choice than to hard code the size of AVVDPAUContext. (On the other hand, there's av_alloc_vdpaucontext(), which does the same thing, but is FFmpeg specific - not sure if it was available early enough, so I'm not touching it.) Newer FFmpeg and Libav releases require you to call this function, for ABI compatibility reasons. It's the typcal lakc of foresight that make FFmpeg APIs terrible. mpv successfully pretended that this crap didn't exist (ABI compat. is near impossible to reach anyway) - but it appears newer developments in Libav change the function from initializing the struct with all-zeros to something else, and mpv vdpau decoding would stop working as soon as this new work is relewased. So, add a configure test (sigh). CC: @mpv-player/stable
* demux_mkv: allow up to 256 MB of extradata to make broken files workwm42014-09-051-1/+1
| | | | | | | | What the flying fuck? Unfortunately, these are already in the wild. CC: @mpv-player/stable
* path: remove XDG bullshitwm42014-09-031-23/+1
| | | | | | | | | | | | | Don't worry, your ~/.config/... paths are safe. This merely removes handling of $XDG_CONFIG_DIRS for global paths. Maybe there is a better solution for this, like still including the "traditional" config dir. But I will leave the fine reading of this (crappy) spec and fixing the code accordingly to someone else. So, if anyone has interest in getting this behavior back, you will have to write a patch. This patch should _also_ not break expected behavior. Fixes #1060.
* player: properly resume playlists loaded at runtimewm42014-09-031-0/+3
| | | | | | | If a playlist is loaded from the internal playlist (like "mpv playlist.m3u"), then attempt to resume from it. CC: @mpv-player/stable
* gl_wayland: fix crash after eglInitialze failedAlexander Preisinger2014-09-011-6/+8
| | | | | Only execute most of the opengl termination procedure if we actually have an egl context.
* man: fix a whole bunch of typosMartin Herkt2014-09-0111-125/+125
| | | | | | Conflicts: DOCS/man/input.rst DOCS/man/options.rst
* playlist: don't add the base path twicewm42014-09-011-3/+0
| | | | | | | | | | | | Loading a playlist with --playlist from a sub-directory added the playlist's base path twice: one time in the playlist demuxer, and then again in playlist_parse_file(). The latter function is used only for --playlist, so it worked when loading the playlist directly. (This is probably a mess-up when the MPlayer playlist parsers were replaced with newer code.) CC: @mpv-player/stable
* audio/out: prevent burning CPU when seeking while pausedwm42014-09-011-1/+2
| | | | | | | | | The audio/video sync code in player/audio.c calls ao_reset() each time audio decoding is entered, but the player is paused, and there would be more than 1 sample to skip to make audio start match with video start. This caused a wakeup feedback loop with push.c. CC: @mpv-player/stable
* x11: when using --wid, inherit event flags from parent windowwm42014-09-013-6/+12
| | | | | | | | | | | | | | | | | | | When embedding a X window, it's hard to control whether it receives mouse/keyboard input or not. It seems the X protocol itself makes this hard (basically due to the outdated design mismatching with modern toolkits), and we have to take care of these things explicitly. Simply do this by manually querying and using the parent window event flags. This restores some MPlayer behavior (it doesn't add back exactly the same code, but it's very similar). This probably has some potential to interfere with libmpv embedding, so bump the client API minor. CC: @mpv-player/stable (if applied, client-api-changes.rst has to be adjusted to include the 0.5.2 release)
* player: fix quit handling when seeking past EOF while pausedwm42014-08-311-6/+5
| | | | | | | | | | | | | The player didn't quit when seeking past EOF in audio-only mode while paused. The only case when we don't want to quit is when the last video frame is displayed while paused. This logic was probably broken a while ago, but I'm not exactly sure. CC: @mpv-player/stable Conflicts: player/playloop.c
* audio: restore old speed change behaviorwm42014-08-282-2/+2
| | | | | | | | | | | | | | | | | | | | Don't attempt to resync after speed changes. Note that most other cases of audio reinit (like switching tracks etc.) still resync, but other code paths take care of setting the audio_status accordingly. This restores the old behavior of not trying to fix audio desync, which was probably changed with commit 261506e3. Note that the code as of now wasn't even entirely correct, since the A/V sync values are slightly shifted. The dsync depends on the audio buffer size, so a larger buffer size will show more extreme desync. Also see mplayer2 commit 213a224e, which should fixed this - it was not merged into mpv, because it disabled audio for too long, resulting in a worse user experience. This is similar to the issue this commit attempts to fix. Fixes: #1042 (probably) CC: @mpv-player-stable
* Release 0.5.1v0.5.1Alessandro Ghedini2014-08-262-1/+32
|
* manpage: mention that mp.commandv doesn't expand propertiesOtto Modinos2014-08-261-0/+4
| | | | | | | | The little lua snippet at #488 as well as the actual implementation seems to indicate that not expanding properties is indeed the correct behavior. Document that. Signed-off-by: wm4 <wm4@nowhere>
* coreaudio_device: fix overwriting of user inputStefano Pigozzi2014-08-251-9/+8
| | | | Fixes #1030
* options: compatibility hack for --slave-brokenwm42014-08-254-0/+12
| | | | | | | Seems some programs were still relying on it. Whatever, it's not hard to support. CC: @mpv-player/stable
* player: don't clobber playback position on video endwm42014-08-251-5/+3
| | | | | | | | If video reaches EOF, and audio is also EOF (or is otherwise not meaningful, like audio disabled), then the playback position was briefly set to 0. Fix this by not trying to use a bogus audio PTS. CC: @mpv-player/stable (maybe)
* manpage: remove duplicated contentBin Jin2014-08-251-29/+0
| | | | | | | Probably be accidentally added in b6b8bffd. CC: @mpv-player/stable Signed-off-by: wm4 <wm4@nowhere>
* etc/mpv.desktop: add audio/flac mimetypewm42014-08-211-1/+1
| | | | | | Fixes #1025. CC: @mpv-player/stable
* manpage: fix opengl-hq defaultswm42014-08-181-1/+1
| | | | | | The FBO format was changed some time ago. CC: @mpv-player/stable
* TOOLS/zsh.pl: protect global environmentPhilip Sequeira2014-08-171-0/+4
|
* TOOLS/zsh.pl: fix a ret that hadn't been changed to rcPhilip Sequeira2014-08-171-1/+1
|
* TOOLS/zsh.pl: properly set the return valueAlessandro Ghedini2014-08-151-9/+12
| | | | | | The previous commit made the completion script always return non-zero, even when a match is found. This explicitly sets the return value to zero whenever a match is found but defaults to non-zero in case nothing is matched.
* TOOLS/zsh.pl: properly return non-zero when no matches are foundc_142014-08-131-0/+1
| | | | | | | | Returning a non-zero value signals to the zsh completion system that no matches were added by the script so that it can try the user-defined matchers (e.g. those defined with matcher-list). Fixes #1008.
* wayland: pointer interface is created after themeAlexander Preisinger2014-08-131-13/+8
| | | | | | | | Just always load the theme. It gets freed properly and dosn't bother anyone. Fixes #1012. CC: @mpv-player/stable
* player: don't quit with --loop-filewm42014-08-131-0/+1
| | | | | | Fixes #1009. CC: @mpv-player/stable
* vdpau: correctly mark invalid mixer as such on vdp_video_mixer_create() failureAlessandro Ghedini2014-08-131-0/+3
| | | | | Otherwise vdp_video_mixer_destroy() would later fail when called on an invalid video mixer handle. With mesa r600 vdpau driver, this would cause a segfault.
* vo_vdpau: fix screenshots with anamorphic videowm42014-08-131-1/+1
| | | | | | Fixes #1007. CC: @mpv-player/stable
* DOCS: mark the recent release in client-api-changes.rstwm42014-08-132-0/+3
| | | | | | | Also add instructions to release-policy.md, since this can be easily forgotten. CC: @mpv-player/stable
* Release 0.5.0v0.5.0Alessandro Ghedini2014-08-122-0/+84
|
* input.conf: add some bindings for changing audio-delaywm42014-08-111-0/+2
| | | | | | Requested on: https://github.com/mpv-player/mpv/commit/90ec3334174e80c16f00971886223a3afabc1aca#commitcomment-7331673 Might remove or remap them again later.
* input.conf: make explanatory text more readablewm42014-08-112-30/+16
| | | | | Or at leats this is the intention. It's a bit hard to tell which information is needed, and which not.
* video: don't keep multiple pointers to hwdec info structwm42014-08-117-26/+29
| | | | This makes a certain corner case simpler at a later point.
* vaapi: fix uninitialized value readwm42014-08-111-1/+1
| | | | | | Found with valgrind. This is somewhat terrifying, because the VA-API API function is supposed to fill these values, and we access them only if the API functions return success. So this shouldn't have happened.
* vf_vapoursynth: print more diagnostics on errorwm42014-08-111-3/+9
|
* manpage: update keybindingswm42014-08-111-1/+1
|
* Move status-line.luawm42014-08-111-1/+1
| | | | | Looks like TOOLS/lua/ is now established as dumping ground for random Lua scripts, so DOCS/lua_examples/ is not needed anymore.
* player: remove cache status from video OSDwm42014-08-111-3/+0
|
* demux: reduce log spam if threading is disabledwm42014-08-111-3/+11
|
* video: fix dangling pointer issuewm42014-08-111-1/+1
| | | | | | | | | | | The function video_decode_and_filter(), called between initializing the local vf variable and using it, can actually destroy and recreate the filter. Thus, the vf variable turns into a dangling pointer if that happens. Could be observed with: --hwdec=vda --deinterlace=yes --vf=yadif (Also happens with vdpau/vaapi.)
* vdpau: allocate surfaces by agewm42014-08-112-1/+11
| | | | | Whether this helps is probably questionable and depends on the GPU. But the vaapi code does it too.
* input: fix event wakeupwm42014-08-111-18/+14
| | | | | | | | When a new event was added, merely a flag was set, instead of actually waking up the core (if needed). This was ok in ancient times when all event sources were part of the select() loop. But now there are several cases where other threads can add input, and then you actually need to wakeup the core in order to make it read the events at all.
* input.conf: change LEFT/RIGHT keys to seek 5s instead of 10swm42014-08-111-2/+2
|
* command: for OSD, format cache property as integerwm42014-08-111-0/+5
| | | | For convenience. Use ${=cache} to get the old formatting.
* command: fix dangling pointer issue in script key bindings codewm42014-08-111-1/+1
| | | | | | | | This code was sending a string to a different thread, and then deallocated the string shortly after, which means most of the time the other thread was accessing a dangling pointer. It's possible that this is the cause for #1002.
* player: don't delay OSD redraw when pausedwm42014-08-101-2/+4
| | | | We want this heuristic to trigger during normal playback only.
* vo_sdl: fix redrawing issuewm42014-08-101-1/+1
| | | | | | vo_sdl.c has broken event handling and just polls. The polling time was quite low, so the playloop OSD redrawing heuristic inhibited redraws, which made the window appear frozen when paused.
* input.conf: map shift+pgup/dwn to the old seek bindingswm42014-08-091-2/+4
|
* video: remove "hard" framedrop modewm42014-08-094-12/+20
| | | | | | | | | Completely useless, and could accidentally be enabled by cycling framedrop modes. Just get rid of it. But still allow triggering the old code with --vd-lavc-framedrop, in case someone asks for it. If nobody does, this new option will be removed eventually.
* etc/example.conf: update cache optionswm42014-08-091-4/+10
| | | | | | | Some of them changed semantics or got renamed. Note that the replacements in the example.conf are not necessarily the equivalents of the replaced options.
* command: run OSD display code even if a property is unavailablewm42014-08-091-4/+2
| | | | | | | | | | | | | | Trying to jump chapters in a gile that has no chapters does nothing, not even show a warning. This is confusing. The reason is that the "add chapter" command will just bail out completely if the property is unavailable. This was because it exited when it couldn't get the property type. Instead of exiting, just don't enter the code that needs the type. (I'm not sure when this behavior changed. I consider it a regression. It was probably caused by changes to the chapter code, which perhaps started returning UNAVAILABLE instead of OK if there are no chapters.)
* etc: add mplayer-input.confwm42014-08-091-0/+153
|
* input.conf: switch chapter seek next/previous keyswm42014-08-081-2/+2
| | | | | | "UP" seeks forward, so "PGUP" should skip to the next chapter. Fixes #998.
* manpage: update key bindingswm42014-08-081-36/+6
|
* manpage: add sections and order by usageAlexander Preisinger2014-08-081-1677/+1810
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Split the options into the following sections: * Playback Control * Program Behaviour * Video * Audio * Subtitles * Window * Disc Devices * Equalizer * Demuxer * Input * OSD * Screenshot * Software Scaler * Terminal * TV * Cache * Network * DVB * PVR * Miscellaneous Most options are sorted by usefullness and how often they're used or how important they are. This makes finding the right options easier and adds some sort of structure.
* ao_dsound: reduce default buffer sizewm42014-08-081-1/+1
| | | | | | Reduce from 1000ms to 100ms. Since there is an audio thread updating AOs quickly enough now, requesting such a large buffer size makes no sense anymore.
* input.conf: unmap some more obscure bindingswm42014-08-081-12/+11
| | | | | | | | | | Changing audio-delay is probably not needed. Changing balance "works", but not as expected (sets up a pan matrix to change left/right contributions to each other, rather than changing the relative volumes of each channel). I expect that the rest are not in use by anyone.
* command: add a "seeking" propertywm42014-08-082-0/+16
| | | | | | The client API exports this state via events already, but maybe it's better to explicitly provide this property in order to facilitate use on OSD and similar cases.
* player: indicate on the status line whether a seek is activewm42014-08-081-1/+3
| | | | | | This is delayed by 300ms - before that, the status doesn't change. I feel like it would too annoying if the status line would "flicker" on normal seek by quickly showing and hiding the indicator.
* input.conf: remap pgup/dwn to chapter seekswm42014-08-071-4/+8
| | | | | | As discussed in #973. Keep the old bindings for now; there's no reason to unmap them yet.
* build: add hacks to force waf to generate valid .pc fileswm42014-08-072-0/+9
| | | | Don't like this? You're invited to fix this crap.
* input: fix off by one error in command parserwm42014-08-071-1/+1
| | | | Should fix #989.
* audio: fix encoding modewm42014-08-071-1/+2
| | | | | | | | | If this code is not skipped, encoding (or dumping with --ao=pcm) will attempt to adjust video timing to audio. Since another commit (0cce8fe6) already avoids writing audio ahead, this didn't slow down encoding to realtime, but it was still significantly slower. This change should actually remove all extra sleeping.
* client API: qtexample: don't pass deallocated strings to mpvwm42014-08-071-1/+2