summaryrefslogtreecommitdiffstats
path: root/DOCS
Commit message (Collapse)AuthorAgeFilesLines
* manpage: fix places that still treat FourCCs and pixel formats equalwm42013-01-172-13/+12
| | | | | | | | | | | | | | | The video filter chain traditionally used FourCCs for pixel formats. This was recently changed, but some parts of the manpage were not updated properly. Now there are two rypes of options: some which take a FourCC (as used with raw video formats), and some which take a symbolic format identifier (as used in the video filter chain). I realize that it's harder to specify FourCC for RGB formats now (TV stuff may need RGB). They use non-printable characters as part of the FourCC, and have to be specified as hexadecimal numbers (instead of a symbolic identifier). Because I can't be bothered to find out what these numbers are for the respective formats, just remove the old pseudo-FourCCs from the documentation.
* vd_lavc: remove -lavdopts vstats suboptionwm42013-01-131-2/+0
| | | | | | This printed per-frame statistics into a file, like bitrate or frame type. Not very useful and accesses obscure AVCodecContext fields (danger of deprecation/breakage), so get rid of it.
* vd_lavc: remove lowres decodingwm42013-01-131-13/+0
| | | | | | | | | | This was a "broken misfeature" according to Libav developers. It wasn't implemented for modern codecs (like h264), and has been removed from Libav a while ago (the AVCodecContext field has been marked as deprecated and its value is ignored). FFmpeg still supports it, but isn't much useful due to aforementioned reasons. Remove the code to enable it.
* sub: add experimental --force-rgba-osd-rendering switchwm42013-01-131-0/+8
|
* vo_direct3d: remove 2ch hack for 10 bit playbackwm42013-01-131-9/+0
| | | | | | | | | | | This was an awkward hack that attempted to avoid the use of 16 bit textures, while still allowing rendering 10-16 bit YUV formats. The idea was that even if the hardware doesn't support 16 bit textures, an A8L8 textures could be used to convert 10 bit (etc.) to 8 bit in the shader, instead of doing this on the CPU. This was an experiment, disabled by default, and was (probably) rarely used. I've never heard of this being used successfully. Remove it.
* video: decouple internal pixel formats from FourCCswm42013-01-131-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mplayer's video chain traditionally used FourCCs for pixel formats. For example, it used IMGFMT_YV12 for 4:2:0 YUV, which was defined to the string 'YV12' interpreted as unsigned int. Additionally, it used to encode information into the numeric values of some formats. The RGB formats had their bit depth and endian encoded into the least significant byte. Extended planar formats (420P10 etc.) had chroma shift, endian, and component bit depth encoded. (This has been removed in recent commits.) Replace the FourCC mess with a simple enum. Remove all the redundant formats like YV12/I420/IYUV. Replace some image format names by something more intuitive, most importantly IMGFMT_YV12 -> IMGFMT_420P. Add img_fourcc.h, which contains the old IDs for code that actually uses FourCCs. Change the way demuxers, that output raw video, identify the video format: they set either MP_FOURCC_RAWVIDEO or MP_FOURCC_IMGFMT to request the rawvideo decoder, and sh_video->imgfmt specifies the pixel format. Like the previous hack, this is supposed to avoid the need for a complete codecs.cfg entry per format, or other lookup tables. (Note that the RGB raw video FourCCs mostly rely on ffmpeg's mappings for NUT raw video, but this is still considered better than adding a raw video decoder - even if trivial, it would be full of annoying lookup tables.) The TV code has not been tested. Some corrective changes regarding endian and other image format flags creep in.
* video: different way to enable hardware decoding, add software fallbackwm42013-01-132-0/+13
| | | | | | | | | | | | | | Deprecate the hardware specific video codec entries (like ffh264vdpau). Replace them with the --hwdec switch, which requests that a specific hardware decoding API should be used. The codecs.conf entries will be removed at a later time, but for now they are useful for testing and compatibility. Instead of --vc=ffh264vdpau, --hwdec=vdpau should be used. Add a fallback if hardware decoding fails. Most hardware decoders (including vdpau) support only a subset of h264, and having such a fallback is supposed to enable a better user experience.
* video: remove slice based filtering and video outputwm42013-01-131-7/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Slices allowed filtering or drawing video in horizontal bands or blocks. This allowed working on the video in smaller units. In theory, this could bring a performance win by lowering cache pressure, as you didn't have to keep the whole video frame in cache while filtering, only the slice. In practice, the slice code path was barely used for the following reasons: - Multithreaded decoding with ffmpeg didn't use slices. The ffmpeg slice callback was disabled, because it can be called from another thread, and the mplayer video chain is not thread-safe. - There was nothing that would turn "full" images into appropriate slices, so slices were rarely used. - Most filters didn't actually support slices. On the other hand, supporting slices lead to code duplication and more complex code in general. I made some experiments and didn't find any actual measurable performance improvements when using slices. Even ffmpeg removed slices based filtering from libavfilter in favor of simpler code. The most broken thing about the slices code path is that slices can't be queued, like it is done for images in vo.c.
* vo_sdl: add a "sw" flag like in openglRudolf Polzer2013-01-101-0/+3
| | | | | | Also, rework the renderer creation for the flag being generally effective even if the "SW renderer" is detected only after creating a context.
* mplayer: make --loop loop the playlist instead of each playlist entrywm42013-01-091-1/+2
| | | | | | | | | | This is simpler and more useful. We could add a new switch for the old functionality, but that would probably be more confusing than helpful. When passing only a single file to the command line, this commit shouldn't change behavior. (Classic mplayer provided both features by duplicating the loop functionality in the "playtree".)
* DOCS: add some basic MinGW cross compilation instructionswm42013-01-081-0/+59
|
* manpage: document the dangers of some subtitle optionswm42013-01-051-7/+20
| | | | | | | | | | | | | Setting some subtitle options may lead to incorrect rendering of complex ASS subtitle scripts, such as displaced signs or visual artifacts. The user should be made aware that this can happen. In theory, libass could make using some of these options relatively safe, but it doesn't. Note that there are potentially much more options that could in theory break subtitle rendering, but add a warning only to the most fragile ones.
* sub: add --sub-text-* options to unstyled text subtitles fontwm42013-01-052-31/+34
| | | | | | | Before this commit, the --osd-* options (like --osd-font-size etc.) configured both the OSD and subtitle font. Make them separate, and add --sub-text-* options (like --sub-text-size etc.). Now --osd-* affects the OSD font only, and --sub-text-* unstyled text subtitles only.
* manpage: sort --osd-* optionswm42013-01-041-36/+36
| | | | | | They were more or less grouped by usefulness, but since everything else in the manpage is sorted alphabetically, it's better to be consistent and sort these options as well.
* manpage: minor improvementswm42012-12-281-9/+14
|
* DOCS: document EDL formatwm42012-12-281-0/+139
| | | | | This is taken from the commit message of 968154ba77f8, with some fixes to make it valid RST.
* vo_opengl: use more precise gamma for BT.709 with color managementnand2012-12-281-2/+2
| | | | | | | | | | Change from gamma 2.2 to the slightly more precise 1/0.45 as per BT.709. https://www.itu.int/rec/R-REC-BT.709-5-200204-I/en mentions a value of γ=0.45 for the conceptual non-linear precorrection of video signals. This is approximately the inverse of 2.22, and not 2.20 as the code had been using until now.
* vo/ao: SDL 1.2+ audio driver, SDL 2.0+ accelerated video driverRudolf Polzer2012-12-282-0/+20
| | | | | | | | | | | This mainly serves as a fallback for platforms where nothing better is available; also as a debugging help. Both the audio and video driver are not first class - the audio driver lacks delay detection, and the video driver only supports a single YUV color space. Configure options: --disable-sdl2 to disable SDL 2.0+ detection, --disable-sdl to disable SDL 1.2+ detection. Both options need to be specified to turn off SDL support entirely.
* options: move -ass-bottom-margin/-ass-top-margin options to vf_subwm42012-12-123-9/+10
| | | | | These options might be useful sometimes, but they are not that important, and work with vf_sub only. Make them vf_sub sub-options.
* manpage: mark HTTP related options as deprecated/brokenwm42012-12-112-1/+21
| | | | | | | | | | Commit c02f25 switched the "http://" protocol to use ffmpeg's HTTP implementation (stream_lavf.c), instead of the mplayer internal one (http.c). Unfortunately, it turns out that there are some network related options that are not respected by stream_lavf.c, and consequently do not work anymore for "http://" URLs. This might be fixed later. Mark them as deprecated for now, as it might take arbitrarily long until this is taken care of.
* core: allow disabling display of "album art" in audio fileswm42012-12-111-0/+10
| | | | | | | | | | | | | | | | | | ffmpeg pretends that image attachments (such as contained in ID3v2 metadata) are video streams. It injects the attached pictures as packets into the packet stream received with av_read_frame(). Add the --audio-display option to allow configuring whether attached pictures should be displayed. The default behavior doesn't change (images are displayed). Identify video streams, that are actually image attachments, with "[P]" in the terminal output. Modify the default stream selection such that real video streams are preferred over attached pictures. (This is just for robustness; I do not know of any samples where images are added before actual video streams and could lead to bad default stream selection with the old code.)
* audio: remove support for native alaw/mulaw/adpcm outputwm42012-12-111-1/+1
| | | | | | This is considered a worthless feature. Note that alaw/mulaw/adpcm input is unaffected: such data is handed to libavcodec and "decoded" to linear PCM.
* demux_lavf: make minimum probe score customizable, remove lavf_preferredwm42012-12-111-0/+6
| | | | | | | | | | | | | | | | | | | | | libavformat wants to read a full ~400KB of data to determine whether it's really AAC. This causes slow startup with AAC web radio streams [1] (possible due to a broken initial packet). There are similar issues with other file formats. Make the probe "score" (libavformat's mechanism for testing file formats) configurable with the -lavfdtops:probescore option. This allows lowering the amount of data read on probing. If the probe score is below the probescore option value, demux_lavf will try to get a higher score by feeding more data to libavformat, until the required score or the max. probe size is reached. Remove the lavf_preferred demuxer entry. This had a purpose in mplayer-svn, but now there doesn't seem to be any good reason for it to exist. Make sure that our native "good" demuxers are above demux_lavf in demuxer_list[] instead (so that they are preferred). [1] http://lr2mp0.latvijasradio.lv:8000
* sub: remove vobsub reader in favor of ffmpeg vobsub demuxerwm42012-12-112-13/+7
| | | | | | | | ffmpeg recently added a demuxer that can read vobsubs (pairs of .sub and .idx files). Get rid of the internal vobsub reader, and use the ffmpeg demuxer instead. Sneak in an unrelated manpage change (autosub default).
* subs: remove --utf8, simplify codeUoti Urpala2012-12-031-4/+0
| | | | | | | | | | | | | | | | | | | Remove the options --utf8 and --unicode which had no effect any more (what they once did should be doable with --subcp). The only use of corresponding variables left in code was subreader.c code using sub_utf8 as a flag indicating whether iconv conversion was active. Change the code to test the existence of iconv context instead. Conflicts: DOCS/man/en/options.rst core/cfg-mplayer.h sub/sub.c sub/sub.h sub/subreader.c Merged from mplayer2 commit ea7311. Note: --unicode was already removed
* core: automatically pause on low cachewm42012-12-031-1/+10
| | | | | | | | | | | | | | | When the cache fill status goes below a certain threshold, automatically pause the player. When the cache is filled again, unpause again. This is intended to help with streaming from http. It's better to pause a while, rather than exposing extremely crappy behavior when packet reads during decoding block the entire player. In theory, we should try to increase the cache if underruns happen too often. Unfortunately, changing the cache implementation would be very hard, because it's insane code (forks, uses shared memory and "volatile" etc.). So for now, this just reduces the frequency of the stuttering if the network is absolutely too slow to play the stream in realtime.
* demux_lavf: add support for libavdevicewm42012-12-031-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | libavdevice supports various "special" video and audio inputs, such as screen-capture or libavfilter filter graphs. libavdevice inputs are implemented as demuxers. They don't use the custom stream callbacks (in AVFormatContext.pb). Instead, input parameters are passed as filename. This means the mpv stream layer has to be disabled. Do this by adding the pseudo stream handler avdevice://, whose only purpose is passing the filename to demux_lavf, without actually doing anything. Change the logic how the filename is passed to libavformat. Remove handling of the filename from demux_open_lavf() and move it to lavf_check_file(). (This also fixes a possible bug when skipping the "lavf://" prefix.) libavdevice now can be invoked by specifying demuxer and args as in: mpv avdevice://demuxer:args The args are passed as filename to libavformat. When using libavdevice demuxers, their actual meaning is highly implementation specific. They don't refer to actual filenames. Note: libavdevice is disabled by default. There is one problem: libavdevice pulls in libavfilter, which in turn causes symbol clashes with mpv internals. The problem is that libavfilter includes a mplayer filter bridge, which is used to interface with a set of nearly unmodified mplayer filters copied into libavfilter. This filter bridge uses the same symbol names as mplayer/mpv's filter chain, which results in symbol clashes at link-time. This can be prevented by building ffmpeg with --disable-filter=mp, but unfortunately this is not the default. This means linking to libavdevice (which in turn forces linking with libavfilter by default) must be disabled. We try doing this by compiling a test file that defines one of the clashing symbols (vf_mpi_clear). To enable libavdevice input, ffmpeg should be built with the options: --disable-filter=mp and mpv with: --enable-libavdevice Originally, I tried to auto-detect it. But the resulting complications in configure did't seem worth the trouble.
* ao_pcm: fix references to -novideowm42012-12-032-1/+2
| | | | | | | | | | | The option is -no-video. Remove the deprecated "fast" suboption, which did nothing and instructed the user to use "-novideo" instead. Fix a reference to -novideo in encoding.rst. Add a "generic" entry about -no-* to the list of renamed options. The change is already explicitly mentioned in the text above the table, but even if it's redundant, it makes it harder to overlook.
* encoding-example-profiles: updates, iphone 5 supportRudolf Polzer2012-12-011-1/+2
| | | | | Now the scaling for iPhones properly optimizes for the zoomed-in (pan-scan) view.
* DOCS: Add manpage metadata to the rst files.Rudolf Polzer2012-11-291-2/+13
| | | | This fixes the manpage indent issues.
* DOCS: Fix some rst error messagesRudolf Polzer2012-11-292-16/+17
| | | | Unfortunately, these do not fix the man page indent issue.
* sub: add --sub-gray option to display image subs in grayscalewm42012-11-252-1/+7
| | | | | | | | | | MPlayer/mplayer2 still show DVD subtitles in gray. Depending on who you ask, this can be considered a bug or a feature. Include rendering in gray as explicit feature, so the user can decide what is better. This affects all indexed sub bitmaps entering the OSD rendering path. Currently, this means all image subs are affected by this option, but nothing else.
* sub: reimplement -spugauss as --sub-gausswm42012-11-252-0/+8
| | | | | | | | | | | | | | | | Apparently the -spugauss option was popular. The code originally implementing this is gone (scaler stuff in spudec.c). Reimplement it using libswscale to scale and blur image subtitles if the --sub-gauss option is set. The code does some rather lazy padding to allow the blur to spread pixels past the original image bounding box. (This problem exists with normal bilinear scaling too, but is barely noticable.) Technically, this doesn't just blur subtitles, but anything RGBA (or indexed) that enters the OSD rendering path. But only image subtitles produce these OSD formats currently, so no explicit check is done to prevent blurring in other cases.
* manpage: remove --zoom remainswm42012-11-242-6/+3
| | | | The --zoom option has been removed, and is always active.
* manpage: minor fixeswm42012-11-202-2/+2
| | | | | | The typo in options.rst was introduced in a54088. --hardframedrop mentioned in mpv.rst has been merged with --framedrop.
* osd: make the OSD and sub font more customizablewm42012-11-202-30/+87
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make more aspects of the OSD font customizable. This also affects the font used for unstyled subtitles (such as SRT), or when using the --no-ass option. This adds back some customizability that was lost with commit 74e7a1 (osd: use libass for OSD rendering). Removed options: --ass-border-color --ass-color --font --subfont --subfont-text-scale Added options: --osd-color --osd-border --osd-back-color --osd-shadow-color --osd-font --osd-font-size --osd-border-size --osd-margin-x --osd-margin-y --osd-shadow-offset --osd-spacing --sub-scale The font size is now specified in pixels as it would be rendered on a window with a height of 720 pixels. OSD and subtitles are always scaled with the window height, so specifying or expecting an absolute font size doesn't make sense. Such scaled pixel units are used to specify font border etc. as well. (Note: the font size is directly passed to libass. How the fonts are actually rasterized is outside of our control, but in theory ASS font sizes map to "script" pixels and then are scaled to screen size.) The default settings should be about the same, with slight difference due to rounding to the new scales. The OSD and subtitle fonts are not separately configurable. It has limited use and would double the number of newly added options, which would be more confusing than helpful. It could be easily added later, should the need arise. Other small details that change: - ASS_Style.Encoding is not set to -1 for subs anymore (assuming subs use VSFilter direction in -no-ass mode too) - use a different WrapStyle for OSD - ASS forced styles are not applied to OSD
* options: support chapters for --start and --endwm42012-11-201-1/+5
| | | | | | | | | | | | | The --start and --end switch now accept a chapter number. The chapter number is prefixed with '#', e.g. "--start=#2" jumps to chapter 2. The chapter support might be able to replace --chapter completely, but for now I am not sure how well this works out with e.g. DVDs and BDs, and a separate --chapter option is useful interface-wise. (This was supposed to be added in 51503a, but apparently the fixup commit adding it was lost in a rebase. This might also be the reason for the mess-up fixed in 394285.)
* command: export A/V sync difference as "avsync" propertywm42012-11-161-0/+1
| | | | This is the same as on the status line after the "A-V: ".
* demux_mf: allow displaying single image files, various cleanupswm42012-11-161-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Enable autoprobing for demux_mf, so that image files can be directly displayed with e.g. "mpv file.jpg --pause". (The --pause switch is needed to prevent the window from closing immediately.) Since demux_mf doesn't have any real file format probing and goes by file extension only, move the demuxer down the demuxer list to ensure it's checked last. (ffmpeg's demux_mf equivalent, "image2", probes by file extensions too, and there doesn't seem to be anything that can probe typical image file formats from binary data.) Remove the --mf "w" and "h" suboptions. Don't pass the width/height to the video stream header. Both of these are useless, because the decoder reads the real image size at a later point from the file headers. Remove setting the BITMAPINFOHEADER as well, as vd_lavc doesn't need this. Enable --correct-pts by default. This fixes displaying a single image with vo_vdpau (as mentioned by uau). Keep around a pointer to the sh_video stream header instead of accessing demuxer->video->sh_video. Fixes a crash when deselecting the video track. Note that the format probing is incorrect when opening images from HTTP locations. File extensions don't have to match the actual file format. A correct implementation would require to check the MIME type, or to probe the binary data correctly.
* core: add --keep-open, which doesn't close the file on EOFwm42012-11-161-0/+11
| | | | | | | | | | | | | | | | | The --keep-open option causes mpv not to close the current file. Instead, it will pause, and allow the user to seek around. When seeking beyond the end of the file, mpv does a precise seek back to the previous last known position that produced video output. In some corner cases, mpv might not be able to produce video output at all, despite having created a VO. (Possibly when only 1 frame could be decoded, but the video filter chain queues frames. Then a VO would be created, without sending an actual video frame to the VO.) In these cases, the VO window will not redraw, not even OSD. Based on a patch by coax [1]. [1] http://devel.mplayer2.org/ticket/210#comment:4
* command: add sub_reload and sub_remove commandswm42012-11-161-1/+11
| | | | | | | | | | sub_remove remove an external subtitle track, for whatever this may be needed. sub_reload removes and re-adds an external subtitle track. Also rename sub_load to sub_add, because that seems to be more in line with sub_remove.
* options: add --mute for setting initial audio mute statuswm42012-11-161-0/+4
| | | | | Similar to --volume. Takes this as opportunity to move the variable corresponding to --volume into MPOpts.
* options: rename -sub-fuzziness to -autosub-match, change option valueswm42012-11-162-8/+9
| | | | | | | | | | "--autosub-match" is close to "--autosub", and reflects what this option does slightly better. Replace the magic number option values with choices: --sub-fuzziness=0 becomes --autosub-match=exact --sub-fuzziness=1 becomes --autosub-match=fuzzy --sub-fuzziness=2 becomes --autosub-match=all
* options: rename --cursor-autohide, replace magic number valueswm42012-11-162-2/+3
| | | | | | --cursor-autohide-delay=-2 becomes --cursor-autohide=always --cursor-autohide-delay=-1 becomes --cursor-autohide=no --cursor-autohide-delay=123 becomes --cursor-autohide=123
* options: --field-dominance: replace magic number values with choiceswm42012-11-161-7/+6
| | | | | | --field-dominance=-1 becomes --field-dominance=auto --field-dominance=0 becomes --field-dominance=top --field-dominance=1 becomes --field-dominance=bottom
* options: rename -ss and -endpos, allow relative timeswm42012-11-162-19/+26
| | | | | | | |