summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* options: fix --volume option range, add some explanations to manpagewm42013-09-072-1/+7
| | | | | | | | The --volume option accepted values up to 10000, but internally, the value is always clipped to 0-100 range. What makes this even worse is that --softvol-max suggests that it extends the range of --volume, which is not the case. (And passing a volume larger than 100 to --volume didn't even print a warning.)
* demux_lavf: workaround for broken libavformat subtitle seekingwm42013-09-071-4/+23
| | | | | | | | | | | | | | The really funny thing about this commit is that this code is added on top of another work around. Basically, subtitle seeking in libavformat is completely broken. To make it useful, we have to add yet another workaround. The basic problem is that libavformat's subtitle seeking code always uses the stream time base, instead of AV_TIME_BASE if stream index -1 is passed to the avformat_seek_file() function. Fixes github issue #216. Hopefully this will be fixed in ffmpeg too at some point.
* input: don't print warning if certain internal keys are not boundwm42013-09-062-6/+5
| | | | | | | | | | | This affects MOUSE_MOVE and MOUSE_LEAVE. Both are needed internally (such as for the OSC), but not really useful for input.conf. Since the warning has the purpose of notifying the user that a key is unmapped and what key name to use for setting up a binding in input.conf, the warning is rather useless in this case. It's also annoying in combination with the --no-input-default-bindings option, since that removes the default bindings to "ignore" for these keys.
* etc: delete mplayer.xpmwm42013-09-051-239/+0
| | | | I don't think we need this anymore.
* mplayer: try to resume playback only if a resume file actually existswm42013-09-051-1/+1
| | | | | Well, this was dumb. The resume message was printed for every file, whether a resume config file existed or not.
* mpvcore/input: Fix build without pthreadsMartin Herkt2013-09-051-3/+5
|
* macosx_events: fix modifiers handling with media keysStefano Pigozzi2013-09-051-1/+1
| | | | | | This was caused by a typo. Regression from add7c2955df. Fixes #213
* mplayer: print informative message when resuming playbackwm42013-09-041-0/+2
| | | | In particular, this informs the user how to disable this.
* mplayer: make --save-position-on-quit save only on quitwm42013-09-042-4/+5
| | | | | | | | | | | | When enabling --save-position-on-quit, playback position stored not only on quit, but in any case playback of a file was stopped. This includes going to the next file with playlist navigation commands. After some discussion on IRC, it turned out that nobody thought this was good behavior. Disable it, and really make it save only on quit. Maybe the option is useless now, as the user could remap the CLOSE_WIN key binding. On the other hand, CLOSE_WIN sounds and _is_ a bit obscure.
* mplayer: always write playback resume info, even at start/end of filewm42013-09-041-3/+3
| | | | | | | | | | | | | | | | | | Before this commit, the player didn't write resume info if the playback position was within the first or last percent of the file. This was sometimes annoying, and with playlist resume can lead to unintuitive behavior. (It wouldn't resume the playlist if the currently played file was at 0-1% or 99-100%, even if you were in the middle of a playlist.) Moreover, the "percent > 99" check is a bit bogus anyway, because 100 (in integer) is rarely reached. Drop the check, and make sure using --save-position-on-quit won't write resume info when reaching EOF. The latter check is needed to make sure playback of the file starts at beginning when playing it again after EOF.
* path: better check for mp_is_url()wm42013-09-041-3/+11
| | | | | | | | | | | The previous check just searched for a "://" substring. This was quite bad, because "://" can be a valid part of a path. Later, I added special handling for filenames starting with "." and "/", so that you could reliably pass arbitrary filenames to mpv, no matter how messed up they were. Even though it doesn't really matter in practise anymore, this is still crap, so add a more reliable check instead.
* mplayer: allow resuming from playlistwm42013-09-043-3/+26
| | | | | | | | | | | | | | | | | | This includes the case of passing multiple files to command line (internally this is the same as loading a playlist). Resuming works by finding the first playlist entry that can be resumed. Alternative implementations would be possible, such as hashing the playlist contents. But this implementation is simpler, and doesn't have the disadvantage that changes to the playlist (like appending entries) will throw away the resume point. This makes loading large playlists a bit slower, because it has to look into ~/.mpv/watch_later/ for every entry. Loading a 15000 entries playlist now increases from 150ms to 400ms. Considering you rarely load playlists this big with mpv (because it's impractical considering the terminal and non-GUI nature of the player), this is probably ok.
* command: unescape URLs for ${filename} and ${media-title}wm42013-09-041-2/+7
| | | | | | | | | | | Undo URL percent encoding if the filename appears to be an URL. This will fix display of the actual filename in some cases. We don't put any effort into checking whether the URL is really percent encoded, because we don't really know how the protocol handler is going to interpret the URL. For stream_lavf, we probably can't know. Still, from the perspective of this commit, it seems to make sense to assume they are percent encoded.
* path: add a common mp_is_url() functionwm42013-09-045-16/+17
| | | | Remove the duplicated code.
* x11_common: don't allocate more than needed for iconwm42013-09-041-3/+4
| | | | | | | | | icon_size is the number of array items of type long, not bytes. Change the type of icon_size to int, because size_t makes you think of byte quantities too quickly. As an unrelated change, change the (char *) cast to (unsigned char *), because it matches the common XChangeProperty idiom better.
* tv: attempt to support mjpeg streamswm42013-09-041-2/+6
| | | | | | | | | | MPlayer handles this correctly, because MPlayer still has the FourCC codec dispatch (codecs.conf). We need to handle this case specially, because the libavformat rawvideo decoder will of course not eat mjpeg. mjpeg is the only supported format, though. (Even MPlayer needs to convert between V4L2 formats and MPlayer FourCCs, and mjpeg is the only non-raw format.)
* mplayer: handle --reset-on-next-file=""wm42013-09-041-4/+6
| | | | | | | The option list contains an empty string member with this option value, so ignore that. I'm not sure whether the option list should maybe be empty in this case, but it could be the wrong thing in case of other options.
* mplayer: don't let playback resume force options that are file localwm42013-09-041-11/+11
| | | | | | | | This happens by default with pausing: if a file was paused when doing quit_watch_later, then resume and unpause, then the file played after that would start in paused mode. This is because the pause option is backed up at thr wrong place, so it backs up the state from resuming, instead of whatever it was set to before that.
* configure: build with wayland 1.2.0Alexander Preisinger2013-09-032-1/+6
| | | | | For the time being there will be a check if someone uses wayland from git, because I really really like to have the others formats too.
* configure: improve wayland checkAlexander Preisinger2013-09-031-12/+6
|
* macosx_events: send a `release all` after key up eventsStefano Pigozzi2013-09-021-0/+2
| | | | | | | | This prevents keys to become stuck due to changing keyboard modifiers during the key down. Not the prettiest approach but event `x11_common` does it like this. Fixes #210
* macosx_events: remove duplicationStefano Pigozzi2013-09-021-29/+33
| | | | refactoring: extract method `handleMPKey:withMask:`
* cocoa_common: remove unlocking from fullscreen functionStefano Pigozzi2013-09-021-12/+0
| | | | | This was added in the past to prevent a deadlock, but is not needed anymore.
* cocoa_common: avoid the opengl view to leak it's stateStefano Pigozzi2013-09-021-7/+13
| | | | | Just because everything is in a single file it doesn't excuse us to have high coupling between C and ObjC code.
* cocoa: enqueue events only if input context is presentStefano Pigozzi2013-09-011-1/+2
|
*