aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* 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).
* player: handle DVB demuxer reloading correctlyGravatar wm42014-10-28
| | | | | | | | This was probably done incorrectly in cases when the currently selected channel had no data. I'm not sure if this codepath is functional at all, though. Maybe not. Untested due to lack of DVB hardware.
* client API: better error reportingGravatar wm42014-10-28
| | | | Give somewhat more information on playback failure.
* client API: add an enum for mpv_event_end_file.reasonGravatar wm42014-10-28
| | | | | | | | | Using magic integer values was an attempt to keep the API less verbose. But it was probably not a good idea. Reason 1 (restart) is not made explicit, because it is not used anymore starting with the previous commit. For ABI compatibility, the value is left as a hole in the enum.
* player: handle edition reloading slightly differentlyGravatar wm42014-10-28
| | | | | | | Use the codepath that is normally used for DVD/BD title switching and DVB channel switching. Removes some extra artifacts from the client API: now MPV_EVENT_END_FILE will never be called on reloads (and neither is MPV_EVENT_START_FILE).
* demux: seek to position 0 when loading, instead of restoring itGravatar wm42014-10-28
| | | | | | | | | | This was originally done for DVD/BD/DVB, where the start position could be something different from 0, and seeking back to 0 would mess it up completely. Since we're not quite sure that these streams are unseekable, we can simplify this somewhat, and also make sure we also start at 0 for normal files. Helps a little bit with the following edition reloading commit.
* client API: clarify statement about thread-safetyGravatar wm42014-10-28
| | | | | | | | | The only reason for mpv_wait_event() not being thread-safe is that it returns a pointer to a mpv_event struct member in the mpv_handle context, which in turn is done for ABI-safety (user doesn't allocate or manage the struct), and to avoid the need additional memory management. Some users were interpreting this incorrectly.
* coreaudio: only list output devicesGravatar Stefano Pigozzi2014-10-28
|
* manpage: clarify loadfile append-play modeGravatar wm42014-10-28
| | | | Documents the behavior introduced with the previous commit.
* command: play the correct entry with loadfile ... append-playGravatar Alessandro Ghedini2014-10-27
| | | | | The playlist may be non-empty even if the player is idle. Instead of playing the first entry, play the entry that was just added.
* player: don't spam video-reconfig eventGravatar wm42014-10-27
| | | | | | | | Without --force-window, this is called on every iteration or so, and calling uninit_video_out() sends the video-reconfig event. Avoid sending redundant events. Fixes #1225 (using an alternative patch).
* cocoa: fix small leakGravatar Stefano Pigozzi2014-10-27
|
* libmpv: cocoa: fix view leak on uninitGravatar Stefano Pigozzi2014-10-27
| | | | | The code was lacking a -removeFromSuperview call which resulted in a leak on our part if the parent view in the client was not released.
* libmpv: cocoa: add basic menuGravatar Stefano Pigozzi2014-10-27
|
* command: try 'icy-title' metadata for media-title as wellGravatar Alessandro Ghedini2014-10-27
|
* x11: fix display FPS detection for interlaced modesGravatar wm42014-10-27
| | | | | | | | | In interlaced modes, we output fields, not complete frames, so the framerate doubles. The method to calculate this was borrowed from xrandr code. Hopefully fixes #1224.
* dxva2: use gpu_memcpy with unmatched stridesGravatar James Ross-Gowan2014-10-27
| | | | Like memcpy_pic, this checks if the strides match first.
* command: add audio-device propertyGravatar wm42014-10-27
| | | | Meant for changing the --audio-device at runtime.
* audio: add command/function to reload audio outputGravatar wm42014-10-27
| | | | | Anticipated use: simple solution for dealing with audio APIs which request configuration changes via events.
* dxva2: fix copying surfaces with different strideGravatar James Ross-Gowan2014-10-27
|
* dxva2: fix crash on initialization failureGravatar wm42014-10-26
| | | | If dxva2_init() fails, dxva2_uninit() will be called twice.
* TOOLS/lua/autoload: fix operation outside of working dirGravatar wm42014-10-26
| | | | Fixes #1222. (This commit is based on a patch posted there.)
* TOOLS/lua/autoload: don't shadow local variableGravatar wm42014-10-26
| | | | "dir" is already used somewhere above. This was ok, but not nice.
* manpage: options: various fixesGravatar Alessandro Ghedini2014-10-26
|
* dxva2: gpu_memcpy: fix build for GCC 4.8.3Gravatar James Ross-Gowan2014-10-26
|
* vo_direct3d: support nv12/nv21 directlyGravatar wm42014-10-26
|
* video: clarify what IMFMT_DXVA2 isGravatar wm42014-10-26
|
* dxva2: use optimized memcpyGravatar James Ross-Gowan2014-10-26
| | | | | | At least on my machine, reading back the frame with system memcpy is slower than just using software rendering. Use the optimized gpu_memcpy from LAV to speed things up.
* lua: subprocess: fix dumbGravatar wm42014-10-26
|
* lua: subprocess: tunnel stderr through mp_logGravatar wm42014-10-26
| | | | | | | | | | | Pretty much a fringe-feature, but also it's awkward if something appears on the terminal with no indication for the source. This is made quite awkward by the fact that stderr and stdout could be closed at different times, and that poll() doesn't accept "holes" in its FD list. Invalid (.e.g negative) FDs just make it return immediately, as required by the standard. So sparse_poll() takes care of the messy details.
* osdep: add helper for creating a sane pipe()Gravatar wm42014-10-26
| | | | | Or in other words, a pipe that has the CLOEXEC flag set. Needed since Linux' pipe2() is not in POSIX yet.
* lua: parse_json(): fix inverted condition for trail argumentGravatar wm42014-10-26
| | | | It accidentally had the opposite meaning.
* lua: subprocess: don't distinguish pipe errors/EOFGravatar wm42014-10-26
| | | | | | | What was the purpose of that? Probably none. Also simplify another thing: if we get the cancel signal through FD, there's no reason to check it separately.