summaryrefslogtreecommitdiffstats
path: root/DOCS
Commit message (Collapse)AuthorAgeFilesLines
* 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 looks like there will be a 1.0 release, which is supposed to be the next stable release and the actual successor of libquvi 0.4.x.
* options: rename --mkv-subtitle-preroll, --dtshdwm42013-06-281-30/+35
| | | | We still keep the old names as alias for short-time compatibility.
* options: rename --rawvideo to --demuxer-rawvideo, same with --rawaudiowm42013-06-282-34/+39
|
* options: rename -lavdopts to -vd-lavc, -lavfdopts to -demuxer-lavfwm42013-06-282-101/+94
| | | | | Also change manpage so that top-level options are documented instead of suboptions. Suboptions still work, but might go away eventually.
* options: remove -lavdopts debug suboptionwm42013-06-281-26/+1
| | | | This can be set as avopt instead.
* DOCS: update tech-overview.txt to reflect some subtitle related changeswm42013-06-251-13/+19
|
* options: add -sub-speed optionwm42013-06-251-0/+12
| | | | | | | | Should we actually get into trouble for unproper handling of frame-based subtitle formats, this might be the simplest way to work this around. Also is a bit more intuitive than -subfps, which might use an unknown, misdetected, or non-sense video FPS. Still pretty silly, though.
* sub: libguess support for -subcpwm42013-06-251-0/+9
| | | | Actually this is rather disappointing.
* sub: add subtitle charset conversionwm42013-06-251-3/+5
| | | | | | | | | | | | | | | | | | | | | | This code was once part of subreader.c, then traveled to libass, and now made its way back to the fork of the fork of the original code, MPlayer. It works pretty much the same as subreader.c, except that we have to concatenate some packets to do auto-detection. This is rather annoying, but for all we know the actual source file could be a binary format. Unlike subreader.c, the iconv context is reopened on each packet. This is simpler, and with respect to multibyte encodings, more robust. Reopening is probably not a very fast, but I suspect subtitle charset conversion is not an operation that happens often or has to be fast. Also, this auto-detection is disabled for microdvd - this is the only format we know that has binary data in its packets, but is actually decoded to text. FFmpeg doesn't really allow us to solve this properly, because a) the input packets can be binary, and b) the output will be checked whether it's UTF-8, and if it's not, the output is thrown away and an error message is printed. We could just recode the decoded subtitles before sd_ass if it weren't for that.
* sub: add demux_libass wrapper, drop old hackswm42013-06-252-10/+2
| | | | | | | | | | | | demux_libass.c allows us to make subtitle format detection part of the normal file loading process. libass has no probe function, but trying to load the start of a file (the first 4 KB) is good enough. Hope that libass can even handle random binary input gracefully without printing stupid log messages, and that the libass parser doesn't accept too many non-ASS files as input. This doesn't handle the -subcp option correctly yet. This will be fixed later.
* sub: do some timing postprocessing on preloaded subswm42013-06-231-9/+6
| | | | | | | | | | | | | This fixes the -subfps option (which unfortunately is still useful), and fixes minor annoying timing errors (which unfortunately still happen). Note that none of these affect ASS or image subtitles. ASS is specially handled: libass loads subtitles as ASS_Track. There are no actual packets passed around, and sd_ass just uses the ASS_Track. Disable the --sub-no-text-pp option. It's misleading now and always was completely useless.
* configure: make check for stream cache verbosewm42013-06-161-2/+3
| | | | | Also add a minor comment about the stream cache needing pthreads now to DOCS/crosscompile-mingw.txt.
* Merge branch 'cache_new'wm42013-06-161-6/+15
|\
| * cache: use threads instead of fork()wm42013-06-161-6/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Basically rewrite all the code supporting the cache (i.e. anything other than the ringbuffer logic). The underlying design is untouched. Note that the old cache2.c (on which this code is based) already had a threading implementation. This was mostly unused on Linux, and had some problems, such as using shared volatile variables for communication and uninterruptible timeouts, instead of using locks for synchronization. This commit does use proper locking, while still retaining the way the old cache worked. It's basically a big refactor. Simplify the code too. Since we don't need to copy stream ctrl args anymore (we're always guaranteed a shared address space now), lots of annoying code just goes away. Likewise, we don't need to care about sector sizes. The cache uses the high-level stream API to read from other streams, and sector sizes are handled transparently.
* | audio/out: remove ao->outburst/buffersize fieldswm42013-06-161-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The core didn't use these fields, and use of them was inconsistent accross AOs. Some didn't use them at all. Some only set them; the values were completely unused by the core. Some made full use of them. Remove these fields. In places where they are still needed, make them private AO state. Remove the --abs option. It set the buffer size for ao_oss and ao_dsound (being ignored by all other AOs), and was already marked as obsolete. If it turns out that it's still needed for ao_oss or ao_dsound, their default buffer sizes could be adjusted, and if even that doesn't help, AO suboptions could be added in these cases.
* | mplayer: update window title if its properties changeJohn Hawthorn2013-06-161-0/+3
| | | | | | | | | | | | This allows having properties like time-pos in the window title update properly. There is a danger of this causing significant CPU usage, depending on the properties used and the window manager.
* | image_writer: Add PNG filter option (default "mixed")Martin Herkt2013-06-152-0/+9
| |