summaryrefslogtreecommitdiffstats
path: root/DOCS
Commit message (Collapse)AuthorAgeFilesLines
* changes: add some things for completenesswm42013-08-191-3/+31
|
* vo_vdpau: add RGB supportwm42013-08-181-0/+4
| | | | | | | | | | | | | | | | | | | | | Apparently this was dropped some years ago, but judging from MPlayer's handling of this, the original code wasn't so great anyway. The new code handling clearing of panscan borders correctly, and integrates better with the YUV path. (Although the VDPAU API sure makes this annoying with its separate surface types for RGB.) Note that we create 5 surfaces for some reason - I don't think this makes too much sense (because we can't use the deinterlacer with RGB surfaces), but at least it reduces the amount of differences with the YUV code path. Clearing the borders is done by drawing a single black pixel over the window. This sounds pretty dumb, but it appears to work well, and there is no other API for that. (One could try to use the video mixer for this purpose, since it has all kinds of features, including compositing multiple RGBA surfaces and clearing the window background. But it would require an invisible dummy video surface to make the video mixer happy, and that's getting too messy.)
* command: more intuitive chapter seek behaviorPhilip Sequeira2013-08-172-1/+10
| | | | | | | | | If close to chapter start, skipping back goes to previous chapter (no change). If more than <threshold> seconds in, skipping back will now go to the beginning of the current chapter instead. The threshold is set by the new option --chapter-seek-threshold and defaults to 5 seconds. A negative value disables the new functionality.
* vo_vdpau: use color close to black as default colorkey (instead of green)wm42013-08-171-3/+3
| | | | | | | | | | | | | | | | | | The VDPAU default colorkey, although it seems to be driver specific, is usually green. This is a pretty annoying color, and you usually see it briefly (as flashes) if the VDPAU window resizes. Change it to some shade of black. The new default color is close to what MPlayer picks as colorkey (and apparently it worked well for them): VdpColor vdp_bg = {0.01, 0.02, 0.03, 0}; Since our OPT_COLOR can set 8 bit colors only, we use '#020507' instead, which should be the same assuming 8 bit colors. Obviously, you can't use black, because black is a way too common color, and would make it too easy to observe the colorkey effect when e.g. moving a terminal with black background over the video window.
* vo_vdpau: allow setting colorkeywm42013-08-171-0/+6
| | | | | | | Formally, this sets the "background color" of the presentation queue. But in practice, this color is also used as colorkey. This commit doesn't change the VDPAU default yet.
* manpage: fix incorrect ao_alsa example, extend changes.rstwm42013-08-152-2/+7
| | | | | | | One example in ao.rst used the old syntax with mangled device names. Fix it. Mention some shell related caveats. Explicitly mention the change of device name syntax in changes.rst, because it seems to be a common issue.
* sub: make --subcp=enca the default.wm42013-08-151-5/+14
|
* sub: allow specifying a fallback codepage if input is not UTF-8wm42013-08-151-2/+8
| | | | | | | | | | | | | | | Normally, --subcp always forces conversion. This really always forces conversion, even if the UTF-8 check on the input succeeds. Extend the --subcp to allow codepages as fallback if UTF-8 doesn't work. So, for example --subcp=utf8:cp1250 will use UTF-8 if the input looks like UTF-8, and will fall back to use cp1250 if the UTF-8 check fails. I think this should actually be the default, but on the other hand, this changes the semantics of the option, and a user would actually expect --subcp to force conversion, rather than silently using UTF-8 if that happens to work.
* changes.rst: document some OSX and windows changesStefano Pigozzi2013-08-131-0/+5
|
* manpage: actually document --hwdec=autowm42013-08-121-0/+7
|
* video: add vaapi decode and output supportwm42013-08-122-1/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is based on the MPlayer VA API patches. To be exact it's based on a very stripped down version of commit f1ad459a263f8537f6c from git://gitorious.org/vaapi/mplayer.git. This doesn't contain useless things like benchmarking hacks and the demo code for GLX interop. Also, unlike in the original patch, decoding and video output are split into separate source files (the separation between decoding and display also makes pixel format hacks unnecessary). On the other hand, some features not present in the original patch were added, like screenshot support. VA API is rather bad for actual video output. Dealing with older libva versions or the completely broken vdpau backend doesn't help. OSD is low quality and should be rather slow. In some cases, only either OSD or subtitles can be shown at the same time (because OSD is drawn first, OSD is prefered). Also, libva can't decide whether it accepts straight or premultiplied alpha for OSD sub-pictures: the vdpau backend seems to assume premultiplied, while a native vaapi driver uses straight. So I picked straight alpha. It doesn't matter much, because the blending code for straight alpha I added to img_convert.c is probably buggy, and ASS subtitles might be blended incorrectly. Really good video output with VA API would probably use OpenGL and the GL interop features, but at this point you might just use vo_opengl. (Patches for making HW decoding with vo_opengl have a chance of being accepted.) Despite these issues, decoding seems to work ok. I still got tearing on the Intel system I tested (Intel(R) Core(TM) i3-2350M). It was also tested with the vdpau vaapi wrapper on a nvidia system; however this was rather broken. (Fortunately, there is no reason to use mpv's VAAPI support over native VDPAU.)
* changes.rst: add precise scrolling supportAlexander Preisinger2013-08-071-0/+2
|
* core: move contents to mpvcore (2/2)Stefano Pigozzi2013-08-061-6/+6
| | | | Followup commit. Fixes all the files references.
* changes.rst: mention wayland supportAlexander Preisinger2013-08-051-0/+1
| | | | In case website copy&paste outdated information again.
* demux_lavf: make avio buffer configurablewm42013-08-041-0/+6
| | | | | | Perhaps not very useful, but reserved for situations when a user reports awful latency and experimentation/debugging might be required to find out why or to fix it (happens often).
* command: make vf and af commands more verbosewm42013-08-031-0/+5
| | | | | | On success, print the filter chain on the OSD. Otherwise, show an error message on the OSD (just enough so that the user knows whether the command worked).
* command: add vf/af propertieswm42013-08-031-0/+2
|
* stream: redo URL parsing, replace m_struct usage with m_configwm42013-08-021-1/+1
| | | | | | | | | | | | | Move the URL parsing code from m_option.c to stream.c, and simplify it dramatically. This code originates from times when http code used this, but now it's just relict from other stream implementations reusing this code. Remove the unused bits and simplify the rest. stream_vcd is insane, and the priv struct is different on every platform, so drop the URL parsing. This means you can't specify a track anymore, only the device. (Does anyone use stream_vcd? Not like this couldn't be fixed, but it doesn't seem worth the effort, especially because it'd require potentially touching platform specific code.)
* manpage: clean up environment variables sectionwm42013-08-021-54/+32
|
* manpage: document exit codeswm42013-08-021-0/+18
|
* manpage: move screenshot section above option listwm42013-08-021-17/+17
| | | | | Seems more logical, because general usage instructions are before the option list as well.
* crosscompile-mingw.txt: it's "MinGW" not "MingGW"wm42013-07-301-3/+3
|
* crosscompile-mingw.txt: mingw-w64 now has modern OpenGL headers in trunkwm42013-07-301-1/+1
|
* options: simplify --correct-pts handlingwm42013-07-261-7/+6
| | | | | | Remove the (now unused) code for determining correct-pts mode based on the demuxer in use. Change its description in the manpage to reflect what this option does now.
* command: add pseudo-property that allows you to read global optionswm42013-07-261-0/+1
| | | | | | | | | | | | The "options" pseudo-property allows reading global like this: show_text ${options/name} Where "name" maps to the option "--name". This allows retrieving option values that are not properties. Write-access is not possible: this is reserved for normal properties. Note: it is possible that we'll change this again, and don't require the "options/" prefix to access options.
* af_lavfi: switch to new option APIwm42013-07-221-2/+6
| | | | | This makes it actually possible to use the filter with more complicated filter graphs (such as graphs containing the "," character).
* af_lavrresample: switch to new option APIwm42013-07-221-4/+5
| | | | | Also add a "o" suboption, which should allow fine control over libavresample.
* audio/filter: use new option APIwm42013-07-222-14/+10
| | | | | | | | | | | | | Make the VF/VO/AO option parser available to audio filters. No audio filter uses this yet, but it's still a quite intrusive change. In particular, the commands for manipulating filters at runtime completely change. We delete the old code, and use the same infrastructure as for video filters. (This forces complete reinitialization of the filter chain, which hopefully isn't a problem for any use cases. The old code forced reinitialization too, but it could potentially allow a filter to cache things; e.g. consider loaded ladspa plugins and such.)
* DOCS/man/en/ao.rst: Update wasapi:device=<id> documentationDiogo Franco (Kovensky)2013-07-221-1/+6
|
* ao_wasapi0: Rename to ao_wasapiDiogo Franco (Kovensky)2013-07-221-1/+1
| | | | | Nobody knows what the 0 was for. There's no "WASAPI version 0". Just take it out.
* DOCS/man/en/ao.rst: Document ao_wasapi0Diogo Franco (Kovensky)2013-07-221-0/+15
|
* vo_opengl: some option changeswm42013-07-221-29/+12
| | | | | | Doing "mpv --vo=opengl:lscale=help" now lists possible scalers and exits. The "backend" suboption behaves similar. Make the "stereo" suboption a choice, instead of using magic integer values.
* options: move --colorkey option to vo_xvwm42013-07-222-9/+7
|
* ao_jack: use new option APIwm42013-07-221-1/+1
|
* options: remove --mixer and --mixer-channel, turn them into alsa/oss suboptswm42013-07-213-19/+14
| | | | | | These two options were supported by ALSA and OSS only. Further, their values were specific to the respective audio systems, so it doesn't make sense to keep them as top-level options.
* ao_alsa: use new option API (changes syntax)wm42013-07-211-3/+10
| | | | | | | | | | | | This changes how device names are handled. Before this commit, device names were mangled in strange ways to avoid clashing with the option parser syntax. "." was replaced with ",", and "=" with ":" (the user had to do the inverse to get the correct device name). The "new" option parser has multiple ways to escape option strings, so we don't need this confusing hack anymore. Add an explicit note to the manpage as well.
* manpage: fix typowm42013-07-211-1/+1
|
* input.rst: update examplewm42013-07-211-1/+1
| | | | Option was renamed.
* vf_scale: use new swscale wrapperwm42013-07-181-6/+0
|
* sd_ass: scale blur by original video size if requestedwm42013-07-151-1/+10
|
* sd_add: add terrible hack for (xy-)vsfilter compatibilitywm42013-07-151-0/+25
| | | | | | Much has been said about this topic, we don't need to say even more. See additions to options.rst.
* demux_lavf: add terrible hack to make DVD playback just workwm42013-07-141-0/+10
| | | | | | | | | | | | | | | | | | DVD playback had some trouble with PTS resets: libavformat's genpts feature would try reading until EOF (worst case) to find a new usable PTS in case a packet's PTS is not set correctly. Especially with slow DVD access, this would make the player to appear frozen. Reimplement it partially in demux_lavf.c, and use that code in the DVD case. This is heavily "inspired" by the code in av_read_frame from libavformat/utils.c. The difference is that we stop reading if no PTS has been found after 50 packets (consider this a heuristic). Also, we don't bother with the PTS wrapping and last-frame-before-EOF handling. Even with normal PTS wraps, the player frontend will go to hell for the duration of a frame anyway, and should recover quickly after that. The terribleness of this commit is mostly that we duplicate libavformat functionality, and that we suddenly need a packet queue.
* Merge branch 'remove_old_demuxers'wm42013-07-143-49/+38
|\ | | | | | | | | | | | | | | The merged branch doesn't actually just remove old demuxers, but also includes a branch of cleanups and some refactoring. Conflicts: stream/stream.c
| * tech-overview.txt: minor changes and additionswm42013-07-141-27/+38
| |
| * demux: rewrite probing and demuxer initializationwm42013-07-121-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Get rid of the strange and messy reliance on DEMUXER_TYPE_ constants. Instead of having two open functions for the demuxer callbacks (which somehow are both optional, but you can also decide to implement both...), just have one function. This function takes a parameter that tells the demuxer how strictly it should check for the file headers. This is a nice simplification and allows more flexibility. Remove the file extension code. This literally did nothing (anymore). Change demux_lavf so that we check our other builtin demuxers first before libavformat tries to guess by file extension.
| * options: remove --ignore-startwm42013-07-081-5/+0
| | | | | | | | This was used only with demux_avi.
| * Merge branch 'master' into remove_old_demuxerswm42013-07-089-2121/+2265
| |\ | | | | | | | | | | | | | | | Conflicts: DOCS/man/en/changes.rst DOCS/man/en/options.rst
| * | Remove old demuxerswm42013-07-072-11/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Delete demux_avi, demux_asf, demux_mpg, demux_ts. libavformat does better than them (except in rare corner cases), and the demuxers have a bad influence on the rest of the code. Often they don't output proper packets, and require additional audio and video parsing. Most work only in --no-correct-pts mode. Remove them to facilitate further cleanups.
* | | options: add --cache-default optionwm42013-07-101-1/+6
| |/ |/| | | | | | | | | | | | | | | | | | | | | Add this option, which lets users set the cache size without forcing it even when playing from the local filesystem. Also document the default value explicitly. The Matroska linked segments case is slightly simplified: they can never come from network (mostly because it'd be insane, and we can't even list files from network sources), so the cache will never be enabled automatically.
* | command: add screenshot_to_file commandwm42013-07-081-0/+13
| |
* | input: allow binding multiple commands to a keywm42013-07-081-1/+10
| | | | | | | | Separate the commands with ';'.
* | manpage: proofread and fix formattingMartin Herkt2013-07-089-2124/+2246
|/
* Remove some leftovers from network removalwm42013-07-072-3/+3
| | | | | | | | stream_vstream.c in particular was actually dependent on the network code, and didn't compile anymore. Cleanup the protocol list in mpv.rst, and add some missing ones supported by libavformat to stream_lavf.c.
* manpage: fix section headingsMartin Herkt2013-07-073-26/+27
|
* Remove internal network supportwm42013-07-071-28/+0
| | | | | | | | | | | This commit removes the "old" networking code in favor of libavformat's code. The code was still used for mp_http, udp, ftp, cddb. http has been mapped to libavformat's http support since approximately 6 months ago. udp and ftp have support in ffmpeg (though ftp was added only last month). cddb support is removed with this commit - it's probably not important and rarely used if at all, so we don't care about it.
* ao_jack: allow more control about channel layoutswm42013-07-071-0/+15
|
* command: add some playlist manipulation commandswm42013-07-021-0/+11
| | | | playlist_remove and playlist_move.
* command: add commands to enable/disable input sectionswm42013-06-291-0/+15
| | | | | For now, it's mostly for testing. It also might allow to create key binding state machines, but this sounds questionable.
* manpage: document input sectionswm42013-06-291-1/+21
|
* command: make raw percent-pos property return fractionswm42013-06-291-0/+1
| | | | | | | | | percent-pos was an integer (0-100). Sometimes higher precision is wanted, but the property is this way because fractional parts would look silly with normal OSD usage. As a compromise, make percent-pos double (i.e. includes fractional parts), but print it as integer. So ${percent-pos} is like an integer, but not ${=percent-pos}.
* command: add properties for playlist positionwm42013-06-291-1/+3
| | | | | playlist-pos can set/get the current playlist index. playlist-count returns the number of entries in the playlist.
* vo_opengl: handle chroma locationwm42013-06-281-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use the video decoder chroma location flags and render chroma locations other than centered. Until now, we've always used the intuitive and obvious centered chroma location, but H.264 uses something else. FFmpeg provides a small overview in libavcodec/avcodec.h: ----------- /** * X X 3 4 X X are luma samples, * 1 2 1-6 are possible chroma positions * X X 5 6 X 0 is undefined/unknown position */ enum AVChromaLocation{ AVCHROMA_LOC_UNSPECIFIED = 0, AVCHROMA_LOC_LEFT = 1, ///< mpeg2/4, h264 default AVCHROMA_LOC_CENTER = 2, ///< mpeg1, jpeg, h263 AVCHROMA_LOC_TOPLEFT = 3, ///< DV AVCHROMA_LOC_TOP = 4, AVCHROMA_LOC_BOTTOMLEFT = 5, AVCHROMA_LOC_BOTTOM = 6, AVCHROMA_LOC_NB , ///< Not part of ABI }; ----------- The visual difference is literally minimal, but since videophiles apparently consider this detail as quality mark of a video renderer, support it anyway. We don't bother with chroma locations other than centered and left, though. Not sure about correctness, but it's probably ok.
* core: add libquvi 0.9 supportwm42013-06-282-1/+15
| | | | | | | | | | | | | This adds support for libquvi 0.9.x, and these features: - start time (part of youtube URL) - youtube subtitles - alternative source switching ('l' and 'L' keys) - youtube playlists Note that libquvi 0.9 is still in development. Although this seems to be API stable now, it