aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* cocoa: remove an unused parameterGravatar wm42015-05-06
|
* ao_coreaudio_exclusive: check new format before waiting for changeGravatar wm42015-05-06
| | | | | It seems if the format was already set, setting the same format will not cause a property change.
* ao_coreaudio_exclusive: use atomics instead of volatileGravatar wm42015-05-06
| | | | | | | | | | | volatile barely means anything. The polling is kind of bad too, but relatively harmless as device opening/closing is a rare event, and the format change is not expected to take long. Remove the pointless talloc call too (must have been a leftover from previous refactoring).
* ao_coreaudio_exclusive: rename "digital" -> "compressed"Gravatar wm42015-05-06
| | | | PCM is digital too.
* ao_coreaudio_exclusive: explicitly check for spdif formatsGravatar wm42015-05-06
|
* ao_coreaudio_exclusive: merge init_digital() functionGravatar wm42015-05-06
| | | | | | No reason to keep them separate. It's an artifact from the old ao_coreaudio.c, which kept usage of two different APIs in the same file. Removes a forward reference too.
* cocoa: lock cocoa main thread on uninitGravatar wm42015-05-06
| | | | | | | | | | | | | | | | | | This should fix some crashes due to dangling pointers. The problem was that with_cocoa_lock_on_main_thread() is asynchronous. It will not wait until it is finished. In the uninit case, this means the VO could be deallocated and destroyed while cocoa was still running uninit code. So simply wait until it is done by using dispatch_sync(). There were concerns that this could introduce a deadlock by the main thread trying to wait for something on the VO thread. But from what I can see, this never happens, and even if it does, it would crash anyway since the VO is already gone. One remaining worry is the video_resize_redraw_callback. From what I can see, it still can mess things up, and will need a more elaborate fix.
* ao_coreaudio_utils: decide formats by comparing raw bitsGravatar wm42015-05-05
| | | | | | | | | | | | | | | | Instead of trying to use af_format_conversion_score() (which tries to be all kinds of clever), just compare the raw bits as a quality measure. Do this because otherwise, weird formats like padded 24 bit formats will be excluded, even though they might be the highest precision formats for some hardware. This means that for now, the user would have to check whether the format is usable at all before calling ca_asbd_is_better(). But since this is currently only used for ao_coreaudio.c and for the physical format, it doesn't matter. If coreaudio-exclusive should get PCM support, the best would be to revert this change, and to add support for 24 bit formats directly.
* ao_coreaudio: log considered physical formatsGravatar wm42015-05-05
|
* ao_coreaudio: restore old physical format if format was changedGravatar wm42015-05-05
|
* af: don't attempt to remove last filter for spdif filter removalGravatar wm42015-05-05
| | | | | | | | | | | | | | | Some time ago, a mechanism was added for automatically removing PCM-only filters if the input format is spdif. This could cause an infinite loop if the AO did not support spdif, but was falling back to some PCM format. Then this code tried to remove the last filter, which is a dummy filter for receiving and queuing filter output. af_remove() simply fails gracefully in this case, so this happens over and over again. Fix by explicitly checking whether the filter to remove is a dummy filter. (af_remove() also fails only if the dummy filters are attempted to be removed - checking this directly is simpler.)
* audio: minor cosmeticsGravatar wm42015-05-05
| | | | | These ( ) were probably not removed when the format constants were changed from defines to an enum.
* ao_coreaudio: move channel mapping code to a separate fileGravatar wm42015-05-05
| | | | | | | | | | Move all of the channel map retrieval/negotiation code to a separate file. This will (probably) be helpful when extending ao_coreaudio_exclusive.c. Nothing else changes, other than some minor cosmetics and renaming, and changing some details for decoupling it from the ao_coreaudio.c internals.
* ao_coreaudio_utils: don't require talloc for fourcc_repr()Gravatar wm42015-05-05
| | | | | Instead, apply a trick to make the caller allocate enough space on the stack.
* ao_coreaudio_utils: unbreak default device selectionGravatar wm42015-05-05
| | | | | | It appears this is the reason coreaudio-exclusive does not work without explicitly specifying a device, even if the default device maps to something passthrough-capable.
* ao_coreaudio_exclusive: fix latency calculation non-senseGravatar wm42015-05-05
| | | | Didn't use the properties it was supposed to use.
* ao_coreaudio_utils: refine format selectionGravatar wm42015-05-05
| | | | | | | | | | | Instead of always picking a somehow better format over the previous one, select a format that is equal to or better the requested format, but is also reasonably close. Drop the mFormatID comparison - checking the sample format handles this already. Make sure to exclude channel counts that can't be used.
* ao_coreaudio: change physical format before channel negotiationGravatar wm42015-05-05
| | | | | | If for example the physical format is set to stereo, the reported multichannel layout will actually be stereo. It fixes itself only after the physical format is changed.
* vo_opengl: change default FBO formatGravatar wm42015-05-05
| | | | | | | | Reduces (but likely does not remove) the danger of rounding intermediate values down to 8 bit. This is important for cscale, or any other processing that might store raw YUV values in framebuffers. Fixes #1918.
* manpage: fix typoGravatar wm42015-05-05
|
* ao_coreaudio: add an option for changing the physical formatGravatar wm42015-05-05
| | | | | | | | | | | | ao_coreaudio uses AudioUnit - the OSX software mixer. In theory, it supports multichannel audio just fine. But in practice, this might be disabled by default, and the user is supposed to select a multichannel base format in the "Audio MIDI Setup" utility. This option attempts to change this setting automatically. Some possible disadvantages and caveats are listed in the manpage additions. It is off by default, since changing this might be rather bad behavior for a normal application.
* ao_coreaudio_utils: add a format negotiation helper functionGravatar wm42015-05-05
|
* af_lavrresample: remove dead undefsGravatar wm42015-05-05
|
* ipc: silence some common info messagesGravatar wm42015-05-05
| | | | | | They are not really interesting. At least one user complained about the noise resulting from use with shell scripts, which connect and disconnect immediately.
* ao_coreaudio: support padded channel layoutsGravatar wm42015-05-05
| | | | | | | If for example the audio settings are set to 5.1 output, but the hardware does 8 channels natively (HDMI), the reported channel layout will have 2 dummy channels. To avoid falling back to stereo, we have to write audio in this format to the device.
* audio: introduce support for padding channelsGravatar wm42015-05-05
| | | | | | | | | | | | | | | | | | | Some audio APIs explicitly require you to add dummy channels. These are not rendered, and only exist for the sake of the audio API or hardware strangeness. At least ALSA, Sndio, and CoreAudio seem to have them. This commit is preparation for using them with ao_coreaudio. The result is a bit messy. libavresample/libswresample don't have good API for this; avresample_set_channel_mapping() is pretty useless. Although in theory you can use it to add and remove channels, you can't set the channel counts. So we do the ordering ourselves by making sure the audio data is planar, and by swapping the plane pointers. This requires lots of messiness to get the conversions in place. Also, the input reordering is still done with the "old" method, and doesn't support padded channels - hopefully this will never be needed. (I tried to come up with cleaner solutions, but compared to my other attempts, the final commit is not that bad.)
* audio: introduce mp_audio readonly bitGravatar wm42015-05-04
| | | | Convenience for the following commit.
* audio: chmap: explicitly drop channels not supported by lavcGravatar wm42015-05-04
| | | | Basically as before, but avoid undefined behavior.
* audio: drop unused functionGravatar wm42015-05-04
|
* ao_coreaudio: fix out of bounds accessGravatar wm42015-05-04
| | | | | | ca_label_to_mp_speaker_id() checked whether the last entry was >= 0, but actually this condition was never true, and MP_SPEAKER_ID_UNKNOWN0 is not negative.
* subprocess-win: use the correct pipe namespaceGravatar James Ross-Gowan2015-05-04
| | | | | | This was a mistake, it should definitely be using the device namespace rather than the file namespace. As it says in the docs, all pipe names must start with \\.\pipe\
* sws_utils: re-use avcolorspace for sws colorspacesGravatar Niklas Haas2015-05-04
| | | | | This lets us avoid having to maintain two separate copies of the colorspace mapping functions.
* win32: fix desktop directoryGravatar wm42015-05-03
| | | | The folder argument wasn't used, so it always returned the APPDATA dir.
* vo_opengl: gl_lcms: fix cache dir creation with path expansionGravatar wm42015-05-03
| | | | | | Path expansion (like "~/dir/" in config file) was used inconsistently, so the cache directory wasn't always created correctly. Fix this by moving the path expansion from load_file() to its callers.
* path: start special espansion with ~~name instead of ~nameGravatar wm42015-05-03
| | | | | | | Since commit 7381db60, strings like "~desktop/" were expanded as platform-specific paths by mpv. Apparently this similarity to standard Unix shell expansion caused confusion, so change it to "~~desktop/". The shell doesn't expand this, so it should be better.
* options: fix typo in variable nameGravatar wm42015-05-03
|
* options: remove --leak-reportGravatar wm42015-05-02
| | | | Use the environment variable instead.
* win32: move platform specifics to osdepGravatar wm42015-05-02
| | | | | This will probably disable this code for Cygwin. I don't know if this matters, since Cygwin should strictly behave like a Unix anyway.
* build: move main-fn files to osdepGravatar wm42015-05-02
| | | | | | And split the Cocoa and Unix cases. Simplify the Cocoa case slightly by calling mpv_main directly, instead of passing a function pointer. Also add a comment explaining why Cocoa needs a special case at all.
* cocoa: always compile OSX application code with cocoaGravatar wm42015-05-02
| | | | | | | | | | | | | | This unbreaks compiling command line player and libmpv at the same time. The problem was that doing so silently disabled the OSX application thing - but the command line player can not use the vo_opengl Cocoa backend without it. The OSX application code is basically dead in libmpv, but it's not that much code anyway. If you want a mpv binary that does not create an OSX application singleton (and creates a menu etc.), you must disable cocoa completely, as cocoa can't be used anyway in this case.
* player: handle hotplug events in idle mode tooGravatar wm42015-05-02
|
* screenshots: create screenshot dirGravatar wm42015-05-02
| | | | Minor user convenience.
* vo_opengl: gl_lcms: create cache dirGravatar wm42015-05-02
| | | | Minor user convenience.
* vo_opengl: gl_lcms: make sure win32 unicode fopen() wrapper is enabledGravatar wm42015-05-02
|
* vo_opengl: gl_lcms: minor simplificationGravatar wm42015-05-02
|
* vo_opengl: gl_lcms: use mp_path_join()Gravatar wm42015-05-02
| | | | | | | Maybe this fixes the win32 problems a user had, or maybe not. Also, check if cache_dir is set at all. An empty string should be equivalent to "unset".
* path: update path descriptionsGravatar wm42015-05-02
|
* path: fix user path resolutionGravatar wm42015-05-01
| | | | Forgot to add the remainder to the path.
* manpage: fix typoGravatar wm42015-05-01
|
* osxbundle: remove unnecessary config file entryGravatar wm42015-05-01
| | | | This is done via pseudo-gui now.