summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* manpage: lua: fix examplewm42014-11-291-2/+2
| | | | Oops.
* vo_wayland: Add "multimedia" keyboard key bindings.Sergey Kvachonok2014-11-291-0/+14
| | | | | | | | libxkbcommon keysyms are the same as X11 keysyms (sans prefix), so I simply copied the missing subsection from x11_common.c. Signed-off-by: Sergey Kvachonok <ravenexp@gmail.com> Signed-off-by: wm4 <wm4@nowhere>
* manpage: minor fixeswm42014-11-293-10/+9
| | | | | Also update the Lua example. The "pause" event was declared deprecated, so the example should use the newer API.
* player: don't ignore relative seeks by 0 secondswm42014-11-291-4/+0
| | | | | | | I don't know why this done; most likely it had no real reason. Remove it because it breaks "refresh seeks" to the same position. (Although the refresh seeks mpv sometimes does were fine.)
* command: avoid returning invalid FPS valueswm42014-11-291-3/+5
| | | | It's possible that fps is sometimes 0 in case it's unset.
* player: reset frame step counter on seekswm42014-11-292-1/+1
| | | | | I suppose this wasn't done in order to keep the frame step counter active even in the next file, but actually it was reset anyway.
* vo_opengl: enable fancy-downscaling by default for opengl-hqwm42014-11-292-1/+2
|
* vo_opengl: disable fancy-downscaling for anamorphic videowm42014-11-292-20/+36
| | | | Includes some arbitrary minor refactoring.
* lua: add a function that formats Lua values as stringswm42014-11-293-24/+27
| | | | | | | | Yep, Lua is so crappy that the stdlib doesn't provide anything like this. Repurposes the undocumented mp.format_table() function and moves it to mp.utils.
* TOOLS/lua: add script that pauses playback when minimizing the windowwm42014-11-291-0/+22
| | | | | | Uses functionality that was added a month ago for exactly this purpose. Fixes #1237.
* build: don't install some files if only libmpv is builtwm42014-11-291-13/+15
| | | | | | | encoding-profiles.conf can be used by libmpv, but it won't load it from this path by default, so exclude it as well. Fixes #1293.
* win32: add screen offset when handling overlarge windowswm42014-11-281-2/+2
| | | | | | | | | | | MS Windows doesn't allow windows larger than the screen, so we include a hack to make the window smaller. This hack recenters the window (what else would it do?). It didn't account for the virtual offset of the current screen, and it was reported that it forces the window to the first screen. Should fix #1292.
* player: simplify and fix ordered chapter EOF handlingwm42014-11-282-17/+11
| | | | | | | | | | | | | | Ordered chapter EOF was handled as special-case of ending the last segment. This broke --kee-open, because it set AT_END_OF_FILE in an "inconvenient" place (after checking for --keep-open, and before the code that exits playback if EOF is reached). We don't actually need to handle the last segment specially. Instead, we remain in the same segment if it ends. The normal playback logic will recognize EOF, because the end of the segment "cuts off" the file. Now timeline_set_from_time() never "fails", and we can remove the old segment EOF handling code in mp_seek().
* demux_mkv: remove ancient codec mapping leftoverswm42014-11-283-335/+52
| | | | | | | | | | | | | | | | | | | All of this is basically due to how MPlayer's codecs.conf worked. It had a demuxer-interface based an AVI, using FourCCs and data structures found in AVI. FourCCs were used to map streams to decoders. For codecs not supported by AVI, "MPlayer internal" FourCCs were made up. codec_tags.c is there to bridge demuxers written against the old API to the mpv one. By now, only demux_mkv.c needs this (because demux_mkv is the only serious demuxer left - preferably, we should use libavformat for mkv too, but I can't see this happening any time soon, because libavformat _still_ doesn't support segment linking). But the codec tables are full of weird stuff automatically extracted from the old codecs.conf tables. Most of it isn't needed for mkv. Remove all custom tags, readd those used by demux_mkv.c internally (see vinfo and mkv_audio_tag tables). The rest is handled by the tables provided by libavformat, which includes AVI and QT tags.
* ao/wasapi: handle VistaBlob failure more gracefullyKevin Mitchell2014-11-282-6/+21
|
* ao/wasapi: remove unnecessary check of audio thread inputKevin Mitchell2014-11-281-2/+0
| | | | it would have caused a deadlock if it fired anyway.
* ao/wasapi: more consistent/reliable method of computing extra ↵Kevin Mitchell2014-11-281-2/+1
| | | | WAVEFORMATEXTENSIBLE size
* ao/wasapi: more missed cleanup on failureKevin Mitchell2014-11-281-3/+5
|
* ao/wasapi: check return valuesKevin Mitchell2014-11-281-3/+6
| | | | | Only issue a warning for failure of wasapi_enumerate_devices and wasapi_fill_VistaBlob.
* ao/wasapi: make functions return bool that were acting like itKevin Mitchell2014-11-282-37/+37
| | | | | | | this involved inverting the logic of find_formats, enumerate_devies and wasapi_fill_VistaBlob. The latter two were trivial as their return values were not actually checked (to be fixed in a later commit).
* ao/wasapi: check full GUID of KSDATAFORMAT to determine floatKevin Mitchell2014-11-282-8/+9
|
* ao/wasapi: expose GUID and PKEY convenience functionsKevin Mitchell2014-11-283-45/+49
| | | | Give them the prefix mp_ and make them nonstatic.
* ao/wasapi: remove unused variableKevin Mitchell2014-11-281-3/+0
|
* ao/wasapi: safely define PKEY constantsKevin Mitchell2014-11-281-16/+13
| | | | | | | | | Before these definitions were incorrectly guarded by and #ifdef but since they aren't macros, this would never be true so that if they were ever added to mingw headers we would have problems. rename KSDATAFORMAT constants with the same mp prefix for consistency. also use DEFINE_GUID rather than defining the bare structure
* ao/wasapi: avoid redundant passing of ao and wasapi_state as argumentsKevin Mitchell2014-11-281-19/+19
| | | | also drop some useless const declaraitons
* ao/wasapi: just return 0 unconditionally from the threadKevin Mitchell2014-11-281-10/+4
| | | | | We weren't actually checking this value anyway. We only really cared about init failure, which was checked another way.
* ao/wasapi: fix unmatched CoUninitialize() on init failureKevin Mitchell2014-11-282-8/+5
|
* ao/wasapi: more debugging messagesKevin Mitchell2014-11-282-14/+27
|
* ao/wasapi: simplify the init retryKevin Mitchell2014-11-281-10/+8
|
* ao/wasapi: make get_device_delay return an error codeKevin Mitchell2014-11-281-12/+21
|
* build: move --cplayer to build optionsStefano Pigozzi2014-11-281-4/+5
| | | | This way it’s near to it’s libmpv counterparts
* build: move --dvbin to TV features, remove --dvbStefano Pigozzi2014-11-281-9/+4
|
* build: fix typosStefano Pigozzi2014-11-281-2/+2
| | | thanks to @Nikoli
* subprocess-win: remove a Vista-only flagJames Ross-Gowan2014-11-281-3/+2
| | | | | PIPE_REJECT_REMOTE_CLIENTS isn't supported on XP. It's not really needed, so remove it. Also fix error checking for CreateNamedPipe.
* demux_mkv: simplify extradata handlingwm42014-11-271-37/+12
| | | | | | | | | It was more complicated than necessary. The behavior changes slightly. Now it might pass through extradata when it didn't before (hopefully harmless), and doesn't fail with an error if extradata is not available, even though it's needed (harmless, will fail either way).
* demux_mkv: cosmeticswm42014-11-271-24/+13
|
* demux_mkv: fix a possible out of bounds accesswm42014-11-271-6/+8
| | | | | | | | | | | | | The if branch has a weak check to test whether the codec_id is the short ID, and handles the long IDs in the else branch. The long IDs are all longer than 12 bytes long, so hardcoding the string offset to get the trailing part of the name makes sense. But the if condition checks for another thing, which could get the else branch run even if the codec_id is short. Fix the bogus control flow and check if the codec_id is long enough. One of these checks could be considered redundant, but include them both for defensive coding.
* ao_wasapi: don't treat SetDisplayName() failure as fatalwm42014-11-271-1/+2
| | | | Same for SetIconPath().
* vo_direct3d: check whether D3DFMT_A8 is availablewm42014-11-271-11/+29
| | | | | | | | I suspect this is what is happening in github issue #1265 (at least partially). If D3DFMT_A8 is not available, fall back to RGBA. This is less efficient in general, so we normally want to avoid it.
* gl_video: minor simplificationwm42014-11-271-4/+0
| | | | Not needed anymore.
* command: sub_add with "auto" should not always select a subtitle trackwm42014-11-271-1/+3
| | | | | | | | | | | Running "sub_add file.srt auto" during hook execution automatically selected the first added track. This happened because all tracks added with sub_add are marked as "external", and external subtitles are always selected by default. Fix this by negating the "external" flag when autoselecting subtitles during loading. The no_default flag exists for this purpose; it was probably added for libquvi originally, where we had the same issue.
* audio: alternative fix for previous commitwm42014-11-271-4/+1
| | | | | | | This is a somewhat obscure situation, and happens only if audio starts again after it has ended (in particular can happens with files where audio starts later). It doesn't matter much whether audio starts immediately or some milliseconds later, so simplify it.
* audio: fix busy loop when seeking while pausedwm42014-11-271-2/+4
| | | | | | | | | | | | | | | | | | | | When playing paused, the amount of decoded audio is limited to a small amount (1 sample), because we don't write any audio to the AO when paused. The small amount could trigger the case of the wanted audio being too far in the future in the PTS sync code, which set the audio status to STATUS_DRAINING, which in turn triggered the EOF code in the next iteration. This was ok, but unfortunately, this triggered another retry in order to check resuming from EOF by setting the status to STATUS_SYNCING, which in turn lead to the busy loop by alternating between the 2 states. So don't try resyncing while paused. Since the PTS syncing code also calls ao_reset(), this could cause the pulseaudio daemon to consume some CPU time as well. This was caused by commit 33b57f55. Before that, the playloop was merely run more often, but didn't cause any problems. Fixes #1288.
* mixer: don't show softvol neutral marker on OSD if not using softvolwm42014-11-271-2/+2
| | | | Also fix the comment on the softvol field.
* vo_opengl: Linearize non-RGB sRGB files correctly (eg. JPEG)Niklas Haas2014-11-263-7/+48
| | | | Signed-off-by: wm4 <wm4@nowhere>
* Do not call strerror()wm42014-11-2616-90/+117
| | | | | | | | | | | | | | | | | | | | | | | | | ...because everything is terrible. strerror() is not documented as having to be thread-safe by POSIX and C11. (Which is pretty much bullshit, because both mandate threads and some form of thread-local storage - so there's no excuse why implementation couldn't implement this in a thread-safe way. Especially with C11 this is ridiculous, because there is no way to use threads and convert error numbers to strings at the same time!) Since we heavily use threads now, we should avoid unsafe functions like strerror(). strerror_r() is in POSIX, but GNU/glibc deliberately fucks it up and gives the function different semantics than the POSIX one. It's a bit of work to convince this piece of shit to expose the POSIX standard function, and not the messed up GNU one. strerror_l() is also in POSIX, but only since the 2008 standard, and thus is not widespread. The solution is using avlibc (libavutil, by its official name), which handles the unportable details for us, mostly. We avoid some pain.
* gl_common: factor context creationwm42014-11-264-50/+51
| | | | | | | Always create the context in mpgl_init(), instead of doing it when mpgl_config_window() is called the first time. This is a small step towards cleaning up the GL backend interface, and adding other things like perhaps GLES support, or a callback-driven backend for libmpv.
* vo_opengl: Reword comment in shaderNiklas Haas2014-11-261-2/+3
| | | | | I didn't quite understand this comment after looking at the code again months later, so I reworded it for better clarity.
* vo_opengl: make operator precedence explicitwm42014-11-261-1/+2
| | | | More readable.
* vo_opengl: fix srgb with certain inputswm42014-11-261-1/+1
| | | | | | | | | Sampling from the source texture and scaling must always be done separately in this mode. Fix suggested by haasn. Still looks a bit wrong, though.
* vo_opengl: somethingwm42014-11-261-1/+1
| | | | | | Insert explanation here. Fixes #1023.
* ytdl: bump requrired youtube-dl version to 2014.11.26ChrisK22014-11-261-1/+1
|
* ytdl: Try to handle multi-arc videosChrisK22014-11-261-14/+37
| | | | | | | | this currently uses a sketchy but apparently working workaround, which will be removed once the neccessary changes in youtube-dl are implemented Fixes #1277
* ytdl: When using DASH, print actual durationChrisK22014-11-261-1/+5
| | | | | prints the actual duration as reported by youtube-dl to the terminal when available
* DOCS/crosscompile-mingw: updateTimothy Gu2014-11-261-8/+8
| | | | | | Add `.static` for MXE targets. Signed-off-by: wm4 <wm4@nowhere>
* manpage: lua: fix typo paramater -> parameterAlessandro Ghedini2014-11-261-1/+1
|
* demux_lavf: set PTS of first packet for formats with no timestampswm42014-11-251-0/+9
| | | | Makes time display work for some raw audio formats (*.shn).
* ao_alsa: fix channel map in pre-channel map API casewm42014-11-251-0/+1
| | | | Forgotten in commit 5d5f5b09.
* ao_alsa: always enable "plug" plugin for non-default devicewm42014-11-251-3/+2
| | | | | | | | | | | | | | This seems safer: otherwise, opening the AO could randomly fail if the audio formats happens to be not float. Unfortunately, this only works if the user does not select a device. Since ALSA devices are arbitrary strings, including plugins with complex parameters, it's not trivial or maybe even impossible to edit the string in a way the "plug" plugin is added. With --audio-device, it would be safe for users to select either "default" or one of the "plughw" devices. Everything else seems questionable.
* ao_alsa: select and set channel maps via channel map APIwm42014-11-251-28/+125
| | | | | | | | | | | | | | | | Use the ALSA channel map API for querying and selecting supported channel maps. Since we (probably?) want to be compatible with ALSA versions before the change, we still try to select the device name by channel map, and open that device. There's no way to negotiate a channel map before opening, so we're stuck with this approach. Fortunately, it seems these devices allow selecting and setting any other supported channel layout, so maybe this is not an issue at all. In particular, this avoids selecting the default (dmix) device, which can only do stereo. Most code is based on Martin Herkt <lachs0r@srsfckn.biz>'s alsa_ng branch, with heavy modifications.
* ao_alsa: minor fixeswm42014-11-251-4/+6
| | | | | | | | | | | | | Don't crash if no fallback channel layout could be found (caller can't handle NULL return from select_chmap()). Apparently this could never actually happen, though. Don't treat snd_pcm_hw_params_set_periods_near() failure as fatal error. Same deal as with snd_pcm_hw_params_set_buffer_time_near(). Actually free channel maps returned by snd_pcm_get_chmap(). Adjust some messages.
* client API: make sure youtube-dl is not used by defaultwm42014-11-251-0/+1
| | | | | | | Currently, --ytdl is off by default, but even if this is changed, never enable it by default for the client API. It would be inappropriate to start an intrusive external subprocess behind the host application's back.
* cocoa: don’t hand over view memory ownership to libmpv clientsStefano Pigozzi2014-11-251-1/+1
|
* audio: make mp_audio_config_to_str return a stack-allocated stringwm42014-11-254-23/+12
| | | | Simpler overall.
* ao_alsa: cleanupswm42014-11-251-97/+57
| | | | | | | | | No functional changes. ALSA_PCM_NEW_HW_PARAMS_API was a pre-ALSA 1.0.0 thing and does nothing with modern ALSA. It stopped being necessary about 10 years ago. 3 functions are moved to avoid forward references.
* player: add option not to use OSD/fontconfigwm42014-11-254-0/+16
| | | | | | | Makeshift-solution for working around certain fontconfig issues. With --use-text-osd=no, libass and fontconfig won't be initialized, and fontconfig won't block everything with scanning for fonts.
* audio: make mp_chmap_to_str() return a stack-allocated stringwm42014-11-246-27/+25
| | | | Simplifies memory management.
* ao_alsa: try to use the channel map reported by ALSAwm42014-11-242-1/+66
| | | | | | | | If ALSA reports a channel map, and it looks like it makes sense (i.e. could be converted to mpv channel map, and the channel count matches), then use that instead of the channel map we are assuming. This is based on code written by lachs0r (alsa_ng branch).
* travis: restrict build matrix furtherwm42014-11-241-0/+4
| | | | | | | | | | | | | | | | We don't actually want to test all possible combinations; we just want to make sure that each thing (e.g. linux/osx, ffmpeg/libav) is tested once. Exclude Linux + ffmpeg-stable, because ffmpeg-stable is already tested on OSX. Exclude clang on Linux, because OSX needs clang, but Coverity (running on Linux) needs gcc - so we use gcc only on Linux. I also wanted to reduce the matrix to a single configuration when running Coverity, but apparently this is not possible. (See travis-ci/travis-ci#1975.)
* travis: add gcc to the build matrixwm42014-11-241-0/+4
| | | | | | | | For the purpose of running Coverity correctly. Although I'm not sure how well this works. gcc won't work on OSX, and also I'm not sure if Coverity will act up if the build matrix has more than 1 configuration (will it submit multiple scans?).
*