aboutsummaryrefslogtreecommitdiffhomepage
path: root/DOCS
Commit message (Collapse)AuthorAge
* af_lavfi: switch to new option APIGravatar wm42013-07-22
| | | | | 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 APIGravatar wm42013-07-22
| | | | | Also add a "o" suboption, which should allow fine control over libavresample.
* audio/filter: use new option APIGravatar wm42013-07-22
| | | | | | | | | | | | | 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> documentationGravatar Diogo Franco (Kovensky)2013-07-22
|
* ao_wasapi0: Rename to ao_wasapiGravatar Diogo Franco (Kovensky)2013-07-22
| | | | | Nobody knows what the 0 was for. There's no "WASAPI version 0". Just take it out.
* DOCS/man/en/ao.rst: Document ao_wasapi0Gravatar Diogo Franco (Kovensky)2013-07-22
|
* vo_opengl: some option changesGravatar wm42013-07-22
| | | | | | 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_xvGravatar wm42013-07-22
|
* ao_jack: use new option APIGravatar wm42013-07-22
|
* options: remove --mixer and --mixer-channel, turn them into alsa/oss suboptsGravatar wm42013-07-21
| | | | | | 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)Gravatar wm42013-07-21
| | | | | | | | | | | | 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 typoGravatar wm42013-07-21
|
* input.rst: update exampleGravatar wm42013-07-21
| | | | Option was renamed.
* vf_scale: use new swscale wrapperGravatar wm42013-07-18
|
* sd_ass: scale blur by original video size if requestedGravatar wm42013-07-15
|
* sd_add: add terrible hack for (xy-)vsfilter compatibilityGravatar wm42013-07-15
| | | | | | 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 workGravatar wm42013-07-14
| | | | | | | | | | | | | | | | | | 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'Gravatar wm42013-07-14
|\ | | | | | | | | | | | | | | 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 additionsGravatar wm42013-07-14
| |
| * demux: rewrite probing and demuxer initializationGravatar wm42013-07-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: add --cache-default optionGravatar wm42013-07-10
| | | | | | | | | | | | | | | | | | | | | | | | 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.
| * options: remove --ignore-startGravatar wm42013-07-08
| | | | | | | | This was used only with demux_avi.
| * Merge branch 'master' into remove_old_demuxersGravatar wm42013-07-08
| |\ | |/ |/| | | | | | | Conflicts: DOCS/man/en/changes.rst DOCS/man/en/options.rst
* | command: add screenshot_to_file commandGravatar wm42013-07-08
| |
* | input: allow binding multiple commands to a keyGravatar wm42013-07-08
| | | | | | | | Separate the commands with ';'.
* | manpage: proofread and fix formattingGravatar Martin Herkt2013-07-08
| |
| * Remove old demuxersGravatar wm42013-07-07
|/ | | | | | | | | | 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.
* Remove some leftovers from network removalGravatar wm42013-07-07
| | | | | | | | 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 headingsGravatar Martin Herkt2013-07-07
|
* Remove internal network supportGravatar wm42013-07-07
| | | | | | | | | | | 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 layoutsGravatar wm42013-07-07
|
* command: add some playlist manipulation commandsGravatar wm42013-07-02
| | | | playlist_remove and playlist_move.
* command: add commands to enable/disable input sectionsGravatar wm42013-06-29
| | | | | For now, it's mostly for testing. It also might allow to create key binding state machines, but this sounds questionable.
* manpage: document input sectionsGravatar wm42013-06-29
|
* command: make raw percent-pos property return fractionsGravatar wm42013-06-29
| | | | | | | | | 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 positionGravatar wm42013-06-29
| | | | | playlist-pos can set/get the current playlist index. playlist-count returns the number of entries in the playlist.
* vo_opengl: handle chroma locationGravatar wm42013-06-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 supportGravatar wm42013-06-28
| | | | | | | | | | | | | 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, --dtshdGravatar wm42013-06-28
| | | | We still keep the old names as alias for short-time compatibility.
* options: rename --rawvideo to --demuxer-rawvideo, same with --rawaudioGravatar wm42013-06-28
|
* options: rename -lavdopts to -vd-lavc, -lavfdopts to -demuxer-lavfGravatar wm42013-06-28
| | | | | 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 suboptionGravatar wm42013-06-28
| | | | This can be set as avopt instead.
* DOCS: update tech-overview.txt to reflect some subtitle related changesGravatar wm42013-06-25
|
* options: add -sub-speed optionGravatar wm42013-06-25
| | | | | | | | 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 -subcpGravatar wm42013-06-25
| | | | Actually this is rather disappointing.
* sub: add subtitle charset conversionGravatar wm42013-06-25
| | | | | | | | | | | | | | | | | | | | | | 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 hacksGravatar wm42013-06-25
| | | | | | | | | | | | 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 subsGravatar wm42013-06-23
| | | | | | | | | | | | | 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 verboseGravatar wm42013-06-16
| | | | | Also add a minor comment about the stream cache needing pthreads now to DOCS/crosscompile-mingw.txt.
* Merge branch 'cache_new'Gravatar wm42013-06-16
|\