aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* vo_opengl: minimal EGL on X11 supportGravatar wm42014-11-04
| | | | | | Pretty useless and only good for testing. Does not include any form of GLES support.
* x11: rely on the Atom cacheGravatar wm42014-11-03
| | | | | XInternAtom() has a 64 entry hash table to avoid network accesses. Rely on this cache, instead of caching these manually.
* demux: unbreak build with LibavGravatar wm42014-11-03
| | | | ....
* demux: don't account known range for streams that are EOFGravatar wm42014-11-03
| | | | | | | | | This influences the demuxer readahead display. If a stream has reached EOF, we want to ignore it for the purpose of this calculation. Note that if a stream contains no packets, it still should cause the value 0s to be displayed (unless it's EOF), because that's just the actual situation.
* demux: fix PTS comparisonGravatar wm42014-11-03
| | | | | | | | This was relying on the fact that timestamps will always be numerically larger than MP_NOPTS_VALUE, but the trick didn't actually work for MP_PTS_MIN. Be a bit more sincere, and don't rely on this anymore. This fixes the comparison, and avoids the readahead amount displaying as "???" in some situations (since one of the values was NOPTS).
* demux: don't consider stream EOF an underrunGravatar wm42014-11-03
| | | | | | | | | | | | In this case, we didn't find any new packets for this stream, even though we've read ahead as much as possible. (If reading ahead in this case, the "Too many packets in the demuxer packet queues" error is normally printed.) If we do consider this an underrun, handle_pause_on_low_cache() will pause and show the "buffering" state, which is not useful. Could also happen on very bad interleaving.
* demux_mkv: remove minor code duplicationGravatar wm42014-11-03
|
* demux_mkv: implement audio skipping/trimmingGravatar wm42014-11-03
| | | | | | | | | | | | | This mechanism was introduced for Opus, and allows correct skipping of "preroll" data, as well as discarding trailing audio if the file's length isn't a multiple of the audio frame size. Not sure how to handle seeking. I don't understand the purpose of the SeekPreRoll element. This was tested with correctness_trimming_nobeeps.opus, remuxed to mka with mkvmerge v7.2.0. It seems to be correct, although the reported file duration is incorrect (maybe a mkvmerge issue).
* ad_lavc: allow skip samples amount to be larger than 1 packetGravatar wm42014-11-03
| | | | | Apparently we actually need this. At least the following commit would break without this.
* command: add window-minimized property (X11 only)Gravatar wm42014-11-02
| | | | | | More or less requested by #1237. Should be simple to extend this to other backends.
* command: make window-scale property observableGravatar wm42014-11-02
| | | | | | | | | | | | Add a generic mechanism to the VO to relay "extra" events from VO to player. Use it to notify the core of window resizes, which in turn will be used to mark all affected properties ("window-scale" in this case) as changed. (I refrained from hacking this as internal command into input_ctx, or to poll the state change, etc. - but in the end, maybe it would be best to actually pass the client API context directly to the places where events can happen.)
* client API: nothing uses the result parameter of mpv_command_node()Gravatar wm42014-11-02
| | | | | | Add a comment about this to avoid confusing users of this function. The parameter is essentially unused, but exists so that we don't need to add extra APIs if the need for it arises.
* command: expose mpv version as propertyGravatar wm42014-11-02
| | | | A client API user has no other way to know the version.
* common: fix version variable declarationsGravatar wm42014-11-02
| | | | This was stupid.
* player: print anamorphic size only if video is anamorphicGravatar wm42014-11-02
| | | | Has been annoying me since forever.
* player: always use demux_chapterGravatar wm42014-11-02
| | | | | | | | | Instead of defining a separate data structure in the core. For some odd reason, demux_chapter exported the chapter time in nano-seconds. Change that to the usual timestamps (rename the field to make any code relying on this to fail compilation), and also remove the unused chapter end time.
* player: add --chapters-file optionGravatar wm42014-11-02
| | | | | | | | Note that you can't pass .cue or .edl files to it, at least not yet. Requested in context of allowing to specify custom chapters. For that to work well, we probably need to add some sort of chapter metadata pseudo-demuxer.
* manpage: update --playlist commentsGravatar wm42014-11-02
| | | | | | | | | | | | | | Using the --playlist option is no longer recommended. A while ago, mpv rewrote all playlist parsers and added some minimal security mechanisms (like not allowing local file access or unsafe protocols in remote playlists). Further, mpv can load playlists by passing them as normal file arguments, without the option. Now, --playlist is needed only in these situations: 1) loading plaintext files 2) disabling additional security mechanisms (e.g. using a remote playlist to play local files)
* osd: properly wakeup when the OSD function disappearsGravatar wm42014-11-01
| | | | Fixes #1236.
* cocoa: fix fullscreen delay when pausedGravatar Stefano Pigozzi2014-11-01
| | | | | | NSDisableScreenUpdates came to hunt me in the end and when mpv was paused, it did wait for a frame that never came (because of interaction with the live resizing code)!
* build: remove bundle support from wafGravatar Stefano Pigozzi2014-11-01
| | | | Use TOOLS/osxbundle.py instead. It's just better and less hacky.
* ipc: make it possible to receive log messagesGravatar wm42014-11-01
| | | | | The receiving part was implemented, but since no messages are enabled by default, it couldn't be used.
* ipc: add a command to retrieve API versionGravatar wm42014-11-01
|
* ipc: verify resume/suspend commandsGravatar wm42014-11-01
| | | | | Calling mpv_resume() too often is considered an API usage violation, and will trigger an internal assertion somewhere.
* manpage: ipc: fix command name for observe_propertyGravatar wm42014-11-01
|
* build: remove bundle support from wafGravatar Stefano Pigozzi2014-11-01
| | | | Use TOOLS/osxbundle.py instead. It's just better and less hacky.
* player: update meaning of drop_frame_cntGravatar wm42014-11-01
| | | | | Rename the variable, update comments, and update the documentation of the property which returns its value.
* player: show AV-desync message in all framedrop modesGravatar wm42014-11-01
| | | | | | | | | | | | This was shown only if decoder-framedropping was enabled, and only if at least 50 frames were dropped by it. Since drop_frame_cnt used to mean "number of late frames", this code made sense, but this is not the case anymore: drop_frame_cnt can be even 0, all while video gets hopelessly behind audio. One problem with this is that short desync spikes (which usually can probably dealt with) will also cause this message to be shown. If it gets triggered too often, the code will need to be adjusted.
* build: fix 'ar' invocation when cross-compilingGravatar wm42014-11-01
| | | | | | | | This shouldn't use the host's 'ar' when building static libs. It only worked until now because Linux 'ar' is usually built with PE support. Couldn't confirm whether it works, because this dumb crap is just broken when cross-compiling to mingw.
* cache: don't relay STREAM_CTRL_AVSEEK if it's unsupportedGravatar wm42014-11-01
| | | | | | | | Thanks to STREAM_CTRL_HAS_AVSEEK, we actually know whether CTRL_AVSEEK is implemented at all, and we can avoid a blocking wait on the cache if demux_lavf sends CTRL_AVSEEK even if it won't wait. I'm hoping this can't currently happen, but why hope if we can explicitly prevent it. It'll make us more robust against future changes in libavformat.
* sub: remove osd_get_sub()Gravatar wm42014-11-01
| | | | | Trades one strange thing against another, but seems slightly less strange.
* command: don't require whitespace before ';' or '#'Gravatar wm42014-10-31
| | | | | | | This change is probably too simplistic, but most things appear to work, so I don't care about that now. Fixes #1232.
* sub: be more flexible about changes to how subtitles are renderedGravatar wm42014-10-31
| | | | | | | | | For example, if --force-window is used, and video is switched off during playback, then you need to redecide the rendering method to get subs displayed correctly. Do this by moving the state setup code into a function, and call it on every frame.
* osdep: potentially fix compilation on OpenBSDGravatar wm42014-10-31
| | | | | The <pthread_np.h> header expects that <pthread.h> was already included. We were including <pthread.h> only later via our threads.h.
* ao_alsa: don't make snd_pcm_hw_params_set_buffer_time_near() error fatalGravatar wm42014-10-31
| | | | | | | | | | | | | Apparently this can "sometimes" return an error. In my opinion, this should never return an error: neither the semantics of the function, nor the ALSA documentation or ALSA sample code seem to indicate that a failure is to be expected. I'm not perfectly sure about this though (I blame ALSA being a weird, big, underdocumented API). Since it causes problems for some users, and since there is really no reason why we should abort on such an error, turn it into a warning. Fixes #1231.
* player: change framedrop display in the status lineGravatar wm42014-10-31
| | | | | Hopefully less confusing, and hopefully doesn't exceed the terminal width in any situation.
* player: improve exit message in some scenariosGravatar wm42014-10-31
| | | | | | | | | | | | | | If you played e.g. an audio-only file and something bad happened that interrupted playback, the exit message could say "No files played". This was awkward, so show a different message in this case. Also overhaul how the exit status is reported in order to make this easier. This includes things such as not reporting a playback error when loading playlists (playlists contain no video or audio, which was considered an error). Not sure if I'm happy with this, but for now it seems like a slight improvement.
* options: accept --audio-channels=autoGravatar wm42014-10-30
| | | | This sounds much more intuitive, while "empty" was a bit of a WTF.
* demux_lavf, stream_lavf: drop local buffers on time-seeksGravatar wm42014-10-30
| | | | | There was chance that some data was left in various local buffers after time-seeks. Probably doesn't actually matter.
* demux_lavf: mark as seekable if protocol supports seeking by timeGravatar wm42014-10-30
| | | | | | | | | | | | Basically, this will mark the demuxer as seekable with rtmp* and mmsh protocols. These protocols have network-level time seeking, and whether you can seek on the byte level does not matter. Until now, seeking was typically only enabled because of the cache, and a (nonsensical) warning was shown accordingly. It still could happen that the server doesn't actually support thse requests (or simply rejects them), so this is somewhat imperfect.
* demux_playlist: redirect ASF streaming to mmsh://Gravatar wm42014-10-30
| | | | | | | | | | | | I'm not sure if this could be done in libavformat instead. Probably not, because libavformat doesn't seem to have any mechanism for trying one protocol and reverting (or redirecting) to another one if needed. This commit is sort of a hack too, because it redirects the URL by pretending the http:// link is a playlist containing the mmsh:// link. The list of mime types is borrowed from MPlayer (which has completely different code to handle this).
* client API: qthelper: add set_option_variant()Gravatar wm42014-10-30
|
* vo_opengl: draw OSD twice in 3D mode caseGravatar wm42014-10-29
| | | | | | | | | | | | | Apparently this is needed for correct 3D mode subtitles. In general, it seems you need to duplicate the whole "GUI", so it's done for all OSD elements. This doesn't handle the "duplication" of the mouse pointer. Instead, the mouse can be used for the top/left field only. Also, it's possible that we should "compress" the OSD in the direction it's duplicated, but I don't know about that. Fixes #1124, at least partially.
* input: cascade-load input.confGravatar wm42014-10-29
| | | | | If there are several input.confs in the set of valid config paths, load them all.
* demux: fix demux_seek signatureGravatar wm42014-10-29
| | | | Probably doesn't matter much.
* demux: move some seek flag sanitation to generic codeGravatar wm42014-10-29
| | | | No reason why only demux_mkv.c should do this.
* demux_mkv: implement percentage seeking with no indexGravatar wm42014-10-29
| | | | It was implemented only for the case the index exists (pretty useless).
* demux_mkv: export packet file positionGravatar wm42014-10-29
| | | | | This gives us approximate fallback playback percentage position if the duration is unknown.
* player: don't display zero duration for files with unknown durationGravatar wm42014-10-29
| | | | | | On OSD/terminal, just don't display the duration if unavailable. Make the "length" property unavailable if duration is unavailable.
* player: add an option to abort playback on partial init failuresGravatar wm42014-10-28
| | | | | | This is probably what libmpv users want; and it also improves error reporting (or we'd have to add a way to communicate such mid-playback failures as events).