aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
...
* vo_opengl: properly respect dither option if dumb mode is usedGravatar wm42017-03-20
| | | | | | | When dumb mode is used (the "simple" rendering path), respect the dither options. Options should never be ignored (except in GLESv2 mode); either they should be respected in dumb mode, or they should disable dumb mode. In this case, the former applies.
* vo_opengl: context_vdpau: resize output surfaces lazilyGravatar wm42017-03-19
| | | | | | | This actually fixes the dreaded errors during resizing. It works pretty much like before, except each surface is reallocated before it's used. It implies surfaces with the old size remain in the presentation queue and will be displayed.
* vo_opengl: context_vdpau: minor fixesGravatar wm42017-03-19
| | | | | | | | | | | | | | | | | | Don't assume 0 is an invalid object handle. vdpau with its weird API design makes all objects indexes, with 0 being a perfectly valid and common value. You need to use VDP_INVALID_HANDLE, which is not 0. Don't crash if init fails at vdpau initialization. It's because mp_vdpau_destroy(NULL) crashes. Simplify it. Destroy output surface backed FBO before output surface. Also, strictly bookkeep the map/unmap calls (and unmap surfaces before destroying the FBO/texture). I can't see a change in the weird errors when resizing the window, but I guess it's slightly more correct. Add the GL_WRITE_DISCARD_NV symbol to header_fixes.h, because we might fail compilation with headers that do not contain the vdpau extension (well, probably doesn't matter).
* vo_opengl: fix some undefined behaviorGravatar wm42017-03-18
| | | | | | | The gl_timer_last_us() function could access samples[-1]. Fix by coercing to unsigned, so the % will put it into index [0,max). The real value returned in this corner case doesn't mean too much, I guess.
* vo_opengl: add experimental vdpauglx backendGravatar wm42017-03-18
| | | | | | | | | | | | | | | | As the manpage says, this has no value other than adding bugs. It uses code based on context_x11.c, and basically does very stripped down context creation (no alpha support etc.). It uses vdpau for display, and maps vdpau output surfaces as FBOs to render into them. This might be good to experiment with asynchronous presentation. For now, it presents synchronously, with a 4 frame delay (which should whack off A/V sync). The forced 4 frame delay is probably also why interaction feels slower. There are some weird vdpau errors on resizing and uninit. No idea what causes them.
* vo_opengl: add log field to MGLContextGravatar wm42017-03-18
| | | | | | Should have done this 1000 years ago. Now GL backends can use mp_log macros directly on the MPGLContext, instead of doing stupid things like for example MP_WARN(ctx->vo, ...).
* screenshot: change details of --screenshot-format handlingGravatar wm42017-03-18
| | | | | | | | | | | | | | | | This is just a pointless refactor with the only goal of making image_writer_opts.format a number. The pointless part of it is that instead of using some sort of arbitrary ID (in place of a file extension string), we use a AV_CODEC_ID_. There was also some idea of falling back to the libavcodec MJPEG encoder if mpv was not linked against libjpeg, but this fails. libavcodec insist on having AV_PIX_FMT_YUVJ420P, which we pretend does not exist, and which we always map to AV_PIX_FMT_YUV420P (without the J indicating full range), so encoder init fails. This is pretty dumb, but whatever. The not-caring factor is raised by the fact that we don't know that we should convert to full range, because encoders have no proper way to signal this. (Be reminded that AV_PIX_FMT_YUVJ420P is deprecated.)
* image_writer: remove useless formatsGravatar wm42017-03-18
| | | | Nobody cares about those.
* ao_jack: update latency on buffer_size/graph changeGravatar Cheng Sun2017-03-18
| | | | | | | The buffer_size may be updated before the process callback is called for the first time. Or, the connection graph could change, which changes the latency of the pipeline after mpv's output. Ensure we keep on top of these changes by registering callbacks to update our latency estimation.
* screenshot: minor simplificationGravatar wm42017-03-18
| | | | | | | | This also will set image=NULL, if the video frame is marked as hwaccel, and could not be copied to normal RAM. This will probably change the error message (due to screenshot_get() returning NULL, instead of making image conversion fail at a later point), but the behavior is the same anyway.
* manpage: slightly improve screenshot-raw descriptionGravatar wm42017-03-18
|
* wayland_common: organize and correctly map mouse buttonsGravatar Rostislav Pehlivanov2017-03-17
| | | | | | | The function tried to do something clever but ignored the fact that the middle button followed the left button rather than the right. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
* client API: clarify what stream_cb callbacks can doGravatar wm42017-03-17
| | | | See #4227.
* manpage: minor clarification to screenshot command argument handlingGravatar wm42017-03-15
|
* stream_dvd: fix subs/audio detection on DVDs containing multi-PGC titlesGravatar qrwyeui2017-03-15
| | | | | | | | | | On some DVDs, title number is not necessarily the same as the (first) PGC number. (Most often they are equal, since there's usually exactly one PGC per title, which is likely why this issue wasn't noticed before.) When searching for audio/subtitle metadata, we want to look at the actual PGC we're about to play. See discussion in issue #4235. Signed-off-by: wm4 <wm4@nowhere>
* sd_ass: disable --sub-fix-timing if sub style override is fully disabledGravatar wm42017-03-15
| | | | | | | | | This means the subtitles will show as "intended". For some weird reason, --sub-ass-style-override is the option that controls style override, which implies it's specific to ASS. While that seems weird and doesn't always reflect reality, I don't care about that now.
* build: disable optical media libs by default (DVD/BD/CD)Gravatar wm42017-03-15
| | | | Pure garbage.
* vdpau: warn on HEVC due to completely broken nVidia driversGravatar wm42017-03-14
| | | | | | I guess that's the full extent I still care about nVidia's broken garbage. In theory, we could always force the video mixer (which is the only method getting the video data that works), but why bother.
* ao_alsa: fix device filtering, add another exceptionGravatar wm42017-03-14
| | | | | | | The "return false;" was debugging code. In addition, filter a plain "default", because it's not going to do anything interesting and just looks ugly.
* player: specifically log audio EOF tooGravatar wm42017-03-14
|
* ao_alsa: filter fewer devicesGravatar wm42017-03-14
| | | | | | | | | | | | It appears some device can be missing if we filter too many. In particular, I've seen devices starting with "front" and "sysdefault" being mapped to different hardware. I conclude that it's not sane trying to present a nice device list to users in ALSA. It's fucked. (Although kodi appears to attempt some intense "beautification" of the device list, which includes parsing parameters from the device name and such. Well, let's not.) No other audio API requires such ridiculous acrobatics.
* ao_alsa: POLLERR can be set even if the device is not lostGravatar wm42017-03-14
| | | | | | | | | | Apparently POLLERR can be set if poll is called while the device is in the SND_PCM_STATE_PREPARED state. So assume that we can simply call snd_pcm_status() to check whether the error is because the device went away (i.e. we expect it to return ENODEV if this happened). This avoids sporadic device lost warnings and AO reloads. The actual device lost case is untested.
* Copyright: version.sh is GPLGravatar wm42017-03-13
|
* README.md: update comments about Windows hwdec/GLGravatar wm42017-03-13
| | | | | | We have direct rendering with hardware decoding now (so no SSE4 for memcpy from GPU memory required), and also OpenGL drivers are not so much of a problem anymore with ANGLE being default.
* cocoa: set background of the title bar from black to whiteGravatar Akemi2017-03-09
| | | | | | | | | | | | due to the see-through nature of the title bar and our standard black window background, the title bar appears dark grey opposed to the expected light grey. we change the window background to white but at the same time set the background of the enclosed view to black. that way the title bar has a white background and the background of our video stays black in all cases. this prevents white flashing in some cases when the video is resized with too heavy render settings.
* osx: add key mappings for previous and next Media KeysGravatar Akemi2017-03-09
| | | | Fixes #4204
* cocoa: fix autofit options on HiDPI resolutions without HiDPI scalingGravatar Akemi2017-03-09
| | | | Fixes #4194
* vd_lavc: disable videotoolbox hack with newer ffmpeg versionsGravatar wm42017-03-07
| | | | | The hack becomes unnecessary with newer versions, but it's still needed for older ones.
* manpage: adjust description of libva deinterlacer ref direction messGravatar wm42017-03-07
| | | | | | | | | | Relevant: https://cgit.freedesktop.org/mesa/mesa/commit/?id=0798fddb5000f2b1edffc693ec65236a680ce61f Eventually I'll just remove this option. But it's probably good to leave it for while, possibly for letting Mesa VA driver users test and confirm this.
* dvb: add support for DVB-T2Gravatar ivan-832017-03-06
| | | | | | | | | | | | | | | | | | | | | | | | Probably does much more: + add support DVB-T2 * DVB params set to AUTO by default * MAX_CARDS: 4 -> 16 * DMX_SET_BUFFER_SIZE: 64kb -> 256kb + add DTV_CLEAR call before tune + add logic from https://github.com/olifre/mpv/commits/dvb-mixed-api-scan * rename type to delsys * single playlist per adapter * card -> adapter * fix channels order in playlist * update internal api * auto fallback to old DVB API on tune * fix DELSYS_SUPP_MASK value * remove tone - unused * add channel mem zeroize in config parser + add code from libdvbv5 for detect delivery systems * SYS_DVBC_ANNEX_AC replaced to SYS_DVBC_ANNEX_A + SYS_DVBC_ANNEX_C Signed-off-by: wm4 <wm4@nowhere>
* TOOLS/zsh.pl: don't leak regex match variablesGravatar Philip Sequeira2017-03-06
|
* options: add M_OPT_FILE to some more file optionsGravatar Philip Sequeira2017-03-06
| | | | (Helps shell completion.)
* wscript: substitute cplugins linker flag for macOS compatiblityGravatar Alexis Nootens2017-03-06
| | | | | | | | | | For an unknown reason, '-Wl -export-dynamic' doesn't work anymore on the last macOS build (10.12.3 with Apple LLVM 8.0.0) so forcing cplugins is useless because the check fails. Replacing the linker option with its substitute '-rdynamic' do the trick. The syms module from waf still works as expected and only the symbols specified in mpv.def are exported.
* filter_kernels: Keep f.radius in terms of dest/filter coords.Gravatar Nicholas J. Kain2017-03-06
| | | | | | | | | | | | | The existing code modifies f.radius so that it is in terms of the filter sample radius (in the source coordinate space) and has some small errors because of this behavior. This commit changes f.radius so that it is always in terms of the filter function radius (in the destination coordinate space). The sample radius can always be derived by multiplying f.radius by filter_scale, which is the new, more descriptive name for the previous inv_scale.
* filter_kernels: Apply blur/taper before culling radius.Gravatar Nicholas J. Kain2017-03-06
| | | | | | | | | | | | | Modifications to the input coordinates should all be performed before the final range check against the filter boundaries. However, in the existing code, the blur/taper is applied after the filter radius check is performed. Thus, effectively the filter radius cutoff is applied to only-downscaling-metric-modified coordinates, not the final coordinates. Correct this issue and restructure the returns a bit to make it more obvious what is being done.
* hw_videotoolbox: allow using native decoder output formatGravatar wm42017-03-02
| | | | | | | Depends on FFmpeg commit ade7c1a2326e2bb9b. It has yet to show whether it actually does what it should. Probably doesn't.
* m_option: optionally allow passing "no" to imgfmt option typesGravatar wm42017-03-02
| | | | | | Needed for the following commit. Also, fix that uint32_t type - we always assumed int.
* client API: update outdated recommendations about window embeddingGravatar wm42017-03-02
| | | | | | | Basically, the opengl-cb API causes fewer issues, even if it's a bit harder on the API user. See #4197.
* demux_lavf: get total duration from per-track durations as fallbackGravatar wm42017-03-01
| | | | | | | | | Apparently fixes youtube mp4 streams if avformat_find_stream_info() is not called. Keeping audio/video track and other track durations separate is for the sake of embedded subtitle streams, where we want to include the duration of overlong subtitle streams (I think).
* vd_lavc: log pixel format requested from decoderGravatar wm42017-03-01
| | | | | | I find it slightly helpful in some situations. Also change the code to have a single exit path to make this easier.
* vf_vavpp: fix first-field modeGravatar wm42017-02-28
| | | | It didn't deinterlace at all. Oops.
* vf_vavpp: add advanced deint bug compatibility for Intel vaapi driversGravatar wm42017-02-28
| | | | | | | | | | | | | | | I'm not sure what's going on here, but it appears kodi switches forward and backwards references for advanced VPP deinterlacing modes. This in turn makes deinterlacing with these modes apparently work. If you don't switch the directions, you get a stuttering mess. As far as the libva trace dump is concerned, this makes mpv's libva deinterlacing API use behave like kodi's, and appears to reproduce smooth video with advanced libva deinterlacing enabled. I'm hearing that Mesa actually does it correctly, and I'm not sure what will happen there. For now, passing "reversal-bug=no" as sub-option to the vavpp filter will undo this behavior.
* vf_vavpp: minor fixesGravatar wm42017-02-28
| | | | | | | Fully initialize two structs (not doing so may or may not have been a bug). Actually destroy the VABufferID we create (moderate memory leak).
* cocoa: improve calculation of new window position on a different screenGravatar Akemi2017-02-28
| | | | | | | | | | | forcibly moving a window from one screen to another is supposed to put it in a position that looks relative the same as on the old screen, as in bottom, top, left and right margin look the same, without changing the window size. in some situations the old code moved the window off screen or on top of the menu bar so it ended up at a somewhat random position. the new code fixes some edge cases but is probably not completely correct since the priority is to make sure that the window ends up on the right screen.
* cocoa: only move window into screen bounds when changing screensGravatar Akemi2017-02-27
| | | | | | | | | | | when forcibly moving windows to a different screen with --screen or --fs-screen we need to move the window into the screen bounds if the window is out of bounds, otherwise it can end up on the wrong screen. previously it always recalculated the bounds and moved the window when toggling fullscreen, now it only does the bound calculation when changing screens. Fixes #4178
* cocoa: fix segfault in certain circumstancesGravatar Akemi2017-02-27
| | | | | | | | | | | | | | i falsely assumed that the windowDidChangeScreen was meant to report ‘physical’ screen changes but was wondering why it triggers on other events too. it actually is a event that informs us when anything referenced by our current NSScreen is changed. even when something referenced in the NSScreen changed the old and new NSScreen are still equal if the physical screen didn’t change. with that my previous optimisation broke some cases where the physical screen didn’t change but things it referenced did, leading to a segfault when theses were accessed. to keep the optimisation we will always update our internal NSScreen reference but the rest only when the physical screen was changed.
* osc: fix window dragging with showwindowed=noGravatar Akemi2017-02-27
| | | | | | | initialise OSC with a zero mouse area so mp_input_test_dragging returns a proper value. Fixes #1819
* cocoa: add option to force dedicated GPUGravatar Akemi2017-02-27
| | | | Fixes #3242
* osx: drop support for OS X 10.7 and earlierGravatar Akemi2017-02-27
|
* ao_alsa: close audio device if polling returns POLLERRGravatar wm42017-02-27
| | | | | | | | This is apparently what happens in this situation: Turn off display with DPMS, turn back on with DPMS. MPV is hung. See #4189.