summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* ao: make better use of atomicswm42015-05-153-14/+12
| | | | | | | The main reason for this was compatibility; but some associated problems have been solved in the previous commit. (cherry picked from commit ca9964a4fb6b1faa0155da43b3c815db0075e2d5)
* atomics: add atomic_fetch_and/atomic_fetch_orwm42015-05-151-7/+20
| | | | | | | | | | | | As usual, we prefer plain C11 names and semantics, and have to emulate them if C11 atomics are not available. For the non-atomic fallback (which is just there to make code compile in situations the atomic property is not overly important), we require a gross hack to make the generic macros work without using compiler- specific extensions. (cherry picked from commit cc24ec5b3cf7709bbd16a9505a6acc8156f63af1)
* cocoa: add missing break statements in switchwm42015-05-151-0/+2
| | | | | | | The first one (for VOCTRL_GET_DISPLAY_FPS) could have led to undefined behavior if the FPS was unknown. The second is for general symmetry. (cherry picked from commit 10149f68a5c6cb9783ed7595998985d7e586e871)
* DOCS/man/options.rst: Remove trailing whitespacesrrooij2015-05-151-2/+2
| | | | (cherry picked from commit 47ee67b8a24d2acc40b959df7d4ceb98c6e3c1c8)
* DOCS/man/opions.rst: Elaborate on --no-videorrooij2015-05-151-0/+4
| | | | | | | When --no-video is set, the ytdl-format is set to "bestaudio/best". This wasn't documented in the man page yet. (cherry picked from commit 5d7468a06e5ac72f431fdc4e006d335fdb1566b1)
* ytdl_hook: remove tabswm42015-05-151-5/+5
| | | | | | We don't allow tabs in normal source code. (cherry picked from commit 9438f811ae5713e59873931d167c8c8472dc12db)
* old-configure: bump libbluray versionwm42015-05-151-1/+1
| | | | | | Fixes #1927. (cherry picked from commit 1f389b05fcb252639bbcf0c340c2e5db0b3b5026)
* player: avoid undefined behavior when resumign DVD/BD playbackwm42015-05-151-3/+3
| | | | | | These device options can be NULL, and NULL can't be passed for %s. (cherry picked from commit 34ee78f2cba0510cc37162e89cbdc9d4a9514f92)
* vo_drm: allow changing video rectangle settingswm42015-05-091-0/+6
| | | | | | | | | | | Now among other things panscan can be changed during playback. Unfortunately, it flickers. The issue is that reconfig() clears the framebuffer. Removing the clearing shows that the "unused" parts of the picture are not cleared - even though OSD could render there. As such, this is a separate issue. (cherry picked from commit 56310605690288f44c49363413e68f7c73325ed1)
* vo_drm: don't mutate the current frame when clamping for panscanwm42015-05-091-3/+4
| | | | | | | | When running with --panscan=1, this could crash - because the current frame was reduced in size each time the image was redrawn, which would result in a failed assertion the second time it's drawn. (cherry picked from commit 859ddc99064357c752c6f6dfa475cb96430531d2)
* input: filter out redundant mp_input_set_mouse_pos() callswm42015-05-091-1/+3
| | | | | | Prevents the OSC from showing up on start on Cocoa. (cherry picked from commit 51120c9c7fc23bc7009dfddd2132a8e8ef9e466e)
* audio: simplify furtherwm42015-05-093-28/+11
| | | | | | | | Drop mp_chmap_diff() (which is unused too now), and implement mp_chmap_diffn() in a slightly simpler way. (Too bad there is no standard function for counting set bits.) (cherry picked from commit 00130651dac758f90bf98306a9d1e569ed4155ca)
* audio: remove mp_chmap_contains()wm42015-05-093-36/+0
| | | | | | It's unsued now. (cherry picked from commit 8d5924f2c9c7d80b45cd68b44cb9c74e7b0b5a8c)
* ao: log reordered versions of channel mapswm42015-05-091-3/+10
| | | | | | Useful for debugging cases when no standard orders are used. (cherry picked from commit 8b7035c8ff15f14c17b6c019e951226b9eeaca02)
* audio: redo channel map fallback selectionwm42015-05-092-60/+34
| | | | | | | | | | | | | | | | | | | | | | Instead of somehow having 4 different cases with each their own weight, do it with a single function that decides which channel layout is the better fallback. This is simpler, and also introduces new (fixed) semantics. The new test added to test/chmap_sel.c actually works now. This is a mixed case with no perfect upmix or downmix, but the better choice is the one which loses the least channels from the original layout. One test also changes. If the input is 7.1(wide-side), and the available layouts are 7.1 and 5.1(side), the latter is now chosen instead of the former. This makes sense: both layouts contain 6 out of 8 channels from the original layout, but the 5.1(side) one is smaller. This follows the general logic. The 7.1 layout has FLC/RLC speakers instead of BL/BR, and judging by the names, "front left center" is completely different from "back left". If these should be exchangeable, a separate exception would have to be added. (cherry picked from commit 3560a50029e160f0606d0cdc6aa1da662bbcace8)
* test: simplify chmap_sel testswm42015-05-091-121/+44
| | | | (cherry picked from commit 5142b0e3f3e2cefc5564122db5a0c4a31bc805b4)
* audio: remove UNKNOWN pseudo speakerswm42015-05-093-14/+9
| | | | | | | | Reuse MP_SPEAKER_ID_NA for this. If all mp_chmap entries are set to NA, the channel layout has special "unknown channel layout" semantics, which are used to deal with some corner cases. (cherry picked from commit 55e777f10b3e241f2634b471e482bab230773ce0)
* audio: define only a single NA speaker IDwm42015-05-095-36/+17
| | | | | | | Remove the requirement from mp_chmap that speaker entries must be unique. Use this to get rid of all the redundant NA speaker IDs. (cherry picked from commit b91b4944bd7ddf6fef4c4254d457117017292c0a)
* audio: add chmap utility functionwm42015-05-092-0/+10
| | | | (cherry picked from commit d32b71d52e9a45c141d2bd132189db68613ab0fb)
* ao_alsa: log requested numbers of channels if ALSA rejects themwm42015-05-091-2/+3
| | | | (cherry picked from commit ad9bce2a5ca62f6a64f65fe79ae170edc0e05da4)
* Revert "csputils: apply contrast equalizer in RGB"Diogo Franco (Kovensky)2015-05-081-0/+8
| | | | | | This reverts commit af930e2a2e3f33aa11a0fea3d6c3e3c7344b21fb. Better avoid big behavior changes within a release series.
* Update RELEASE_NOTESDiogo Franco (Kovensky)2015-05-081-0/+33
|
* audio: fix messed up assert()wm42015-05-081-1/+1
| | | | | | This made no sense and always evaluated to true. (cherry picked from commit 7b09654c33ca81aede475235121ebc938791dc80)
* m_config: make m_config_set_profile() use a namewm42015-05-083-13/+18
| | | | | | Is simpler and avoids exposing profile structs to a degree. (cherry picked from commit 036a49478ff6cc19abfa06b7807bd4653eb9ce33)
* DOCS: add a link to LIRC wiki entrywm42015-05-081-0/+1
| | | | (cherry picked from commit b12ca2b980f8c5c620b42c2c034bb27a824cc112)
* ao_coreaudio_utils: don't list some formats as "unusable"wm42015-05-081-1/+1
| | | | | | | While mpv has no internal equivalent representation, they can still be used as physical CoreAudio formats. Thus this label is confusing. (cherry picked from commit 1bcb82ec93cc3e037df2dd4e2216a473fe87baf9)
* ytdl_hook: Escape EDL URLsChrisK22015-05-081-1/+3
| | | | | | | Should prevent the EDL parser from tripping over = and , in the URL. (cherry picked from commit 6a0a67034d925a640a9239754c5f06e6e689c27d)
* ao_sndio: add notice about padding channelswm42015-05-071-1/+3
| | | | | | (I won't do this, but someone else seeing this might.) (cherry picked from commit cd5ab98ff992217abfd0234601c21eb0fe0dbc19)
* ao_alsa: use new padding channels supportwm42015-05-071-21/+26
| | | | | | | | | | | | | | Sometimes, ALSA will return channel layouts with padded channels (NA speakers). Use them instead of failing. This still includes the old "braindeath" code to retry with a layout without NA channels. This might be helpful for performance, and also the padded channel layout string looks confusing. To be fair, I have not encountered a case yet which would really need this, and for which the old "braindeath" code did not fix it. (cherry picked from commit 85fc6b2a0569b24c5652f600d90d7a131b61eb07)
* ao_alsa: move ALSA -> mp channel map to a functionwm42015-05-071-11/+18
| | | | | | | One side effect is that the warning about too many channels goes away, and is replaced with printing the ALSA channel map as "unknown". (cherry picked from commit d577872a28c9729e987566530905bde238af8109)
* manpage: do not use deprecated syntax in examplewm42015-05-071-1/+1
| | | | (cherry picked from commit 9434aa75b2613b1d00ad713f5db7a6e4f639792c)
* cocoa: remove an unused parameterwm42015-05-073-3/+3
| | | | (cherry picked from commit f58d3591d9c192c9d68a76a0a4ffddd7516c0ef2)
* ao_coreaudio_exclusive: check new format before waiting for changewm42015-05-071-12/+13
| | | | | | | It seems if the format was already set, setting the same format will not cause a property change. (cherry picked from commit 0ae0e90eb5348c58d5b4f13fe0792199c460a4b6)
* ao_coreaudio_exclusive: use atomics instead of volatilewm42015-05-071-19/+16
| | | | | | | | | | | | | 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). (cherry picked from commit 4444ff48fa578461688fe9feb9ebcd996cd64506)
* ao_coreaudio_exclusive: rename "digital" -> "compressed"wm42015-05-071-22/+20
| | | | | | PCM is digital too. (cherry picked from commit 028739932bf4e2d32439b3756811a2b06cc81128)
* ao_coreaudio_exclusive: explicitly check for spdif formatswm42015-05-071-8/+5
| | | | (cherry picked from commit 1e1045b13ea4acbbd77dd52c4e0599f1517e6ac3)
* ao_coreaudio_exclusive: merge init_digital() functionwm42015-05-071-15/+3
| | | | | | | | 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. (cherry picked from commit 32bc61ae07fe441c327b4aa96dd80fa4771fd569)
* cocoa: lock cocoa main thread on uninitwm42015-05-071-1/+9
| | | | | | | | | | | | | | | | | | | | 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. (cherry picked from commit e7777563018fc711c873ba9480744f0961786077)
* ao_coreaudio_utils: decide formats by comparing raw bitswm42015-05-071-5/+6
| | | | | | | | | | | | | | | | | | 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. (cherry picked from commit 4ffcf2531bb525c19c3b6df75ecb27c5cffbdd28)
* af: don't attempt to remove last filter for spdif filter removalwm42015-05-071-1/+1
| | | | | | | | | | | | | | | | | 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.) (cherry picked from commit 0025030cef757327769982333f9105aa510c393d)
* audio: minor cosmeticswm42015-05-071-16/+16
| | | | | | | These ( ) were probably not removed when the format constants were changed from defines to an enum. (cherry picked from commit d76f9a484ea7795655637eb0ddc8655aa4fff345)
* ao_coreaudio_utils: don't require talloc for fourcc_repr()wm42015-05-073-17/+13
| | | | | | | Instead, apply a trick to make the caller allocate enough space on the stack. (cherry picked from commit 399267393bb96710cde53c2fc7563f55cc32deb8)
* ao_coreaudio_utils: unbreak default device selectionwm42015-05-071-4/+3
| | | | | | | | 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. (cherry picked from commit 7a5f5a8adf5921ed8fcee29d76113d9a7f018974)
* ao_coreaudio_exclusive: fix latency calculation non-sensewm42015-05-071-1/+1
| | | | | | Didn't use the properties it was supposed to use. (cherry picked from commit bbedceb467033b239b35ee9b2db963a93d8a57c9)
* ao_coreaudio_utils: refine format selectionwm42015-05-071-19/+25
| | | | | | | | | | | | | 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. (cherry picked from commit fd6809f98a546c2abe87b378bb1fe0bbec40a4ef)
* vo_opengl: change default FBO formatwm42015-05-072-3/+3
| | | | | | | | | | 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. (cherry picked from commit cf210c4ffc6d008dd2bdd7c5d4d031ecdcf05fb7)
* ao_coreaudio_utils: add a format negotiation helper functionwm42015-05-072-0/+37
| | | | (cherry picked from commit 305a85cc9aa169a75317acb55e539f49d420f629)
* ao_coreaudio: support padded channel layoutswm42015-05-071-2/+6
| | | | | | | | | 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. (cherry picked from commit 4d8a7e03944155bf07ba9a775cf9554bb1c76f0f)
* audio: introduce support for padding channelswm42015-05-073-56/+142
| | | | | | | | | | | | | | | | | | | | | 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.) (cherry picked from commit 06050aed9906b784159ad03e86e13348c4d9fa47)
* audio: introduce mp_audio readonly bitwm42015-05-072-1/+3
| | | | | | Convenience for the following commit. (cherry picked from commit 1b0b094ca2c25ad162f8f8c84ebebef9a963552e)
* audio: chmap: explicitly drop channels not supported by lavcwm42015-05-071-2/+5
| | | | | | Basically as before, but avoid undefined behavior. (cherry picked from commit 937c8e513f7b948fff0746e80ecf3d27d7007abe)
* audio: drop unused functionwm42015-05-072-10/+0
| | | | (cherry picked from commit 548cd826c24b7f56b597785f0b83a47cbf4a0465)
* ao_coreaudio: fix out of bounds accesswm42015-05-071-0/+2
| | | | | | | | 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. (cherry picked from commit eead97f10303436b8da1c75dcdaa79efaba5b015)
* subprocess-win: use the correct pipe namespaceJames Ross-Gowan2015-05-071-1/+1
| | | | | | | | 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\ (cherry picked from commit b6381a0ee383acb1ee7a9562b166c18066747b7f)
* sws_utils: re-use avcolorspace for sws colorspacesNiklas Haas2015-05-071-6/+3
| | | | | | | This lets us avoid having to maintain two separate copies of the colorspace mapping functions. (cherry picked from commit 08d3ef3d9e94609d1fc6c4c0892b17945bc7d0f8)
* win32: fix desktop directorywm42015-05-071-1/+1
| | | | | | The folder argument wasn't used, so it always returned the APPDATA dir. (cherry picked from commit a2da53027b3fcb232121c38e79d7daae651f099d)
* win32: move platform specifics to osdepwm42015-05-072-25/+28
| | | | | | | This will probably disable this code for Cygwin. I don't know if this matters, since Cygwin should strictly behave like a Unix anyway. (cherry picked from commit 3508a3fbd12b93e0414acb7996417dd91f369170)
* build: move main-fn files to osdepwm42015-05-0711-29/+31
| | | | | | | | 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. (cherry picked from commit 1e7831070f6ae1af0a1a29b0d680ef2907bf8cf6)
* cocoa: always compile OSX application code with cocoawm42015-05-077-26/+20
| | | | | | | | | | | | | | | | 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. (cherry picked from commit 19a5b20752ecc7465cf17781f908e12bf4ca136d)
* player: handle hotplug events in idle mode toowm42015-05-071-0/+1
| | | | (cherry picked from commit d8e92322fa6eee44bb2713a202b84dfd32cf7ea1)
* vo_opengl: gl_lcms: make sure win32 unicode fopen() wrapper is enabledwm42015-05-071-0/+2
| | | | (cherry picked from commit dce941b99c9e098b8471528908d1509ab040b7a4)
* timer: add "static" to a variablewm42015-05-071-1/+1
| | | | (cherry picked from commit 6814830b9a7740e789a6965f6e4f8da4ba67dd42)
* path: refactorwm42015-05-077-68/+140
| | | | | | | | | |