summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* core: add --deinterlace option, restore it with resume functionalitywm42013-09-139-4/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The --deinterlace option does on playback start what the "deinterlace" property normally does at runtime. You could do this before by using the --vf option or by messing with the vo_vdpau default options, but this new option is supposed to be a "foolproof" way. The main motivation for adding this is so that the deinterlace property can be restored when using the video resume functionality (quit_watch_later command). Implementation-wise, this is a bit messy. The video chain is rebuilt in mpcodecs_reconfig_vo(), where we don't have access to MPContext, so the usual mechanism for enabling deinterlacing can't be used. Further, mpcodecs_reconfig_vo() is called by the video decoder, which doesn't have access to MPContext either. Moving this call to mplayer.c isn't currently possible either (see below). So we just do this before frames are filtered, which potentially means setting the deinterlacing every frame. Fortunately, setting deinterlacing is stable and idempotent, so this is hopefully not a problem. We also add a counter that is incremented on each reconfig to reduce the amount of additional work per frame to nearly zero. The reason we can't move mpcodecs_reconfig_vo() to mplayer.c is because of hardware decoding: we need to check whether the video chain works before we decide that we can use hardware decoding. Changing it so that this can be decided in advance without building a filter chain sounds like a good idea and should be done, but we aren't there yet.
* macosx_application: fix file opening on 10.9 (for real this time)Stefano Pigozzi2013-09-131-1/+1
| | | | | | | | I did commit 86c05655d by thinking `mpv` already removed the `mpv` from argc/argv. It actually is still there, so the argc must be 1 to check for no arguments. Thanks to @Nyx0uf for pointing out the bug and for testing on 10.9!
* macosx: always active bundle path lookup if cocoa is activeStefano Pigozzi2013-09-123-21/+3
| | | | | This is not really something you want to disable anyway. If there is no bundle the code already does it's falbacks anyway.
* macosx_application: fix file opening on OS X 10.9 (hopefully)Stefano Pigozzi2013-09-121-1/+10
| | | | | | | | File opening through Finder, apparently drops `--psn` arguments on Mavericks and just uses no args. Modify the code to account for that case. This wasn't tested on 10.9 itself (I don't have a paid dev account), but it *should* work if I understood the problem correctly.
* mpvcore/path: Fix non-MinGW buildsMartin Herkt2013-09-121-2/+5
| | | | Well that was dumb.
* wayland/shm: fix resizing for good (finally)Alexander Preisinger2013-09-121-7/+45
| | | | | | Problem: I own the buffer and I destroyed while still being displayed. Solution: Add a temporary buffer and destroy it when the next buffer is attached.
* mpvcore/path: Fix config path handling on WindowsMartin Herkt2013-09-121-5/+21
| | | | | | | | | | | | | | | | | | | | | | | | Previously, mpv incorrectly used the %HOME% environment variable on MinGW to determine the current user’s home directory. This is wrong; the correct variable to use would be %HOMEPATH%, which would however still be wrong since application data goes into the application data directory, not the user’s home. This patch makes it use the local AppData path instead of reading an environment variable. This however exposed another problem (which also affected users who actually had the %HOME% variable set): b2c2fe7a3782 (discussed in issue #95) introduced some changes that make mpv load user config files from the executable path on Windows. The problem with this change is that config_dir was still declared static, so once a config file had been found in the executable path, it would set config_dir to an empty string, so mpv would dump e.g. watch_later data straight into the user’s home. This commit also fixes that. One side effect of this is that mpv no longer considers the “mpv” subdirectory in the executable path (that behavior resulted from the homedir variable always being empty), unless it is somehow unable to determine the local AppData path.
* wayland: change fs messages to dbgAlexander Preisinger2013-09-121-2/+2
| | | | These messages are only helpful when debugging.
* wayland/egl: use wayland logAlexander Preisinger2013-09-121-10/+7
|
* wayland/shm: use wayland logAlexander Preisinger2013-09-121-11/+11
|
* Revert "wayland: don't create our own log context"Alexander Preisinger2013-09-123-13/+18
| | | | | | | This reverts commit beab54506e61bc080880e827e351439f76542e68. Conflicts: video/out/wayland_common.c
* gl_osd: mp_msg conversionwm42013-09-125-10/+11
|
* aspect: mp_msg conversionwm42013-09-121-6/+5
|
* gl_lcms: mp_msg conversionwm42013-09-123-11/+22
| | | | | Have to deal with some dumb stuff in LittleCMS2's API: its error handler is global.
* gl_common: complete mp_msg conversionwm42013-09-127-42/+42
| | | | Hopefully this works on Wayland and Cocoa, which I didn't test.
* x11_common: mp_msg conversionwm42013-09-122-40/+38
| | | | | Doesn't touch some parts, like the X11 error handler (which doesn't allow setting a context pointer).
* gl_32: mp_msg conversionAlexander Preisinger2013-09-111-9/+7
|
* w32_common: mp_msg conversionAlexander Preisinger2013-09-111-14/+12
|
* gl_x11: mp_msg conversionAlexander Preisinger2013-09-111-12/+10
|
* Makefile: update DIRS to fix cleaningStefano Pigozzi2013-09-111-1/+2
| | | | Commits 40624100 and 72f2942df didn't update the variable accordingly.
* input: fix accidental NULL pointer dereferencewm42013-09-111-2/+2
| | | | | | | This could happen if the input queue was full, and an unmapped key was used, or something like this. Possibly fixes github issue #224.
* input: convert to new msg APIStefano Pigozzi2013-09-103-27/+26
|
* cocoa_common: remove most of the special handling for cursor autohideStefano Pigozzi2013-09-101-17/+3
| | | | | | | | | | | | | | | This is mostly related to the fullscreen behaviour. cecbd8864 introduces an option to make mpv behave like a OSX user would expect. This commit changes the Cocoa parts of the code to be consistent with the behaviour on X11. Old behaviour is still available through the option mentioned in cecbd8864. There is still custom logic in the cocoa backend and it can probably be moved to core: * Don't perform autohide if the mouse is down * Don't perform autohide outside of the video window Fixes #218 (by accident)
* mplayer: remove duplicated mouse autohide checkStefano Pigozzi2013-09-101-2/+0
|
* wayland/common: improved error messagesAlexander Preisinger2013-09-101-4/+8
| | | | | The previous error message were not very usefull. Also include a hint where to look for solutions.
* mplayer: print libquvi results in verbose modewm42013-09-101-0/+31
| | | | Helpful for debugging.
* quvi: restore playback position when switching formatswm42013-09-103-4/+13
| | | | This simply issues a seek after reloading.
* quvi: coerce libquvi 0.4 support into allowing format switchingwm42013-09-103-6/+30
| | | | | | | | | | | | | libquvi 0.4 doesn't allow us listing the formats supported by a streaming site without doing additional network accesses, so switching formats was not supported with it. (It's different with libquvi 0.9.) But the most important case is switching between SD and HD. Usually, --quvi-format=default will get SD, while --quvi-format=best gives HD. Use this, and pretend that an URL supported by libquvi 0.4 supports both of these. "cycle quvi-format" will switch between these. If the user specifies something else via --quvi-format, this is included in the list of switchable formats additionally to "default" and "best".
* stream_bluray: return number of titleswm42013-09-101-6/+11
| | | | So that the "titles" property returns the number of titles.
* command: make title property unavailable if there's no supportwm42013-09-101-3/+3
| | | | | Instead of returning 0 if the stream doesn't have title info, make the property unavailable.
* stream: force demuxer of cached stream, fixes cdda:// + cachewm42013-09-101-0/+1
|
* mplayer: mentioned --list-options in --help outputwm42013-09-101-1/+3
| | | | | | It's annoying for users if you can't get a list of options with --help, but on the other hand, printing all options would be overkill. So just mentioned --list-options.
* Makefile: restore manpage dependency ruleswm42013-09-101-0/+9
| | | | | | Broken by commit 0054073. Also add them to the pdf target.
* manpage: various improvementswm42013-09-106-106/+87
| | | | Took a superficial look at the manpage, and fixed whatever I spotted.
* wayland: update license headersAlexander Preisinger2013-09-093-23/+16
|
* wayland/shm: version detection that also worksAlexander Preisinger2013-09-091-3/+8
| | | | The previous method would break on the next release. Because I am stupid.
* Add PDF manual targetMartin Herkt2013-09-094-19/+75
| | | | | | This builds a PDF version of the manpage using rst2latex and pdflatex, and installs it to PREFIX/share/doc/mpv by default.
* demux: keep title chapter tag in uppercasewm42013-09-082-2/+2
| | | | | | | This is generally more uniform. Do the same for the file global title in demux_mkv.c, although that is not strictly related to chapters.
* demux_mkv: support V_PRORESwm42013-09-083-0/+11
| | | | | | | Why not... Code for demangling Matroska-style prores video packets inspired by libavformat's Matroska demuxer.
* DOCS/crosscompile-mingw.txt: UpdateMartin Herkt2013-09-081-17/+9
|
* Manpage: Fix formatting (mostly for PDF output)Martin Herkt2013-09-084-13/+19
|
* find_subfiles: fix off-by-1 errorGabriel Peixoto2013-09-081-1/+1
| | | | | | | This could lead to a segfault, fixes #219 Signed-off-by: Gabriel Peixoto <gabrielrcp@gmail.com> Signed-off-by: wm4 <wm4@nowhere>
* demux: retrieve per-chapter metadatawm42013-09-086-10/+59
| | | | | | | | | | Retrieve per-chapter metadata, but don't do much with it. We just make the metadata of the _current_ chapter available as chapter-metadata property. Returning the full chapter list with metadata would be no problem, except that the property interface isn't really good with structured data, so it's not available for now. Not sure if it's worth it, but it was requested via github issue #201.
* demux: refactor tag handlingwm42013-09-083-50/+86
| | | | | Make the code somewhat reuseable, instead of bound to a single demuxer instance. The plan is to add support for per-chapter tags later.
* core: remove a minor memory leakwm42013-09-082-0/+2
|
* demux_mkv: don't overflow packet queue when doing sub-prerollwm42013-09-081-4/+13
| | | | | | | | | | | | | | Consider the cluster used for prerolling contains an insane amount of subtitle packets. Then the demuxer packet queue would be full of subtitle packets, and demux.c would refuse to read any further packets - including video and audio packets, resulting in EOF. Since everything involving Matroska and subtitles is 100% insane, this can actually happen. Fix this by putting a limit on the number of subtitle packets read by preroll, and throw away any further packets if the limit is exceeded. If this happens, the preroll mechanism will stop working, but the player's operation is unaffected otherwise.
* osc: rename osd_font, add some glyphsChrisK22013-09-082-4/+2
| | | | | | | | | | Cherry picked from various commits in lua_experiment by ChrisK2. The metrics of the OSD symbols change slightly, possibly due to the font editor that was used, and the metrics were not correct to begin with. (But the real reason seems unknown.) Remove the rescaling of the OSD font in ASS_USE_OSD_FONT, because the height more or less fits now. (This change wasn't in the lua_experiment branch.)
* osd_libass: make sure Z-order is well defined for multiple eventswm42013-09-081-0/+1
| | | | Otherwise, events may overlap in arbitrary ways.
* mplayer: cosmetics: split some code off of run_playloop()wm42013-09-081-117/+159
| | | | | | run_playloop() is already stuffed enough. This function is still quite big, but all the other code shares various variables, so it's not as easy to split.
* mplayer: add --cursor-autohide-fs-only optionwm42013-09-085-19/+31
| | | | | | | | This option makes the cursor always visible in windowed mode. Apparently, this is what (some?) Windows and OSX users expect. It's disabled by default for now. Restructure the cursor hide logic a bit for this purpose.
* options: remove --(no-)mouseinput optionwm42013-09-086-11/+5
| | | | I have no idea why it exists, as it's redundant to --(no-)mouse-movements.
* options: cosmetics: move cursor_autohide_delay definitionwm42013-09-083-7/+8
| | | | No functional changes.
* input: rearrange codewm42013-09-081-44/+44
| | | | | | Let all key events go through mp_input_feed_key() internally, and also do double click and MP_INPUT_RELEASE_ALL handling there. Move check_autorepeat() to where it's actually used.
* input: don't deliver mouse events if mouse area is not setwm42013-09-082-4/+12
| | | | | | | | | | | | | | | | | | | | | This caused the OSC to be always visible at startup on X11: - EnterNotify event send a mouse event to input.c - OSC has not completely initialized yet, and no mouse area is set - mouse event is dispatched to "showhide" OSC section - OSC becomes visible, regardless of mouse position Fix this by treating the mouse area as empty if it's not set, instead of infinite as it was before this commit. This means an input section must set a mouse area to receive mouse events at all. We also have to change the default section to receive mouse events with the new behavior. Also, if MOUSE_MOVE is unmapped (or mapped to something that doesn't parse), and produces no command, the mouse position wouldn't be updated (because the mouse position is bound to input commands), so we have to generate a dummy command in this case. (This matters only for the OSC, On Screen Controller, which isn't merged yet, so these changes shouldn't have much effect right now.)
* input: merge consecutive mouse move eventswm42013-09-081-0/+14
| | | | Might give better behavior on load.
* input: split queue_add() functionwm42013-09-081-20/+20
| | | | | Split it into queue_add_head() and queue_add_tail(). Gets rid of the weird, rarely used boolean parameter.
* input: redo what input events can be droppedwm42013-09-081-57/+65
| | | | | | | | | | | | | | | | Until now, any command was dropped as soon as the input queue was full, and the command was not an abort command (i.e. a command that exits the player or goes to the next file). This could cause issues with key down events (especially mouse buttons) not being released. Change it so that key up events can never be dropped. This is a bit involved, because we know whether a key maps to an abort command only after interpreting it, and interpreting it changes global state, which in turn requires undoing the event if the input is dropped. Refactor the code a bit to move more functionality into interpret_key() to make this easier.
* input: remove separation between key and control queuewm42013-09-081-16/+10
| | | | | This is actually quite useless. It also allows the control queue to starve the key queue, because the control queue is always checked first.
* example.conf: some modificationswm42013-09-071-23/+22
| | | | | | Remove options which are too obscure and most likely not very useful in general, or update them to something more modern. Add some comments about how configuration files work in general.
* mplayer: don't auto-load explicitly loaded subtitle fileswm42013-09-072-1/+11
| | | | | | | | | | | Even if a subtitle was explicitly loaded with -sub, it was still auto- loaded (if auto-loading applied to that file). Fix this by explicitly checking whether a file is already loaded. The check is maximal naive and just compares the filenames as strings. The change in find_subfiles.c is so that "-sub something.ass" happens to work (auto-loading prepended a "./" to it, so the naive filename comparison check didn't work).
* find_subfiles: don't auto-load .sub file if .idx file existswm42013-09-071-22/+55
| | | | | | | | | | | | | | | | External vobsubs usually come as .idx/.sub pairs. Loading the .idx file implicitly loads the .sub file, whereas loading the .sub file will kind of work, but miss important information such as subtitle resolution. Or in other words, if the .idx file exists, adding the .sub file as track is useless and confusing. Explicitly remove .sub file from the auto-load suntitle list in these cases. Standalone .sub files are still loaded. We also drop that weird logic that excluded .utf8 files from being loaded if -subcp was in use. I hope the associated use case didn't make much sense to begin with. If not, we could still implement it properly, instead of this weird hack.
* find_subfiles: some cleanupswm42013-09-072-8/+0
| | | | | | | Remove a crap assert() (what... either it can't happen, or it should error or at least abort() if it can't be handled). Remove some dead definitions.
* find_subfiles: use stat() instead of opening the file to check existencewm42013-09-071-3/+1
| | | | | | | Use mp_path_exists() to check for existence of a file (which in turn uses stat()), instead of opening and closing it. The difference is that if we don't have sufficient permissions to read the subtitle files, we will loudly complain. Personally, I prefer this behavior.
* find_subfiles: don't try to open URLs as directorieswm42013-09-071-0/+3
| | | | | Did things like opendir("http://..."). Makes no sense, and just generates noise.
* mp_core: fix a commentwm42013-09-071-2/+1
| | | | track.demuxer is never NULL (anymore).
* mplayer: remove unused mp_add_subtitles() parameterwm42013-09-073-6/+6
|
* command: make options writeable in idle modewm42013-09-073-0/+13
| | | | | | | | | | | | Until now, options could be accessed as properties via "options/name", but the access was read-only. Change it so that write access is possible in --idle mode. (All options have to support setting options at that time, simply because of the way MPlayer designed per-file options. During playback, normal properties take care of changing things, including things backed by options.) This is work in progress. There are some issues: at least setting the "vf" and "af" options won't work for strange reasons.
* command: remove some unneeded codewm42013-09-071-6/+1
| | | | | | | chapter_display_name() always returns something. The "chapter < -1" check is not needed, because this is done at the start of the function.
* macosx_application: handle mpv:// linksStefano Pigozzi2013-09-072-0/+17
| | | | | | | Pretty useful for people writing userscripts for web browsers. Links starting with 'mpv://' are forwarded to the mpv OSX bundle. The leading 'mpv://' is stripped from the recived url and the rest of the string is inserted as is in the playlist.
* macosx_application: handle URL events as fileopen eventsStefano Pigozzi2013-09-072-36/+40
| | | | | This allows to open URLs directly with mpv. This is useful for streaming and libquvi supported sites.