summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Release 0.4.0v0.4.0Alessandro Ghedini2014-06-252-0/+116
|
* input: readd some TV default key bindingswm42014-06-251-0/+4
| | | | Requested by a user. Closes #878.
* DOCS: add document describing the release policy and procedureAlessandro Ghedini2014-06-252-9/+71
|
* command: fix tv-channel propertywm42014-06-251-0/+3
| | | | | Now it's at least actually relayed to the TV code. I didn't/couldn't test whether it actually works, though.
* manpage: update changed defaults from previous commitwm42014-06-231-2/+2
| | | | Oops.
* cache: change auto-pause/resume defaultswm42014-06-231-2/+2
| | | | | | This is hopefully better for web streams. Temporary workaround for #870.
* demux_lavf: remove unused symbolwm42014-06-231-2/+0
|
* vo_opengl: Make approx-gamma affect OSD/subNiklas Haas2014-06-222-4/+8
| | | | | | Close #837 Signed-off-by: wm4 <wm4@nowhere>
* video: Include better heuristics for guessing primariesNiklas Haas2014-06-224-6/+36
| | | | | | | These consult the vertical resolution, matching against 576 for PAL and 480/486 for NTSC. The documentation has also been updated. Signed-off-by: wm4 <wm4@nowhere>
* video: Refactor rendering intent for DCP XYZ and :srgbNiklas Haas2014-06-224-59/+102
| | | | | | Notably, we now conform to SMPTE 428-1-2006 when decoding XYZ12 input, and we can support rendering intents other than colorimetric when converting between BT.709 and BT.2020, like with :srgb or :icc-profile.
* video: Better support for XYZ inputNiklas Haas2014-06-224-11/+67
| | | | | | | | | With this change, XYZ input is directly converted to the output colorspace wherever possible, and to the colorspace specified by the tags and/or --primaries option, otherwise. This commit also restructures some of the CMS code in gl_video.c to hopefully make it clearer which decision is being done where and why.
* video: Generate an accurate CMS matrix instead of hard-codingNiklas Haas2014-06-225-129/+290
| | | | | | | | | This also avoids an extra matrix multiplication when using :srgb, making that path both more efficient and also eliminating more hard-coded values. In addition, the previously hard-coded XYZ to RGB matrix will be dynamically generated.
* video: Support BT.2020 constant luminance systemNiklas Haas2014-06-227-14/+77
| | | | Signed-off-by: wm4 <wm4@nowhere>
* options: Expose --colormatrix-primaries to the userNiklas Haas2014-06-226-0/+62
| | | | Signed-off-by: wm4 <wm4@nowhere>
* video: Add support for non-BT.709 primariesNiklas Haas2014-06-229-18/+194
| | | | | | | This add support for reading primary information from lavc, categorized into BT.601-525, BT.601-625, BT.709 and BT.2020; and passes it on to the vo. In vo_opengl, we always generate the 3dlut against the wider BT.2020 and transform our source into this colorspace in the shader.
* video: Add BT.2020-NCL colorspace and transfer functionNiklas Haas2014-06-229-18/+49
| | | | Source: http://www.itu.int/dms_pubrec/itu-r/rec/bt/R-REC-BT.2020-0-201208-I!!PDF-E.pdf
* win32: add missing priority classesJames Ross-Gowan2014-06-221-0/+2
|
* stream: add a file cachewm42014-06-228-16/+215
| | | | | | | | | For remarks, pretty much see the manpage additions. Could help with network streams that require too much seeking (maybe), or might be extended to help with the use case of watching and downloading a file at the same time. In general, it might be a useless feature and could be removed again.
* stream: minor cleanupswm42014-06-223-10/+7
| | | | | Remove unused stream type constants. Move some now DVD specific crap to stream_dvd.c.
* vo_xv: de-ancient some help messageswm42014-06-211-10/+2
| | | | | One message pointed to a removed file, so just get rid of the messages. They were helpful in the earlier 2000s, but now they're just confusing.
* DOCS: remove en/ sub-directorywm42014-06-2015-20/+20
| | | | | This additional sub-directory doesn't serve any purpose anymore. Get rid of it.
* manpage: explicitly document protocolswm42014-06-201-12/+79
|
* manpage: remove some trailing whitespacewm42014-06-201-1/+1
| | | | I wish I could make github run a hook to reject these.
* build: remove BSD-specific /usr/local include path additionswm42014-06-201-8/+0
| | | | | | It seems it's generally cleaner to leave this stuff to the BSDs. Additionally, the NetBSD part wasn't even correct, because it made the compiler prefer the system include path before local include files.
* stream_dvd, stream_dvdnav: map dvd:// to dvdnavwm42014-06-202-3/+3
| | | | The old stream_dvd.c implementation is still available under dvdread://.
* stream_dvd: fix potential endless loop on seekingwm42014-06-201-1/+2
| | | | | Attempt to fix a reported freeze with some DVDs. Unknown if this helps, and it still might read the whole DVD before terminating.
* client API: declare as stablewm42014-06-202-13/+7
| | | | | | | | It is reasonably stable, so all further changes will be versioned. Also change how the libmpv version number is generated. Fix the patch version number to 0; I don't think we have a use for this. In particular, the version doesn't version mpv, just the client API.
* build: remove some trailing whitespacewm42014-06-201-1/+1
|
* vo_vaapi: fix reference counting when using software decodingwm42014-06-201-1/+2
| | | | Recent regression.
* vf_dlopen: fix the order of the arguments to mp_image_allocMarcoen Hirschberg2014-06-191-2/+2
|
* sd_lavc: fix stupiditywm42014-06-191-2/+5
| | | | | | Reallocating an array while you still have pointers to it -> bad idea. Recent regression.
* vo_wayland: fix clearing the screen on reconfigwm42014-06-181-12/+11
| | | | | | Do this simply by clearing the mapped buffer on every draw_image() call without an actual video frame. (Maybe this is a bit expensive, but at least not more expensive than regular video display.)
* vo_sdl: fix clearing the screen on reconfigwm42014-06-181-35/+53
| | | | | | Clear the texture on reconfig(). (We could probably also do this simpler with a flag, but this is actually less complicated - except that we move the code to "map" a texture to a separate function.)
* video/out: fix redrawing with no video frame for some VOswm42014-06-185-31/+15
| | | | | | With the change to merge osd drawing into video frame drawing, some bogus logic got in: they skipped drawing the OSD if no video frame is available. This broke --no-video --force-window mode.
* bootstrap: update waf website and versionTimothy Gu2014-06-181-3/+3
| | | | | Signed-off-by: Timothy Gu <timothygu99@gmail.com> Signed-off-by: wm4 <wm4@nowhere>
* vo_opengl: fix regression with opengl:pbowm42014-06-181-4/+3
| | | | | In the pbo case, mpi was reassigned to a stack pointer, and later deallocated. Just change the code so it doesn't need to be reassigned.
* manpage: remove bogus significant whitespacewm42014-06-181-1/+1
| | | | Made the first line formatted differently.
* gl_video: fix refcountingwm42014-06-181-0/+1
|
* options: allow adding multiple files with --audio-filewm42014-06-184-6/+9
| | | | At least 1 person expected that this works this way.
* sd_lavc: improve bitmap subtitle timingwm42014-06-181-71/+103
| | | | | | | | | | | | | | | | | | | | | Until now, bitmap subtitles were decoded at "some" point, and then simply replaced the old subtitle. Although the subtitle is selected by time (PTS), it could happen that a subtitle was replaced too early. One consequence is that this might lead to flicker even if the subtitles are timed to follow each other without a gap (although most subtitles are explicitly timed to introduce such a gap). With this commit the past 4 subtitles are kept (instead of 1), so that the correct one can be picked by time. This should fix the aforementioned cases, but more importantly will allow demuxing/decoding and video display to be somewhat asynchronous. Still missing: somehow making sure the correct range of decoded subtitles is available, instead of just passing along whatever comes from the demuxer, and hoping that 4 queued subtitles are enough. But it should certainly be good enough for now. This removes a check that resets the subtitles if the PTS is 5 minutes before the end of the current subtitle; this is probably not needed.
* video: correct spelling: mp_image_params_equals -> mp_image_params_equalwm42014-06-178-14/+14
| | | | | The type is struct mp_image_params, so the "params" should have a "s". "equals" shouldn't, because it's plural for 2 params. Important.
* video: remove redundant functionwm42014-06-173-11/+2
| | | | mp_image_params_from_image() is now trivial and can be removed.
* DOCS/contribute.md: move instructions for sending patches to the topwm42014-06-171-50/+56
| | | | Separate to not confuse git history tracking.
* DOCS: remove coding-style.md to contribute.mdwm42014-06-171-0/+0
| | | | | I wonder if this is better. The intention is to make the instructions for sending patches more visible.
* vo: make draw_image and vo_queue_image transfer image ownershipwm42014-06-1717-31/+53
| | | | Basically a cosmetic change. This is probably more intuitive.
* build: check for 64bit stdatomic.h operations tooAlessandro Ghedini2014-06-172-4/+5
| | | | | This fixes the build on platform where the atomic calls can't be turned into lock-free instructions and thus need the external libatomic library (e.g. mips).
* demux_mkv: add S_DVBSUBwm42014-06-172-0/+2
| | | | Probably works; untested.
* encode: disable playback framedroppingwm42014-06-171-0/+1
| | | | | --framedrop is intended for playback only, and does nothing good with encoding. It would just randomly drop frames.
* video: check image parameterswm42014-06-173-4/+38
| | | | | | | | | Make sure every video filter has valid parameters for input and output. (This also ensures we don't take possibly invalid decoder output, or feed invalid decodr/filter output to VOs.) Also, the updated image size check now (almost) works like the corresponding check in FFmpeg.
* video: introduce failure path for image allocationswm42014-06-1745-67/+219
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Until now, failure to allocate image data resulted in a crash (i.e. abort() was called). This was intentional, because it's pretty silly to degrade playback, and in almost all situations, the OOM will probably kill you anyway. (And then there's the standard Linux overcommit behavior, which also will kill you at some point.) But I changed my opinion, so here we go. This change does not affect _all_ memory allocations, just image data. Now in most failure cases, the output will just be skipped. For video filters, this coincidentally means that failure is treated as EOF (because the playback core assumes EOF if nothing comes out of the video filter chain). In other situations, output might be in some way degraded, like skipping frames, not scaling OSD, and such. Functions whose return values changed semantics: mp_image_alloc mp_image_new_copy mp_image_new_ref mp_image_make_writeable mp_image_setrefp mp_image_to_av_frame_and_unref mp_image_from_av_frame mp_image_new_external_ref mp_image_new_custom_ref mp_image_pool_make_writeable mp_image_pool_get mp_image_pool_new_copy mp_vdpau_mixed_frame_create vf_alloc_out_image vf_make_out_image_writeable glGetWindowScreenshot
* gl_lcms: use thread-safe lcms API, require lcms2 2.6wm42014-06-163-29/+18
| | | | | | | | | | | | | | The error log callback was not thread-safe and not library-safe. And apparently there were some other details that made it not library-safe, such as a global lcms plugin registry. Switch the the thread-safe API provided by lcms2 starting with 2.6. Remove our approximate thread-safety hacks. Note that lcms basically provides 2 APIs now, the old functions, and the thread-safe alternatives whose names end with THR. Some functions don't change, because they already have a context of some sort. Care must be taken not to accidentally use old APIs.
* build: add '--enable-libmpv-static' optionxylosper2014-06-162-14/+34
| | | | Signed-off-by: wm4 <wm4@nowhere>
* cache: avoid race condition between cache wakeup and idlingwm42014-06-161-0/+1
| | | | | | | | | | When the reader is out of data, it tries to wake up the cache thread to get more data. In theory, there's a small race condition, which could cause the cache to miss the wakeup and idle before reaction. Most certainly didn't cause real issues, because even if this extremely unlikely race condition happens, the cache won't idle for longer than 1 second (the hardcoded cache idle time).
* vo_opengl: simplify redraw callback OSD handlingwm42014-06-165-82/+23
| | | | | | | | | OSD used to be not thread-safe at all, so a track was used to get it redrawn. This mostly reverts commit 6a2a8880, because OSD not being thread-safe was the non-trivial part of it. Mostly untested, because this code path is used on OSX only, and I don't have OSX.
* discnav: make OSD path explicitly thread-safewm42014-06-161-16/+31
| | | | | | | | The main issue was actually that the OSD callback locked the subtitle decoder, which does not necessarily work, because the OSD code is already allowed to lock it. The state was already protected by unsetting the callback (which involes the OSD lock). So, in summary, this is probably just a cleanup.
* sub: prefer ffmpeg microdvd converter over internal onewm42014-06-151-1/+1
| | | | | | We certainly don't want to maintain and improve the internal converter, but we still need the internal one for Libav. (In the Libav case, demux_subreader.c will be used to read the MicroDVD file.)
* video/out: change aspects of OSD handlingwm42014-06-1525-187/+128
| | | | | | | | | Let the VOs draw the OSD on their own, instead of making OSD drawing a separate VO driver call. Further, let it be the VOs responsibility to request subtitles with the correct PTS. We also basically allow the VO to request OSD/subtitles at any time. OSX changes untested.
* vo_vaapi: fix a crash on the init error handling pathwm42014-06-151-1/+2
| | | | No X display or libva can't be initialized -> crash.
* wayland: move subsurfaces to wayland voAlexander Preisinger2014-06-153-34/+43
| | | | | | | Subsurfaces are only used by the wayland vo. Thats why it makes sense to move all osd and subsurface specific parts to the vo_wayland.c Also destroy the subsurfaces and subcompositor properly.
* wayland: attach NULL surface on osd creationAlexander Preisinger2014-06-151-0/+3
| | | | | | | When using the EGL output the subsurfaces have no buffer attached and the size seems to be infinite. Fix this by attaching a NULL buffer. Fixes #846
* ao_pcm: fix message stringsAmos Onn2014-06-151-2/+2
| | | | Signed-off-by: wm4 <wm4@nowhere>
* cocoa: add fallback for automatic GPU switchingStefano Pigozzi2014-06-151-1/+14
| | | | | | Not all the hardware supports kCGLPFASupportsAutomaticGraphicsSwitching (apparently all Mid-2010 and before MacBooks do not work with it), so fallback to not asking for this attribute in the GL pixel format.
* cocoa: allow automatic gpu switchingStefano Pigozzi2014-06-151-0/+3
| | | | Fixes #820
* cocoa: switch to CGL APIs for GL context creationStefano Pigozzi2014-06-151-16/+23
| | | | | CGL APIs are lower level thus giving us better control and more options for the context creation.
* demux: use position as signed integerwm42014-06-141-1/+1
| | | | Seeing (uint64_t)-1 as value when position was unset was annoying.
* tv: if timestamp is unset, return NOPTSwm42014-06-141-4/+4
| | | | | | Well, not sure if this really improves anything, but at least it's less of a WTF to the playback core than always returning the same timestamp for every frame.
* tv: remove some non-sensewm42014-06-141-2/+2
| | | | | | There's really no need to convert this to float and then back. This is mostly of cosmetic nature, double precision was probably enough to avoid rounding.
* tv: fix compilation without clock_gettime, don't claim to be MPlayerwm42014-06-141-1/+1
| | | | mp_msg() doesn't exist anymore in this form. Oops.
* sub: add --sub-scale-with-window optionwm42014-06-144-4/+17
| | | | Implements the feature requested in #839 and #186.
* gl_w32: remove unused variablewm42014-06-141-2/+0
|
* build: version string as native str type for each Python versionPhilip Sequeira2014-06-141-2/+4
| | | | | | | Should resolve the "mpv b'...'" issue on Python 3 without breaking things on Python 2. Also, remove redundant wait for process.
* video: cosmetics: reformat image format names tablewm42014-06-141-25/+17
|
* video: synchronize mpv rgb pixel format names with ffmpeg nameswm42014-06-1411-131/+117
| | | | | | | | | | | This affects packed RGB formats up to 16 bits per pixel. The old mplayer names used LSB-to-MSB order, while FFmpeg (and some other libraries) use MSB-to-LSB. Nothing should change with this commit, i.e. no bit order or endian bugs should be added or fixed. In some cases, the name stays the same, even though the byte order changes, e.g. RGB8->BGR8 and BGR8->RGB8, and this affects the user-visible names too; this might cause confusion.
* video: automatically strip "le" and "be" suffix from pixle format nameswm42014-06-143-20/+27
| | | | | | | | | | |