summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Update copyright yearwm42017-01-012-2/+2
| | | | What kind of bullshit forces you to do this every year anyway.
* vo_opengl: egl: handle potential eglChooseConfig failureswm42016-12-311-11/+10
| | | | | | | | | | | | | | | This is actually a pretty important fix. eglChooseConfig() might be the first thing that fails when porobing for desktop GL / ES2 / ES3 support, because EGL_RENDERABLE_TYPE is set values specific to the underlying APIs. Not sure how the hell this worked before. EGL 1.4 implementations certainly could fail the call with EGL_BAD_ATTRIBUTE if EGL_RENDERABLE_TYPE has EGL_OPENGL_ES3_BIT set. It's quite possible that many EGL implementations tolerate invalid EGLConfig values steming from uininitialized EGLConfig values (and eglCreateWindowSurface() even is specified to return EGL_BAD_CONFIG error code for "not valid" EGLConfigs).
* vo_opengl: egl: fix depth size parameterwm42016-12-301-1/+0
| | | | | | This was accidentally flipped from 0 to 1 in a previous commit. Actually simply remove it, because 0 is the default value for this parameter anyway.
* vo_opengl: x11egl: fix alpha modewm42016-12-301-2/+32
| | | | | | | | | | | | | | | | | | The way it should (probably) work is that selecting a RGBA framebuffer format will simply make the compositor use the alpha. It works this way on Wayland. On X11, this is... not done. Instead, both GLX and EGL report two FB configs, which are exactly the same, except for the platform-specific visual. Only the latter (non-default) points to a visual that actually has alpha. So you can't make the pure GLX and EGL APIs select alpha mode, and you have to override manually. Or in other words, alpha was hacked violently into X11, in a way that doesn't really make sense for the sake of compatibility, and forces API users to wade through metaphorical cow shit to deal with it. To be fair, some other platforms actually also require you to enable alpha explicitly (rather than looking at the framebuffer type), but they skip the metaphorical cow shit step.
* vo_opengl: x11: move RGBA visual test to x11_common.cwm42016-12-303-12/+25
| | | | | | | | So that the EGL code can use it too. Also print the actual FB config ID, instead of nonsense. (I _think_ once in the past a certain GLX implementation just used numeric config IDs casted to EGLConfig - or at least that would explain this nonsense.)
* vo_opengl: egl_helpers: add a way to override config selectionwm42016-12-302-2/+21
| | | | | | | Preparation for the following commits. Since at least theoretically the config selection depends on the context type (EGL_RENDERABLE_TYPE has separate bits for ES 2, ES 3, and desktop GL), doing it any other way would be too painful.
* vo_opengl: egl_helpers: add a way to pass more optionswm42016-12-302-16/+35
| | | | | | | | | | For X11 garbage we have to pass some annoying parameters to EGL context creation. Add some sort of extensible API, so that adding a new parameter doesn't break all callers. We still want to keep it as a single function, because it's so nice isolating all the EGL nonsense API boilerplate like this. (Did I mention yet that X11 and EGL are garbage?) Also somewhat simplifies the vo_flags mess in the helper internals.
* Prefix libavcodec CODEC_FLAG_ constants with AV_wm42016-12-292-4/+4
| | | | The unprefixed versions are silently deprecated.
* charset_conv: fix "auto" fallback with uchardet not compiledwm42016-12-281-1/+3
| | | | | | | | | Tried to open iconv with "auto" as source codepage, instead of using the latin1 fallback. This also neutralizes the libavcodec dumbass UTF-8 check, which discards subtitles not in UTF-8 and shows an error message for ffmpeg CLI instead. Fixes #3954.
* vo_opengl: partially fix rotation for 4:2:2 contentNiklas Haas2016-12-281-1/+6
| | | | | | | | | | | | The chroma alignment renormalization code forgot to account for the fact that the chroma subsampling ratio has to be rotated. Unfortunately, doing it this way seems to have somewhat broken the chroma offset rotation logic for odd-sized subsampled image files. While this is a bug, it's much, much less noticeable, so it's not nearly as important as the bug this change fixes. Either way, a future patch needs to still revise this logic, ideally by redesigning the entire rotation mechanism.
* cocoa: fix build on OS X 10.9Akemi2016-12-261-1/+1
| | | | fixes #3946
* osc: bottombar/topbar: make chapter markers slightly biggerRicardo Constantino2016-12-251-17/+18
| | | | | | | 1px squares to 2px triangles and layout=box markers from 1px squares to 2x1px rectangles. While we're at it, wrap a few lines to 80col again.
* options: deprecate some other complex --ad/--vd featureswm42016-12-233-2/+7
| | | | | | | Who even needs those? Once these deprecations are gone, --ad/--vd are simple lists without any kind of complex matching.
* options: explicitly deprecate --ad-spdif-dtshdwm42016-12-232-1/+4
| | | | Has been less formally deprecated for a longer time.
* options: deprecate codec family selection in --vd/--adwm42016-12-236-37/+45
| | | | | Useless now, so get rid of it. Also affects some user-visible display things (like reported codec in use).
* audio: change how spdif codecs are selectedwm42016-12-238-39/+54
| | | | | | | | | | | | | | Remove ad_spdif from the normal codec list, and select it explicitly. One goal was to decouple this from the normal codec selection, so they're less entangled and the decoder selection code can be simplified in the far future. This means spdif codec selection is now done explicitly via select_spdif_codec(). We can also remove the weird requirements on "dts" and "dts-hd" for the --audio-spdif option, and it can just do the right thing. Now both video and audio codecs consist of a single codec family each, vd_lavc and ad_lavc.
* vd_lavc: use AVFrame fields directly instead of AVCodecContextwm42016-12-221-4/+4
| | | | | | | | | Conceptually cleaner, although the API claims this is equivalent. Originally, AVCodecContext fields were used, because not all supported libavcodec/libavutil versions had the AVFrame fields. This is not done for chroma_sample_location - it has no AVFrame field.
* video: use demuxer-signaled duration for last video framewm42016-12-215-1/+16
| | | | | | | | | Helps with gif, probably does unwanted things with other formats. This doesn't handle --end quite correctly, but this could be added later. Fixes #3924.
* Fix mistakes in spelling and grammarDario Russo2016-12-212-4/+4
|
* demux_mkv: trust keyframe flags for TrueHDwm42016-12-201-1/+2
| | | | | | | | | | TrueHD is a fucked up audio codec with extremely small frame sizes. Some of these frames start with full headers, which are usually marked as keyframes, and from which decoding can be started (or at least that's what you'd expect). So for such tracks we should probably trust the keyframe flags. Doesn't really improve seek behavior, though.
* demux_mkv: fix seeking in some broken fileswm42016-12-191-1/+16
| | | | | | | | | | | | | | | | | | | | | | Some files have audio tracks with packets that do not have a keyframe flag set at all. I don't think there's any audio codec which actually needs keyframe flags, so always assume an audio packet is a keyframe (which, in Matroska terminology, means it can start decoding from that packet). The file in question had these set: | + Multiplexing application: Lavf57.56.100 at 313 | + Writing application: Lavf57.56.100 at 329 Garbage produced by garbage... There are other such files produced by mkvmerge, though. It's not perfectly sure whether these have been produced by FFmpeg as well (mkvmerge often trusts the information in the source file, even if it's wrong - so other samples could have been remuxed from FFmpeg). Fixes #3920.
* ad_lavc, vd_lavc: don't set AVCodecContext.refcounted_frameswm42016-12-182-2/+0
| | | | | This field is (or should be) deprecated, and there's no need to set it with the new API.
* mpv_identify.sh: add "duration" property to the list.Rudolf Polzer2016-12-171-0/+1
|
* TOOLS/matroska.py: format file dumper output slightly nicerwm42016-12-171-2/+2
|
* TOOLS/matroska.py: allow using as modulewm42016-12-171-46/+49
| | | | | | Don't force CLI usage. It can be imported, and generate_C_header() and generate_C_definitions() can be called with a file argument instead of writing to stdout always.
* Revert "Port several python scripts to Perl"wm42016-12-1711-1404/+495
| | | | | | | | | | | | | | | | | | This reverts commit fae73079310eef9dce9737f2e37ff4b80c8830ee. Before the waf build system was used, we had a configure script written in shell. To drop the build dependency on Python, someone rewrote the Python scripts we had to Perl. Now the shell configure script is gone, and it makes no sense to have a build dependency on both Perl and Python. This isn't just a straight revert. It adds the new Matroska EBML elements to the old Python scripts, adjusts the waf build system, and of course doesn't add anything back needed by the old build system. It would be better if this used matroska.py/file2string.py directly by importing them as modules, instead of calling them via "python". But for now this is simpler.
* cocoa: cosmetic fixesAkemi2016-12-167-24/+43
|
* options: change --h=... behaviorwm42016-12-164-15/+6
| | | | | Does not match a shell pattern anymore. Instead, a simple sub-string search is done.
* cocoa: fullscreen refactoringAkemi2016-12-1510-260/+281
| | | | | | | | | | this replaces the old fullscreen with the native macOS fullscreen. additional the --fs-black-out-screens was removed since the new API doesn't support it in a way the old one did. it can possibly be re-added if done manually. Fixes #2857 #3272 #1352 #2062 #3864
* manpage: add table of contents to the HTML versionZhiming Wang2016-12-142-1/+3
| | | | | | | | The reST contents directive is added to mpv.rst. In wscript_build.py, the --strip-elements-with-class=contents option is needed for the rst2man call in order to prevent the TOC from appearing in mpv.1.
* win32: change the log level of 'move window' msgpavelxdd2016-12-141-1/+1
| | | | It does more harm than good, since it spams terminal a lot
* cocoa: fix dropping of certain urls on the windowAkemi2016-12-141-1/+6
| | | | | | the 'path' of an youtube url (youtube.com/watch?v=x) would just be '/watch'. obviously this fails to load.
* cocoa: support append file to paylist on dropAkemi2016-12-141-1/+4
| | | | | | | | | When dropping a file on mpv, either on the window or the App bundle icon, while holding the shift key the dropped files will be appended to the playlist. Fixes #2166
* win32: window styles improvementspavelxdd2016-12-121-4/+9
| | | | | | | Allow minimizing the borderless/fullscreen window by clicking on the taskbar button or pressing Win+Down hotkey. Also fixes #2229 and probably fixes #2451
* manpage: document current and legacy option syntax betterwm42016-12-121-0/+28
| | | | | | | I thought it ewas already documented, but I'm not seeing it anywhere. Maybe it did exist, but was deleted. See #3899.
* manpage: clarify --loop optionwm42016-12-121-2/+2
| | | | Fixes #3899.
* osx: update the menu and remove conflicting itemAkemi2016-12-121-7/+5
| | | | | | | | | | | Remove 'Quit mpv & remember playback position' from the menu because it conflicts with the global logout shortcut. add separator between 'Hide' and 'Quit' for consistency with other Apps. also rename the 'Movie' menu to 'Video'. it's a bit more generic. Fixes #3865
* win32: update winapi functions namespavelxdd2016-12-121-3/+3
| | | | | | According to MSDN, GetWindowLong and SetWindowLong have been superseded by GetWindowLongPtr and SetWindowLongPtr. It's a cosmetic code change in this case.
* bstr: change to LGPLwm42016-12-112-14/+14
| | | | | | | | Was started by Uoti Urpala in commit 5f631d1c. Although it was made part of demux_mkv.c, it's quite obvious that it's not based on any pre-existing demux_mkv.c code (or ebml.c/.h for that matter). Anyone else who has touched this code every since has already agreed to LGPL relicensing.
* ad_spdif: Fix crash when spdif muxer is not availableMichael Forney2016-12-111-0/+1
| | | | | | | Currently, if init_filter fails after lavf_ctx is allocated, uninit is called which frees lavf_ctx, but doesn't clear the pointer in spdif_ctx. So, on the next call of decode_packet, it thinks it is already initialized and uses it, resulting in a crash on my system.
* wscript_build: rst2pdf: increase section break levelshinchiro2016-12-111-1/+1
| | | | This fix broken pdf build and hopefully less fragile in future
* client API: allow passing NULL to mpv_opengl_cb_uninit_gl()wm42016-12-091-0/+3
| | | | In which case it does nothing.
* charset_conv: simplify and change --sub-codepage optionwm42016-12-094-97/+72
| | | | | | | As documented in interface-changes.rst. This makes it much easier to follow what the heck is going on. Whether this is adequate for real-world use is unknown.
* charset_conv: drop enca and libguess supportwm42016-12-092-77/+0
| | | | | | | | Enca is dead. libguess is relatively useless due to not having an universal detection mode. On the other hand, libuchardet is actively developed. Manpages changes in the following commit.
* manpage: replace `-vo` with `--vo`Douglas Christman2016-12-082-3/+3
|
* manpage: remove mention of window alpha (OSX)Akemi2016-12-081-4/+1
| | | | | | | This is not implemented and i don't even know if it ever was. Also remove a trailing whitespace. Fixes #3866
* options: remove weird RPI-only fullscreen defaultwm42016-12-081-1/+0
| | | | As announced by interface-changes.rst.
* vo_rpi: partially undeprecatewm42016-12-082-6/+3
| | | | Using vo_opengl + MMAL overlay didn't quite work out.
* Remove compatibility thingswm42016-12-0722-278/+10
| | | | | | Possible with bumped FFmpeg/Libav. These are just the simple cases.
* build: bump required minimum versions to FFmpeg 3.2.2 and Libav 12wm42016-12-073-12/+27
| | | | Fixes the build with Libav 11 (not).
* manpage: move the --opengl-dumb-mode option downwm42016-12-071-14/+14
| | | | | | | It's horribly obscure - why would it be the first option to be listed? Also might fix the --scale option formatting/anchor in the HTML rendering.
* ao_alsa: print certain ALSA errors as string instead as numberwm42016-12-071-2/+2
|
* TOOLS/autoload: allow disabling through script-optsRicardo Constantino2016-12-051-1/+8
| | | | | | | | | | | This allows leaving autoload in auto-loaded scripts and to be used in a special profile like "pseudo-gui" without being troublesome to disable the behavior in profiles that get applied after pseudo-gui. Ex: [someprofile] script-opts=autoload-disabled=yes
* demux, stream: add option to prevent opening referenced fileswm42016-12-0416-3/+81
| | | | Quite irresponsibly hacked together. Sue me.
* vo_opengl: hwdec_cuda: Don't include hwcontext headersPhilip Langdale2016-12-041-4/+0
| | | | | After various simplifications, these includes simply aren't needed now.
* demux_lavf: blacklist ffm (ffserver)wm42016-12-041-0/+2
|
* osc: replace length property with durationpavelxdd2016-12-041-1/+1
| | | | | | Length property is deprecated and no longer works. This fixes a bug when the total file duration wasn't visible if the option to display milliseconds was activated.
* wscript: add ANGLE_EXPORT definitionshinchiro2016-12-041-1/+1
| | | | It always needed when linking ANGLE libs
* osc: don't hide playlist buttons, just disableRicardo Constantino2016-12-021-5/+6
| | | | | | | | Having empty space before the title in layout=*bar looks worse than the floating buttons in layout=box. Also disable both playlist buttons selectively according to the current position.
* osc: topbar: use same styles as bottombarRicardo Constantino2016-12-021-13/+13
|
* vdpau: fix vaapi probing if libvdpau-va-gl1 is presentwm42016-12-021-5/+7
| | | | | | | | | | | Needs explicit logic. Fixes a pretty bad regression which prefers vdpau-copy over native vaapi with direct rendering (with --hwdec=auto) if libvdpau-va-gl1 is present. The reason is that vdpau-copy is above vaapi, simply because all vdpau hwdecs are grouped and happened to be listed before vaapi. Although this is not that bad for copy-mode (unlike the case described above), it's still a good idea to use our native vaapi code instead.
* vo_opengl: don't rely on viewport to contain window dimensionswm42016-12-023-9/+7
| | | | | | | | | | | | | Apparently we don't always set the viewport to window dimensions anymore, e.g. if nothing is actually rendered. This means the viewport can contain old values. The window screenshot code uses the viewport values to guess the default framebuffer dimensions. With --force-window --idle --no-osc (which draws nothing and issues a glClear() command only), taking a screenshot would yield an image with the wrong size and possibly garbage in it. Fix this by explicitly passing the currently known window dimensions. Abusing the values stored in the viewport was questionable anyway.
* ao_wasapi: log return code when probing audio formatswm42016-11-302-13/+9
| | | | | | | | | We log a large number of formats, but we rarely log the result of the probing. Change this. The logic in try_format_exclusive() changes slightly, but should be equivalent. EXIT_ON_ERROR() checks for FAILED(), which should be exclusive to SUCCEEDED().
* player: don't print format detection error when aborting loadingwm42016-11-291-1/+1
| | | | | | | | The way playback/loading is stopped on the demuxer layer makes it report an error to the higher levels of the player. But if playback/loading was explicitly aborted, printing such an error is confusing and misleading. This was probably just an oversight anyway. Fix it by using the libmpv API reported error field instead, which handles this better.
* options: some simplificationswm42016-11-294-112/+21
| | | | | | | | Remove more stuff that was needed only for legacy suboptions. One user-visible change is that parent-options like --tv are now not visible anymore. They lead to a special error message when used before, but now they're simply not part of the option list anymore.
* ao_wasapi_utils: remove unused variablepavelxdd2016-11-271-1/+0
| | | | | Introduced in 1a2319f3e4cc42c680e2fd3ba30022c7a9adf3fe Produced a warning during compilation on Windows.
* wayland: destroy input before closing the display connection.Emmanuel Gil Peyrot2016-11-271-1/+1
| | | | | | Fixes a segfault introduced in libwayland e8ad23266f36521215dcd7cfcc524e0ef67d66dd, where a poison value has been introduced to catch this kind of use-after-free bug.
* options: remove deprecated sub-option handling for --vo and --aowm42016-11-2543-361/+219
| | | | | | | | Long planned. Leads to some sanity. There still are some rather gross things. Especially g_groups is ugly, and a hack that can hopefully be removed. (There is a plan for it, but whether it's implemented depends on how much energy is left.)
*