aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
...
* ao/wasapi: improve exclusive mode format searchGravatar Kevin Mitchell2015-01-02
| | | | fixes #1376
* ao/wasapi: revamp set_waveformatexGravatar Kevin Mitchell2015-01-02
| | | | | | | | * bits instead of bytes * add valid_bits argument * just pass in the mp_chmap and get the number and wavext channel map from that * indicate valid bits in waveformat_to_str * make appropriate accomodations in try_format
* ao/wasapi: add CO_E_NOTINITIALIZED to explain_errGravatar Kevin Mitchell2015-01-02
| | | | someone on irc reported seeing this error
* cocoa: fix build on 10.9Gravatar Stefano Pigozzi2015-01-02
| | | | Use -isInFullScreenMode instead of the property introduced with the 10.10 SDK.
* OSC: idlemessage: fix alignmentGravatar ChrisK22015-01-02
|
* TOOLS/stas-conv: add timed value event typeGravatar wm42015-01-02
|
* TOOLS/stats-conv: better outputGravatar wm42015-01-02
| | | | | | Sort the legend by the used y value of binary events/signals, add a way to filter branches (although that requires editing the script), and use the full screen if the second subplot is not used.
* cocoa: fix NSMapGet errorGravatar Stefano Pigozzi2015-01-02
| | | | regression from 64b6b2ea45
* manpage: talk about one script, not multiple scriptsGravatar Ryan Jacobs2015-01-02
| | | | | | There aren't multiple scripts. We're just talking about one: youtube-dl. Signed-off-by: wm4 <wm4@nowhere>
* OSC: add osc-message script command (wip)Gravatar ChrisK22015-01-02
|
* OSC: display "drop files here" message when idle + forced-windowGravatar ChrisK22015-01-02
| | | | This currently doesn't work properly on OSX due to some bugs.
* build: rename MPLAYER_CONFDIR defineGravatar wm42015-01-02
| | | | | | We certainly don't use the mplayer configuration dir. The name didn't matter, but now that it's in user-visible output (as part of config.h being dumped in verbose mode), it's a bit too strange.
* player: move terminal input init to a better placeGravatar wm42015-01-02
| | | | | | Mostly of cosmetic nature. Move initialization to the same place where another component (cocoa) will start accessing the input context from a foreign thread.
* player: print config.h contents in verbose modeGravatar wm42015-01-02
| | | | | | | | | It was requested that mpv should print what features etc. have been enabled at compile time. It can print the configure command line, but it obviously doesn't include autodetected features. I tried to think of a nicer way than dumping the config.h as text, but this was still the simplest way.
* build: prefer libswresample over libavresample on FFmpegGravatar wm42015-01-02
| | | | | | | | | | I hoped we could always use libavresample, but the FFmpeg project is being too dickish to enable libavresample by default - which means we need our libswresample-to-libavresample hack anyway. Give up, and use the "supported" one of the duplicated libraries when compiling against FFmpeg (relying on the fact that libswresample won't be present if compiling against Libav).
* vo_opengl_old: remove ancient ATI-specific YUV conversionsGravatar wm42015-01-02
| | | | | | | | | | While there's no actual need to get rid of these, I want to make sure nobody actually needs this stuff, and removing it is the best way to get to know this. We still can revert this commit if it turns out there is a significant need for this stuff. The final goal is removing vo_opengl_old entirely. Add a warning, which basically announces this intention.
* build: try to make examples build both in-tree and out-of-treeGravatar wm42015-01-02
| | | | | | | | | | | | | | | | | | | | | | | | | The examples simple.c and cocoabasic.m can be compiled without installing libmpv. But also, they didn't use the correct include path libmpv programs normally use, so they couldn't be built with a properly installed system-libmpv. That's pretty bad for examples, which are supposed to show how to use libmpv correctly. So do some bullshit that symlinks libmpv to a "mpv" include directory under the build directory. This name-mismatch is a direct consequence of the bullshit done in 499a6758 (requested in #539 for dumb reasons). (We don't want to name the client API headers directory "mpv", because that would be too unspecific, and clashes with having the mpv binary in the same directory.) If you have spaces or other "unusual" characters in your paths, the build will break, because I couldn't find out where waf hides its function to escape shell parameters (or a way to invoke programs without involving the shell). Neither does such a thing to be documented, nor do they seem to have a clear way to do this in their code. This also doesn't compile the Qt examples, because everything becomes even more terrible from there on.
* DOCS/client_api_examples: move all examples into their own subdirsGravatar wm42015-01-01
| | | | | Also get rid of shared.h; it actually doesn't have much value. Just copy the tiny function it contained into the 2 files which used it.
* DOCS/client_api_examples: don't throw char* in C++ codeGravatar wm42015-01-01
| | | | | | | C++ is the worst language ever, and allows throwing any type, even if it doesn't make sense. In this case, we were throwing char*, which the runtime typically treats as opaque, instead of printing it as message if such an exception was not caught.
* manpage: fix typoGravatar wm42015-01-01
|
* command: make the "run" command work on Windows tooGravatar wm42015-01-01
| | | | | | | | | Do so by using mp_subprocess(). Although this uses completely different code on Unix too, you shouldn't notice a difference. A less ncie thing is that this reserves an entire thread while the command is running (which wastes some memory for stack, at least). But this is probably still the simplest way, and the fork() trick is apparently not implementable with posix_subprocess().
* subprocess: allow disabling redirection of stdout/stderrGravatar wm42015-01-01
| | | | | | | | | If the stdout or stderr write callback is NULL, then don't redirect this stream. Preparation for the next commit. Not sure what to do on Windows; it seems STARTUPINFO doesn't allow redirection only one of them. So just let them write nothing. For our intended use-case (next commit), this is probably sensible.
* win32: add native wrappers for pthread functionsGravatar wm42015-01-01
| | | | | | | Off by default, use --enable-win32-internal-pthreads . This probably still needs a lot more testing. It also won't work on Windows XP.
* cocoa: fix uninitialization while in fullscreenGravatar Stefano Pigozzi2015-01-01
| | | | | | | | This is only needed for switching video track with `_`, since Cocoa automatically handles cleaning up the application's presentation options when quitting the process. Fixes #1399
* Update copyright yearGravatar wm42015-01-01
|
* player: capitalize --display-tags itemsGravatar wm42014-12-31
| | | | | | | | Tags keys are case-insensitive. Before commit 8048374a, the casing of whatever FFmpeg returned was used (it was quite random). But since the change, the values in --display-tags decides. Consider this an accidental feature, and make the output nicer by capitalizing the tag names.
* gl_hwdec_vda: refuse to work with old OpenGL versionsGravatar wm42014-12-31
| | | | | | | | | | | | The way we use rectangle textures (required by VDA for no reason) works onl in OpenGL 3.0 or higher. Below that, the shader will fail to compile. We could add support for older OpenGL versions, but that would be a major pain. This normally doesn't matter; mpv itself always creates OpenGL 3.2 contexts on OSX. But it could matter if a client API user uses vo_opengl_cb, and gives it a 2.1 context (which OSX also allows you to create).
* client API: add function to create new mpv_handles from existing onesGravatar wm42014-12-31
| | | | | | | This may or may not be useful for client API users. Fold this API extension into the previous API bump. The previous bump was only yesterday, so it's ok.
* vo_opengl_cb: simplify API uninitializationGravatar wm42014-12-31
| | | | | | | | | | | Until now, calling mpv_opengl_cb_uninit_gl() at a "bad moment" could make the whole thing to explode. The API user was asked to avoid such situations by calling it only in "good moments". But this was probably a bit too subtle and could easily be overlooked. Integrate the approach the qml example uses directly into the implementation. If the OpenGL context is to be unitialized, forcefully disable video, and block until this is done.
* vo_opengl_cb: pass context directlyGravatar wm42014-12-31
| | | | | This is simpler than setting the context after VO creation, which requires the code to check for the context on every entrypoint.
* video: pass some VO params as structGravatar wm42014-12-31
| | | | | Not particularly elegant, but better than adding more and more stuff to the relevant function signatures.
* demux_mkv: enable codec parsing for vfw-muxed files tooGravatar wm42014-12-31
| | | | | | | | | | | | For some codecs, we need to invoke a codec parser (because libavcodec will run into trouble otherwise). This was done based on the Matroska codec field. But this ignores handling of vfw-muxed files, which use a pseudo-codec to signal presence of vfw structures, which we must unmangle to get the real codec. Handle this by rearranging the code. This fixes at least mp3-in-mkv for vfw-muxed files; typically old files.
* client API: qthelper: return NULL as handle if unsetGravatar wm42014-12-30
| | | | | | | | | Creating a plain Handle() should yield a NULL mpv_handle. Also, remove the redundant non-const definition of the conversion operator. At least in this situation it's not needed. Also, add include guards around qthelper.hpp.
* DOCS/client_api_examples: add an explicit licenseGravatar wm42014-12-30
| | | | IANAL, but we don't give a shit what you do with this code.
* DOCS/client_api_examples: qtexample: use queued signalsGravatar wm42014-12-30
| | | | | | | | Use queued signals instead of QEvent for the wakeup notification. This is slightly nicer, and reduces the chance that the event (QEvent::User) could clash with other code using the same event. Also switch to modern connect() syntax.
* DOCS/client_api_examples: qtquick: fix destructionGravatar wm42014-12-30
| | | | | | | | | | | | | | | | Destruction (e.g. when closing the window) was a bit broken. This commit fixes some possible crashes, and should make lifetime management relatively sane. (Still a bit complex, though. Maybe this code should be moved into a tiny library.) QtQuick runs the renderer on a separate thread. This thread is rather loosely connected to the main thread. The loose separation is enforced by the API, which also makes coordination of initialization and destruction harder. Throw refcounting at the problem, which fixes it. The refcounting wrapper introduced in the previous commit is used for this. Also contains some general cleanups.
* client API: qthelper: add a refcounting wrapper around mpv_handleGravatar wm42014-12-30
| | | | | This is useful to deal with crazy Qt object lifetime issues (the following commit needs it).
* command: make empty vf-metadata not an errorGravatar wm42014-12-30
| | | | | | | | If a filter exists, but has no metadata, just return success. This allows the user to distinguish between no metadata available, and filter not inserted. See #1408.
* demux_playlist: unquote entries in pls playlistsGravatar wm42014-12-30
| | | | I guess these parsers still have a way to go...
* vf: fix crash if filter doesn't provide control entrypointGravatar wm42014-12-30
| | | | | | | | This input command crashed: vf add @mf:format=yuv420p ; show_text "${vf-metadata/mf}" Fixes #1408.
* options: expand ~ for the include optionGravatar Stefano Pigozzi2014-12-30
| | | | Fixes #1406
* demux_mkv: reduce log noiseGravatar wm42014-12-29
| | | | | | | This message can happen a lot for mkv files which index clusters in the seekhead (which is also broken non-sense, but that's a different story). Also remove a duplicate define from matroska.h.
* demux_mf: move mf.c contents to demux_mf.cGravatar wm42014-12-29
| | | | | | | | | There's no reason why parts of this demuxer would be in a separate source file. The existence of this code is already somewhat questionable anyway, so it may as well be dumped into a single file. Even stranger that demux.c included mf.h for no reason (it was an artifact from 2002 when the architecture was uncleaner).
* command: add filtered-metadata propertyGravatar wm42014-12-29
| | | | | Goes in hand with the previous commit; the main purpose is to easily show on OSD what is shown on terminal.
* player: filter tags, add --display-tags optionGravatar wm42014-12-29
| | | | | | | | This attempts to increase user-friendliness by excluding useless tags. It should be especially helpful with mp4 files, because the FFmpeg mp4 demuxer adds tons of completely useless information to the metadata. Fixes #1403.
* player: make --shuffle/--merge-files affect runtime loaded playlistsGravatar wm42014-12-29
| | | | | | | Until now, these options took effect only at program start. This could be confusing when e.g. doing "mpv list.m3u --shuffle". Make them always take effect when a playlist is loaded either via a playlist file, or with the "loadlist" command.
* ao_portaudio: remove this audio outputGravatar wm42014-12-29
| | | | | It's just completely useless. We have good native support for all 3 desktop platforms, and ao_sdl or ao_openal as fallbacks.
* ao_alsa: print channel map if setting it failsGravatar wm42014-12-29
| | | | | | | | | | This message is printed when the audio device advertised a channel map, but couldn't set it - which is probably a dmix bug (we'll never know, ALSA doesn't take bug reports). Print the requested map, so that the user (maybe) can make a connection when seeing the message and the actually used channel map, which might be less confusing. Or at least less useless.
* build: fix linking with --enable-static-buildGravatar Stefano Pigozzi2014-12-29
|
* ao: add debug log with the detected channel mapsGravatar Stefano Pigozzi2014-12-29
| | | | This could be helpful with bug reports.