aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
...
* lua: support MPV_END_FILE_REASON_REDIRECTGravatar wm42015-06-11
| | | | And also add the missing "unknown" entry to the manpage.
* client API: add MPV_END_FILE_REASON_REDIRECTGravatar wm42015-06-11
| | | | | Requested. Minor incompatible behavior change, as it was signalling MPV_END_FILE_REASON_EOF previously.
* client API: leave mpv_event_end_file.error to 0 on no errorGravatar wm42015-06-11
| | | | | Making sure this is true makes it closer to the libmpv docs, and possibly less confusing in corner cases.
* lua: export end-file event fieldsGravatar wm42015-06-11
|
* ao_alsa: change ALSA braindeath heuristicGravatar wm42015-06-11
| | | | | | | | | | | | If you try to play surround with dmix, it will advertise surround and lets you set more than 2 channels, but will report a stereo channel map, with the extra channels identified as NA. We could handle this now, but we don't want to (because it's excessively stupid). Do it only if the channel map is not what we requested, instead of just acting if it contains NA entries at all. This avoids that we hurt ourselves in the unlikely but possible case we actually have to use channel maps with NA entries.
* command: add keypress, keydown, and keyup commands.Gravatar torque2015-06-11
| | | | | These commands are used to simulate keypresses using the key names from input.conf.
* player: use 4 as process exit code on user quitsGravatar wm42015-06-10
| | | | | | | | | | | | | So successful playback and user quit can be distinguished, for whatever reason you may want to do this. Normally, the "quit" command can be customized, but this does not work for quit commands sent by the terminal signal handler. One solution would be introducing something like "ON_SIGNAL" (equivalent to "CLOSE_WIN"), but considering there are a bunch of possible signals, I'd rather not get into this. So go with the dumb solution. Probably fixes #2029.
* options: make keyvalue list parsing less strictGravatar wm42015-06-10
| | | | | Affects for example --script-opts. A bunch of characters are now allowed in them without causing trouble to the user.
* vo_opengl: fix a small memory leak when loading user shadersGravatar wm42015-06-09
| | | | | When gl_shader_cache was destroyed, existing user shader entries leaked the file path string.
* vo_opengl: fix dangling pointers with vo_cmdlineGravatar wm42015-06-09
| | | | | | | | | | | | gl_video_set_options() does not acquire ownership of the opts parameter or its contents. In case of vo_cmdline, opts will point to temporary memory. This memory will be free'd at a later point, and p->opts will point to free'd memory on the next reinitialization. The fix is pretty ugly, but it's a quick bug fix. This can probably be removed once VO sub-options are exposed as properties. Fixes #2035.
* audio: add some change notificationsGravatar wm42015-06-09
| | | | | We must be sure that every change comes with a notification. Otherwise, some property changes could possibly be missed.
* ao_coreaudio: change physical stream format synchronouslyGravatar wm42015-06-09
|
* audio/out/pull: avoid dropping some audio when drainingGravatar wm42015-06-09
| | | | | | | | | | | | If the audio API takes a while for starting the audio callback, the current heuristic can be off. In particular, with very short files, it can happen that the audio callback is not called before playback is stopped, so no audio is output at all. Change draining so that it essentially waits for the ringbuffer to empty. The assumption is that once the audio API has read the data via the callback, it will always output it, even if the audio API is stopped right after the callback has returned.
* audio/out/pull: correctly pad partial frames with silenceGravatar wm42015-06-09
| | | | | | | | If a frame could only be partially filled with real audio data, the silence wasn't written at the correct offset. It could have happened that the remainder of the frame contained garbage. (This didn't happen in the more common case of playing dummy silence.)
* command: fix audio-out-detected-device propertyGravatar wm42015-06-09
| | | | | | | Used a wrong condition, and I suppose it could crash in some situations. Change it to lazily initialize the hotplug stuff, like the audio-device-list property does.
* command: remove unnecessary event IDsGravatar wm42015-06-09
| | | | | These were actually not needed for correct function, since individual property change notifications via mp_notify_property() are used.
* command: make property event mask matching more restrictiveGravatar wm42015-06-09
| | | | | | This was matching e.g. both "foo/bar" and "foobar" against "foo", when only the former should match. This could cause more property notifications than necessary.
* ao_alsa: refine channel count mismatch error messageGravatar wm42015-06-09
| | | | I suspect we need to hand this more gracefully in some cases.
* vaapi: add missing license headerGravatar wm42015-06-08
| | | | | | Absence of license header implies LGPL, as mentioned in the "Copyright" file. But vaapi.h contains some code taken from the mplayer-vaapi patch, which was under the typical MPlayer license.
* gl_osd: fix license headerGravatar wm42015-06-08
| | | | | | | All vo_gl.c related code has been GPL+LGPL dual-licensed. The OSD code is no exception and is also derived from vo_gl.c. Thus it should have the same license (although I think technically speaking sub-licensing it by removing one of the licenses is ok).
* vo: clarify conditionGravatar wm42015-06-08
| | | | | This is (at least currently) redundant, but makes the code more explicit. (This was discussed on IRC.)
* vo: restore frame-drop logic for high-fps clipsGravatar Avi Halachmi (:avih)2015-06-07
| | | | | | | | | Commits 92b27be and f4ce99d removed high-fps logic to to a bug. That bug was a missing parenthesis around everything after duration >= 0 && ... at the removed code. This patch restores the removed code, fixes the bug and then refactors the code a bit.
* ytdl_hook: Support 'multi_video' resultsGravatar Jaime Marquínez Ferrándiz2015-06-07
| | | | | They can be handled by the same codes used for playlists, most of them will use an EDL. Fixes #2027.
* Revert "opengl: drop less frames when clip and display have similar fps"Gravatar wm42015-06-07
| | | | | | | This reverts commit f1746741dee6000b7fd139e7a10f72aba0674b3b. Together with the other revert, this fixes #2023 (the reason being broken framedrop handling - it was dropping frames when it shouldn't).
* Revert "vo: improve frame drop logic on high playback rate"Gravatar wm42015-06-07
| | | | This reverts commit ffcad1a72b9a3bf5a7ac5ddcbfa71ec19b6faf9b.
* vo_vdpau: add a NULL check, verify image dimensionsGravatar wm42015-06-06
| | | | | | | | read_output_surface() could fail and return NULL. Also, make sure we don't set the image to a size larger than the allocated size. Normally this shouldn't happen, but in theory it could in corner cases; this is for robustness.
* audio: add --audio-spdif as new method for enabling passthroughGravatar wm42015-06-05
| | | | | | | | | | | | | This provides a new method for enabling spdif passthrough. The old method via --ad (--ad=spdif:ac3 etc.) is deprecated. The deprecated method will probably stop working at some point. This also supports PCM fallback. One caveat is that it will lose at least 1 audio packet in doing so. (I don't care enough to prevent this.) (This is named after the old S/PDIF connector, because it uses the same underlying technology as far as the higher level protoco is concerned. Also, the user should be renamed that passthrough is backwards.)
* ad_spdif: use a pseudo codec entry to select DTS-HD instead of an optionGravatar wm42015-06-05
| | | | | | | | | This deprecates the --ad-spdif-dtshd option, and replaces it with a pseudo decoder. This means ad_spdif will report two decoders, "dts" and "dts-hd", of which the second simply enables what the option did. The --ad-spdif-dtshd option will actually be deprecated in the next commit.
* audio: do not allow AO to change passthrough formatsGravatar wm42015-06-05
| | | | | | | This makes no sense, because the format can't be converted anyway. It just sets up the filter chain init code, which will vomit a bunch of useless and confusing messages. So uninit and fail explicitly when this happens.
* vo_vdpau: limit output surfaces to allowed maximum dimensionsGravatar wm42015-06-05
| | | | | | We can't do much in this case, but at least we can not call the vdpau API functions with too large sizes. Apparently the API considers this undefined behavior, and random stuff might happen.
* vo_vdpau: directly get surface size from surface for screenshotsGravatar wm42015-06-05
| | | | | | | The previous code was not wrong, but I'd claim this makes the code more robust. If a situation could happen in which the passed surface size is incorrect, we could have passed a too small image, and VdpOutputSurfaceGetBitsNative could have randomly overwritten memory.
* vo_vdpau: shorten 2 variable namesGravatar wm42015-06-05
| | | | Why should I be required to type so much?
* video: remove worthless log messageGravatar wm42015-06-05
| | | | | All this information is already output otherwise. Except the FourCC, which lost most of its importance in mpv.
* vf_sub: minor simplificationGravatar wm42015-06-05
|
* filter_kernels: distinguish between regular/EWA robidouxGravatar Niklas Haas2015-06-05
| | | | | This is because it turns out the regular robidoux is pretty useful for tscale etc.
* vo_vdpau: check maximum video sizeGravatar wm42015-06-04
| | | | | | | | | Check the maximum size of video surfaces, and refuse initialization if the video is too large for them. Maybe we could do something more sophisticated, like inserting a software scaler. On the other hand, this would have a very questionable benefit, as it would be guaranteed to be too slow.
* audio: do not exit when loading small files in paused modeGravatar wm42015-06-04
| | | | | | | | When starting in paused mode, no audio is written to the device at all, because writing audio implicitly unpauses the AO. If the file is very small, and all audio fits within the AO buffer, this accidentally triggered the EOF condition. (In unpaused mode, it would write all audio, end playback, and then wait until the AO has everything played.)
* ao_alsa: refuse to use spdif if AES flags can't be setGravatar wm42015-06-04
| | | | | Seems like a good idea to avoid accidentally playing noise by writing spdif data to pure PCM devices.
* af_lavrresample: slightly better computation of total delayGravatar wm42015-06-04
| | | | | | | On libavresample, don't ignore the buffered output data. On libswresample, don't round the total buffer size to the input samplerate.
* af_lavrresample: use a new libswresample function if availableGravatar wm42015-06-04
| | | | | It was recently added to libswresample, and it does exactly what we need.
* af_lavrresample: change output samples calculationGravatar wm42015-06-04
| | | | | | This is better, because now we call swr_get_delay() with the output samplerate, instead of with the input samplerate and then multiplying it with the ratio and rounding it up.
* ao_alsa: hack against potential spdif failureGravatar wm42015-06-04
|
* bootstrap.py: make it work on win32Gravatar wm42015-06-04
| | | | | | Apparently, just running ./waf and hoping that it will be run with a Python interpreter doesn't necessarily work. The workaround is pretty simple and reliable.
* inpout.conf: make shift+o toggle between 2 states onlyGravatar wm42015-06-03
| | | | | | | | | | | | | The "osd" command cycles between 4 states (OSD level 0-3), which is probably confusing and inconvenient. OSD levels 0 and 2 are rarely needed. I would claim there is normally not much of a need to completely disable OSD by setting level 0 during playback. Level 2 is just slightly less information than level 3, and I'm not sure why it exists at all. Change it so that it toggles between level 3 and 1. Note that this ignores the default OSD level. If the default is 3, the first use of this key will set it to 3 again. Just assume 1 is the default. If someone complains, this could be improved.
* player: print track list when switching tracksGravatar wm42015-06-03
|
* player: print a message along with track listGravatar wm42015-06-03
| | | | Slightly less strange.
* player: don't print stream list when adding external tracks during loadGravatar wm42015-06-03
| | | | | | | | | There's a short time during loading where external commands can add external streams even before the main file is loaded (like during ytdl hook execution). The track list is printed every time an external track is added via commands. This was quite awkward when ytdl was adding multiple streams, so don't print it in this stage. They are printed anyway at the end of the loading process.
* af_lavrresample: use native libavresample function for output sizeGravatar wm42015-06-02
| | | | This also drops the unused get_drain_samples() function.
* demux_lavf: fix wrong printf parameter type on 64 bit systemsGravatar wm42015-06-02
| | | | | "f.len - 4" is size_t, not int. Fix by using BSTR_P() (and a bstr function to adjust the length).
* ao_coreaudio_exclusive: move generic functions to utilsGravatar wm42015-06-02
|