summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* vo_opengl: gl_lcms: minor simplificationwm42015-05-021-2/+1
|
* vo_opengl: gl_lcms: use mp_path_join()wm42015-05-021-3/+3
| | | | | | | 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 descriptionswm42015-05-021-1/+2
|
* path: fix user path resolutionwm42015-05-011-2/+2
| | | | Forgot to add the remainder to the path.
* manpage: fix typowm42015-05-011-1/+1
|
* osxbundle: remove unnecessary config file entrywm42015-05-011-1/+0
| | | | This is done via pseudo-gui now.
* vo_opengl: gl_lcms: make ICC loading less verboseNiklas Haas2015-05-011-2/+2
| | | | | Especially with the new ICC cache rework, you get a lot of ugly output messages that don't really contain any meaningful content.
* vo_opengl: gl_lcms: replace icc-cache by icc-cache-dirNiklas Haas2015-05-013-28/+40
| | | | | | | | | | This now stores caches for multiple ICC profiles, potentially all the user has ever used. The big use case for this is for users with multiple monitors. The old logic would mandate recomputing the LUT and discarding the cache whenever dragging mpv from one screen to another. This also avoids having to save and check the ICC profile itself, since the file name already uniquely determines it.
* vo_opengl: attach target-prim/target-csp to window screenshotsNiklas Haas2015-05-011-2/+9
| | | | | | | | | This will essentially make screenshot-tag-colorspace also affect the "screenshot window" command, where possible. Unfortunately, it's completely incompatible with icc-profile, due to API limitations of ffmpeg (we can only give it an enum of well-known primaries, rather than an actual ICC profile or primaries).
* screenshots: change default directory in pseudo-gui mode to desktopwm42015-05-013-2/+5
| | | | | | | | This should take care of the endless complaints about the default location for screenshots (and will of course create new ones). If the screenshot-template is set to an absolute path, the directory won't be used. So this should be reasonably compatible.
* screenshots: prefix default template with "mpv-"wm42015-05-012-3/+3
| | | | | | So that the user realizes where they come from, or can find them at all. This was a common complaint, and this is the most lazy solution. Better suggestions for a default template are welcome.
* path: add resolving desktop path to platform-specific pathswm42015-05-014-2/+15
| | | | | | | | | win32 has a special function for this. I'm not sure about OSX - it seems ~/Desktop can be hardcoded, and the OSX GUI actually localizes the _displayed_ path in its UI. For Unix, there is not much to be done, or is there.
* path: expose platform-specific path resolverswm42015-05-012-1/+15
|
* timer: add "static" to a variablewm42015-05-011-1/+1
|
* path: refactorwm42015-05-017-68/+140
| | | | | | | | | | | | | | Somewhat less ifdeffery, higher flexibility. Now there are 3 separate config file resolvers for 3 platforms (unix, win, osx), and they can still interact with each other somewhat. For example, OSX for now uses most of Unix, but adds the OSX bundle path. This can be extended to resolve very specific platform paths, such as location of the desktop. Most of the Unix specific code moves to path-unix.c. The behavior should be the same - if not, it is likely a bug.
* screenshots: add --screenshot-directory optionwm42015-05-014-0/+21
| | | | | The plan is to use this to change the screenshot default location in pseudo-gui mode.
* vo_rpi: update renderer size on display size changes toowm42015-05-011-0/+2
| | | | | | | | (Not sure why it worked without this when I tested the previous changes.) Untested, but should be fine. This is equivalent what is done on e.g. panscan changes.
* video/out: remove VOFLAG_FLIPPINGwm42015-05-013-12/+2
| | | | | | | I think this used to be quite important, because the ancient VfW support in MPlayer used to output flipped frames. This code has been dead in mpv for quite some time (because VfW decoders were removed, and the --flip option was dropped too), so get rid of it.
* vo_opengl: refactor wayland frame skippingwm42015-05-016-31/+33
| | | | | | | | | | | Currently, the wayland backend needs extra work to avoid drawing more often than the wayland frame callback allows. (This is not ideal, but will be fixed at a later time.) Unify this with the start_frame callback added for cocoa. Some details change for the better. For example, if a frame is dropped, and a redraw is done afterwards, the actually correct frame is redrawn, instead whatever was in the textures from before the dropped frame.
* cocoa: don't accidentally drop initial screen drawingwm42015-05-015-1/+27
| | | | | | | | | | | | | | | | | | | | | | | | With --idle --force-window, or when started from the bundle, the cocoa code dropped the first frame. This resulted in a black frame on start sometimes. The reason was that the live resizing/redrawing code was invoked, which simply set skip_swap_buffer to false, blocking redrawing whatever was going to be rendered next. Normally this is done so that the following works: 1. vo_opengl draw a frame, releases GL lock 2. live resizing kicks in, redraw the frame 3. vo_opengl wants to call SwapBuffers, drawing a stale buffer overwritten by the live resizing code This is solved by setting skip_swap_buffer in 2., and querying it in 3. Fix this by resetting the skip_swap_buffer at a known good point: when vo_opengl starts drawing a new frame. The start_frame function returns bool, so that it can be merged with is_active in a following commit.
* vo: improve frame drop logic on high playback rateAvi Halachmi (:avih)2015-05-011-3/+11
| | | | | | | | | | | | | | | Commit f1746741dee6000b7fd139e7a10f72aba0674b3b changed the drop logic to have more slack (drop more frames but less frequent) to prevent drops due to timing jitter when the clip and screen have similar rates. However, if the clip has higher rate than the screen (or just higher playback rate), then that policy hurts smoothness since these "chunked drops" look worse than one frame drop at a time. This patch restores the old drop logic when the playback frame rate is higher than ~5% above the screen refresh rate, and solves this issue. Fixes #1897
* player: properly destroy client context if thread can't be createdwm42015-04-301-1/+4
| | | | Minor leak in an obscure out of memory case.
* vo_rpi: update display size on display mode switcheswm42015-04-301-0/+23
|
* vo_rpi: actually draw a black backgroundwm42015-04-301-23/+65
| | | | | | | | Also factor the display size initialization into a separate function. For some reason this seems to work, although setting the background color using this 1x1 pixel bitmap does not work. I blame the RPI beign a terrible piece of hardware with even worse drivers.
* ao_coreaudio_exclusive: check format explicitly on change notifcationwm42015-04-291-6/+11
| | | | | | | | | This should for now be equivalent; it's merely more explicit and will be required if we add PCM support. Note that the property listeners actually tell you what property exactly changed, but resolving the current listener mess would be too hard. So check for changes manually.
* ao_coreaudio_utils: log mp format with CoreAudio format descriptionwm42015-04-291-2/+4
| | | | As a consequence, it also logs whether mpv can a this format at all.
* ao_coreaudio_utils: add function for ASBD -> mp format lookupwm42015-04-292-7/+59
| | | | | | | | | | Useful with some of the following commits. ca_fill_asbd() should behave exactly as before. Instead of actually implementing the inverse function of ca_fill_asbd(), just loop over the (small) list of mpv functions and check if any mpv equivalent to a given ASBD exists.
* ao_coreaudio_utils: float is not a signed integer formatwm42015-04-291-3/+3
| | | | | | | | | kAudioFormatFlagIsSignedInteger implicates that it's only used with integer formats. The mpv internal flag on the other hand signals the presence of a sign, and this is set on float formats. Until now, this probably worked fine, because at least AudioUnit is ignoring the uncorrect flag.
* csputils: improve contrast semantics for limited range outputNiklas Haas2015-04-291-5/+9
| | | | | The previous version of this logic resulted in black crush and incorrect brightness scaling when combined with limited range (TV) output.
* csputils: apply contrast equalizer in RGBwm42015-04-291-8/+3
| | | | | | | | It's weird that this basically adjusts the contrast between luma and chroma, and not blackness. This is more in line with the behavior of libswscale, the vdpau "procamp" (which mpv doesn't use), and Xv.
* screenshots: add option to prevent 16 bit outputwm42015-04-293-13/+29
| | | | That's what it's usually about (again).
* screenshots: add option to disable JPEG 4:4:4 outputwm42015-04-293-2/+11
| | | | That's what it's usually about.
* stream: don't print reconnection message if no stream supportwm42015-04-291-3/+5
| | | | | | | This code does not know whether the stream supports reconnecting until STREAM_CTRL_RECONNECT is called. So the message should be printed after it. To avoid that reconnects that succeed on the first try go unnoticed, print a warning on success.
* x11: query ICC profile based on center of windowNiklas Haas2015-04-293-1/+10
| | | | | | | | | | Right now, the default behavior is to pick the numerically lowest screen ID that overlaps the window in any way - but this means that mpv will decide to pick an ICC profile in a pretty arbitrary way even if the window only overlaps another screen by a single pixel. The new behavior is to query it based on the center of the window instead.
* manpage: put explicit links to config file path detailswm42015-04-281-1/+4
| | | | | It seems users still have trouble finding the exact paths, especially on Windows. Maybe this helps.
* ao_coreaudio_exclusive: move code for getting original formatwm42015-04-281-6/+4
| | | | | Should be almost equivalent, unless there are streams on which this call does not work for unknown reasons.
* ao_coreaudio_utils: change audio format loggingwm42015-04-281-3/+3
| | | | Make it easier to distinguish the fields.
* ao_coreaudio_exclusive: account for additional latencywm42015-04-281-3/+10
| | | | | | | Whether this is correct is unknown. This change tripples the latency from ~15ms to ~45ms. XBMC does this, VLC does not from what I could see.
* command: let sub_reload remove the old track firstwm42015-04-281-8/+10
| | | | | | In the most simple case, this prevents the track ID from changing. One disadvantage is that if the file fails loading, the track is gone for good and would have to be re-added explicitly by the user.
* command: change the default action for rescan_external_fileswm42015-04-282-6/+6
| | | | | | | | Now the rescan_external_files command will by default reselect the audio and subtitle streams. This should be more intuitive. Client API users and Lua scripts might break, but can be fixed in a backward-compatible way by setting the mode explicitly.
* player: log track list when adding or removing external fileswm42015-04-283-5/+16
| | | | | | | | | Should help with debugging, and might be slightly more userfriendly. Note that this is called manually in multiple entry-points, instead of the functions doing the actual work (like mp_remove_track()). This is done so that exiting the player or calling the sub_reload command won't print redundant in-between states.
* player: clamp display time to known time range on seekingwm42015-04-281-0/+7
| | | | | | | | | | | | | | | During seeking, and there is momemtarily no new data available yet, the player will display the seek target as current time. Clamp this time to the known time range as implied by the start time and the duration of the file. This improves behavior especially when seeking in audio files, for which this for some reason triggers rather often. There were some users complaining about this. This makes behavior worse for files with timestamp resets, or incorrectly reported duration. (The latter is relatively common, e.g. libavformat shortcomings, or incomplete files.)
* audio: separate fallbacks for upmix and downmix caseswm42015-04-281-12/+18
| | | | | | | | We always want to prefer upmix to downmix, as long as it makes sense. Even if the upmix is not "perfect" (not just adding channels), we want to prefer the upmix. Cleanup for commit d3c7fd9d.
* osc: redo slider position translationChrisK22015-04-281-33/+55
| | | | | | Now done in one place instead of mulitple times all over the code. Fixes #1876
* json: fix UTF-8 handlingwm42015-04-281-2/+2
| | | | | | | | | | | | We escape only characters below 32, plus " and \. UTF-8 should be apssed through verbatim. Since char can be signed (and usually is), the check broke and happened to escape UTF-8 encoded bytes too. This broke UTF-8 completely. Note that we don't check for broken or invalid UTF-8, such as described both in the client API and IPC docs. Fixes #1874.
* input.conf: map L to toggle infinite loopingwm42015-04-272-0/+4
|
* ytdl_hook.lua: Change format options when vid is "off"robin2015-04-271-6/+7
| | | | | | | | This will change the format option to "bestaudio/best" instead of passing the "-x" argument to yt-dl. Prevents the video still being downloaded in the new mpv versions where the yt-dl format is set to "best" by default.
* audio: avoid downmixing in a certain special-casewm42015-04-272-3/+20
| | | | | | | | As indicated by the added test. In this case, fallback and downmix have the same score, but fallback happens to give better results. So prefer fallback over downmix. (This is probably not a correct solution.)
* ao_null: add an option for testing channel layout selectionwm42015-04-272-2/+20
|
* manpage: update mpv IRC channelsNiklas Haas2015-04-273-5/+5
| | | | | Moved to #mpv and #mpv-devel, respectively. Travis details were also updated.
* player: fix removing external tracks at runtimewm42015-04-271-1/+9
| | | | | | | | | | This could make the player crash on exit if the "sub_reload" command was used successfully. the reason was that the mpctx->sources array could have dangling pointers to the unloaded demuxers. Also fix a memory leak by actually always freeing the per-stream subtitle decoders (which are a hack to make ordered chapters behave better).
* manpage: update colormatrix property descriptionwm42015-04-272-9/+10
|
* vo_drm: zero screen buffers in reconfig function.akemi-san2015-04-271-0/+4
|
* vo_drm: add window screenshots supportMarcin Kurczewski2015-04-261-0/+3
|
* ytdl: force "best" format by defaultwm42015-04-261-1/+1
| | | | | | | | If the --ytdl-format option is not used, force the "best" format. Do this because youtube-dl is going to change its default format to one that will trigger the (partially broken) DASH support in our own code. Fixes #1867.
* vdpau: always render to cropped size at mostwm42015-04-261-0/+4
| | | | | | | | | | | | vo_opengl (or gl_hwdec_vdpau.c to be specific) calls mp_vdpau_mixer_render() with video_rect=NULL, which means to use the full surface. This is incorrect if the surface is actually cropped, as it can happen with h264. In this case, it was rendering the parts outside of the image. Fix it by making this case use the cropped size instead. Alternative fix for PR #1863.
* DOCS/client-api-changes: fix release markerwm42015-04-251-1/+1
| | | | | The release was pushed back and now actually happened; the marker became incorrect.
* demux_lavf: drop dead codewm42015-04-251-7/+1
| | | | stream.url can never be NULL, although it probably used to be.
* manpage: move --autosync descriptionwm42015-04-241-14/+14
| | | | | | This was in the "Window" section. It has absolutely nothing to do with windows. Move it to the "Miscellaneous" section instead. The "--mc" option, which has a similar function, was already there.
* player: add --window-scale optionwm42015-04-244-0/+13
| | | | Requested. Works similar to the property with the same name.
* player: flush decoder even if cover art is decodedwm42015-04-241-1/+1
| | | | | | | | | | | | | | | Fixes PNG cover art not showing up immediately (for example when running with --pause). libavformat exports embedded cover art as a single packet. For example, a PNG attachment simply contains the PNG image, which can be sent to the decoder. Normally you would expect that the PNG decoder would return 1 frame for 1 packet, without any delays. But this stopped working, and it incurs a 1 frame delay. This is perfectly legal (even if unexpected), so let our code feed the decoder packets until we get something back. (In theory feeding the packet instead of a real flush packet is still somewhat questionable.)
* player: don't show A/V desync message in non-sense situationswm42015-04-241-2/+2
| | | | | | | last_av_difference can be MP_NOPTS_VALUE under certain circumstances (like no video timestamp yet). This triggered the desync message, because fabs(MP_NOPTS_VALUE) is quite a large value. We don't want to show a message in this situation.
* w32_common: add more rounded-down frame ratesJames Ross-Gowan2015-04-251-0/+4
| | | | | Suggested by avih. This handles x/1.001 frame rates for all multiples of 24 and 30 under 144.
* w32_common: use the current monitor's refresh rateJames Ross-Gowan2015-04-251-9/+10
|
* dxva2: fix broken build with gcc 5.1Avi Halachmi (:avih)2015-04-241-0/+5
| | | | | | gpu_mempcy should to be called from code which targets SSE Signed-off-by: wm4 <wm4@nowhere>
* terminal: printf() is not signal-safewm42015-04-241-2/+1
| | | | We shouldn't call it from a signal handler.
* man: fix PDF buildMartin Herkt2015-04-241-2/+4
| | | | | | | | | | | | | | The build failed because rst2pdf apparently has problems with page breaks. In this case, the link to the ALSA upmix guide was causing a page break in an admonition block. My guess is that rst2pdf screws up when it can’t fill at least one line of text following a page break, so I worked around this by making that paragraph a little longer. Seems to do the trick. I also shortened the URL using GitHub’s service because it was causing some rather unsightly formatting in the manpage output. Maybe we should just build HTML instead of a PDF.
* DOCS/mplayer-changes: Eleborate on joystick inputrobin007bond2015-04-231-0/+2
| | | | | | | | | | Since joystick support was removed and is a difference from mplayer, it should be included in the document with the mplayer changes. It will help new users who were using mplayer's joystick support to seek alternatives when switching to mpv. It will also be helpful for people that had problems with the joystick support in mplayer (for example, by incorrectly recognizing other input devices as joystick) to know that those problems won't persist in mpv.
* osc: add nil check for element.eventresponderwm42015-04-231-1/+1
| | |