aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
...
* ao_coreaudio_exclusive: factor format selectionGravatar wm42015-07-03
|
* ao_coreaudio_exclusive: separate out stream selectionGravatar wm42015-07-03
|
* client API, dxva2: add a workaround for OpenGL fullscreen issuesGravatar wm42015-07-03
| | | | | | | | | This is basically a hack for drivers which prevent the mpv DXVA2 decoder glue from working if OpenGL is in fullscreen mode. Since it doesn't add any "hard" new API to the client API, some of the code would be required for a true zero-copy hw decoding pipeline, and sine it isn't too much code after all, this is probably acceptable.
* vo_direct3d, dxva2: use the same D3D deviceGravatar wm42015-07-03
| | | | | Since we still read-back (and don't have hard plans on changing this), this doesn't have much of an advantage.
* dxva2: move device creation codeGravatar wm42015-07-03
| | | | Preparation for the following commit.
* vo_opengl: log some more stuff in verbose modeGravatar wm42015-07-03
|
* av_log: print FFmpeg versionGravatar wm42015-07-03
| | | | | The individual library versionsd are pretty useless. This will actually tell us at least the git hash or git tag of the FFmpeg build.
* player: simplify reload logicGravatar wm42015-07-02
| | | | Instead of only reloading the demuxer, reopen the stream as well.
* player: remove automatic DVB channel advancement on no dataGravatar wm42015-07-02
| | | | | | | | For the sake of removing the separate stream/demuxer loading code. This could probably be reimplemented in some other way, but I have no DVB hardware for testing. The most preferred way would be making DVB to not quit, and just rerun the stream selection.
* player: unentangle --stream-dumpGravatar wm42015-07-02
| | | | | | | | The final goal is making opening the demuxer and opening the stream the same operation. Stream dumping is a rather uninteresting feature, but has a small number of vocal users, and it's easy to keep.
* vo_opengl: fix "freezes" after seeking with interpolation onGravatar wm42015-07-02
| | | | | | | | | | | | | | | | | | | | When seeking to a different position, and seeking takes long, the OSD might get redrawn. This means that the VO will receive a request to redraw an old frame using whatever the previous PTS was. This breaks the interpolation logic: the old frame will be added to the queue, and then the next frames (with lower PTS if you seeked backwards) are not drawn as the logic assumes they're past frames. Fix this by using the non-interpolation code path when redrawing after a seek reset, and no "real" frame has been drawn yet. It's a recent regression caused by the redrawing code simplification. The old code simply sent a VOCTRL for redrawing the frame, and the VO had to deal with retaining the old frame on its own. This is a hack as in there's probably a better solution. Fixes #2097.
* vo: reset frame timing when redrawingGravatar wm42015-07-02
| | | | bother vo_vdpau.c, which actually uses these times.
* vo_opengl: X11: don't leak when GL init failsGravatar wm42015-07-02
|
* vo_opengl: X11 EGL: more detailed error reportingGravatar wm42015-07-02
|
* vo_opengl: update EGL codeGravatar wm42015-07-02
| | | | Use the newer internal GL backend API.
* vo_opengl: remove unused GL API functionsGravatar wm42015-07-02
|
* x11: move GCs and background clearing to vo_xvGravatar wm42015-07-01
| | | | vo_xv.c is the only place where these things are used.
* x11: remove clear on mapGravatar wm42015-07-01
| | | | | | | | Less code, and avoids a black flash on start. In theory it could happen that we map the window, and then don't have a frame to draw - but mapping the window is done in the exact moment we have a new frame to display.
* options: fix conversion of flags to stringsGravatar wm42015-07-01
| | | | | | | | | | This flags stuff tried to be too clever - if there are overlapping flags (e.g. exclusive or combined flags), the one matching with most bits has to be chosen. This fixes logging of the seek command. E.g. "relative" and "absolute" overlap to make them exclusive, but "relative" was always printed as it happened to match first.
* vo: better magic value for unknown vsync intervalGravatar wm42015-07-01
| | | | | The value 1 is useful in some contexts, but not such a good choice otherwise.
* vo_opengl_cb: fix interpolation code pathGravatar wm42015-07-01
|
* vo_opengl: fix framestepping/pausing + interpolationGravatar Niklas Haas2015-07-01
| | | | | | | | This is not the most theoretically perfect solution, ideally we could check to see if the frame in question has already been rendered somewhere in the queue and then avoid re-rendering it, at the cost of a few extra lines of code. But I don't think the performance trade-off is dramatic enough here.
* vo: change internal API for drawing framesGravatar wm42015-07-01
| | | | | | | | | | | | | | draw_image_timed is renamed to draw_frame. struct frame_timing is renamed to vo_frame. flip_page_timed is merged into draw_frame (the additional parameters are part of struct vo_frame). draw_frame also deprecates VOCTRL_REDRAW_FRAME, and replaces it with a method that works for both VOs which can cache the current frame, and VOs which need to redraw it anyway. This is preparation to making the interpolation and (work in progress) display sync code saner. Lots of other refactoring, and also some simplifications.
* vo_opengl: adjust interpolation code for the new video-sync mechanismGravatar Niklas Haas2015-07-01
| | | | | | | | | | | | | This should make interpolation work much better in general, although there still might be some side effects for unusual framerates (eg. 35 Hz or 48 Hz). Most of the common framerates are tested and working fine. (24 Hz, 30 Hz, 60 Hz) The new code doesn't have support for oversample yet, so it's been removed (and will most likely be reimplemented in a cleaner way if there's enough demand). I would recommend using something like robidoux or mitchell instead of oversample, though - they're much smoother for the common cases.
* video: pass vsync offset to VOGravatar wm42015-07-01
| | | | | | | For now, this is trivial (and actually redundant). The future display sync code will make better use of it. The main point is that the new internal API pretty much makes this transparent to the vo_opengl interpolation code.
* video: pass future frames to VOGravatar wm42015-07-01
| | | | | | | | | | Now the VO can request a number of future frames with the last parameter of vo_set_queue_params(). This will be helpful to fix the interpolation code. Note that the first frame (after playback start or seeking) will usually not have any future frames (to make seeking fast). Near the end of the file, the number of future frames will become lower as well.
* af_lavrresample: log actual channel layout conversionsGravatar wm42015-06-30
| | | | | With all the reordering etc. that can go on in this filter, it's useful to see what upmix/downmix it's actually performing.
* demux_lavf: check for NAN rotation anglesGravatar wm42015-06-30
| | | | Yep, the FFmpeg API can return this.
* player: slim down A/V desync warningGravatar wm42015-06-30
| | | | | I don't think most of these suggestions are overly helpful. Just get rid of them.
* build: always regenerate version hashGravatar wm42015-06-30
| | | | | | | | | Until now, it only used the hash from the previous configure run, instead of trying to get the latest hash. The "old" build system did this correctly - we just have to use the existing logic in version.sh. Since waf supports separate build dirs, extend version.sh with an argument for setting the path of version.h.
* manpage: fix copy&paste mistakesGravatar wm42015-06-30
| | | | | | | These are definitely not per-track. (Maybe we should just provide a script or such which pretty-prints "native" property output.
* input.conf: invert mouse volume controlGravatar Martin Herkt2015-06-30
| | | | Scrolling right should increase volume, not decrease it.
* input: improve wording of key binding messagesGravatar wm42015-06-30
|
* ao_coreaudio: restore physical format if it can't be set exactlyGravatar wm42015-06-30
| | | | | | | | May help with (supposedly) bad drivers, which can put the device into some sort of broken state when trying to set a different physical format. When the previous format is restored, it apparently recovers. This might make the change-physical-format suboption more robust.
* ao_coreaudio: support native mono outputGravatar wm42015-06-29
| | | | | | | We can be pretty sure that AudioUnit will remix for us. Before this commit, we usually upmixed to stereo, because the stereo and multichannel layouts were the only whitelisted ones.
* ao_coreaudio: log hotplug events explicitlyGravatar wm42015-06-29
|
* video: fix panscan in vertical caseGravatar wm42015-06-29
| | | | | If the black bars appeared on the left/right borders, panscan=1 didn't make the video cover the whole screen.
* DOCS/man: fix some grammar errorsGravatar Daniel Bergmann2015-06-29
| | | | Signed-off-by: wm4 <wm4@nowhere>
* vaapi: prefer direct display over copy-backGravatar wm42015-06-29
| | | | | | Again. With the old OpenGL interop dropped, this probably works better than vaapi-copy now. Last time we defaulted to vaapi-copy, because the OpenGL interop could swap U/V planes and other stupid crap. We'll see.
* vaapi: treat cropped decoder output slightly more correctlyGravatar wm42015-06-29
| | | | | | | | | | | | Work around that FFmpeg doesn't distinguish between surface and cropped size. The decoder always aligns the surface size to something "convenient" (e.g. 16 for h264), and to get to the correct cropped size, the output image's width/height is reduced. Using the cropped size instead of the real surface size breaks the libva API in certain cases, so we simply store and use the original size in our per-surface struct. (If data is cropped on the left/top borders, hw decoding will simply display these - FFmpeg doesn't let us do better.)
* vaapi: fix potential NULL deref on memory allocation failureGravatar wm42015-06-29
|
* vaapi: remove vaDeriveImage() code pathGravatar wm42015-06-29
| | | | | | | In theory, this code path avoids a copy. In practice, it never seems to get enabled at all. But it does have potential for weird bugs or performance issues (like being mapped from non-cacheable memory), so kill it.
* x11: remove trailing spacesGravatar wm42015-06-29
|
* x11: Handle external fullscreen togglesGravatar Eduardo Sánchez Muñoz2015-06-28
| | | | | | | | | | | | | | | Some window managers let you change the fullscreen state of any window using a key combination. For example, on XFWM you can use Alt+F11 and on Compiz you can configure a key combination with the "Extra WM actions" plugin. With this change mpv will handle these fullscreen state changes. So, if you enter into fullscreen mode using the WM's shortcut and then you use mpv's fullscreen toggle, you will get back into window mode. Merges PR #2081. Signed-off-by: wm4 <wm4@nowhere>
* demux_mkv: disable ordered chapters if ChapterTimeEnd is missingGravatar wm42015-06-28
| | | | | | | | | | | | | If the EditionFlagOrdered is set, chapters without ChapterTimeEnd make no sense. Ordered chapters will play the chapters in the order they appear, but will play the ranges the chapters cover. So if the end time is missing, the range is incomplete and it's not clear what should be played. If you assume the start of the next chapter as end time, the ordered flag will have no observable effect, so that's not a useful assumption. This fixes playback of a file which (apparently) had the EditionFlagOrdered set accidentally, with normal chapters.
* vo_drm: make VT switching non mandatoryGravatar rr-2015-06-28
|
* vo_drm: fix missing newlines in error messagesGravatar rr-2015-06-28
|
* DOCS: fix recent typosGravatar wm42015-06-28
| | | | Pointed out by a certain wiiaboo.
* demux: export forced flagGravatar wm42015-06-27
| | | | | | At least Matroska files have a "forced" flag (in addition to the "default" flag). Export this flag. Treat it almost like the default flag, but with slightly higher priority.
* demux_mkv: ignore deprecated FrameRate, do not assume PALGravatar wm42015-06-27
| | | | | | | | | | | The "FrameRate" element is probably deprecated (it's greyed out in the "spec", and described as "Informational only" in bold). Normally files use DefaultDuration. In fact, the FrameRate field was preferred over DefaultDuration for determining framerate if present. Do not do this and rely on DefaultDuration only. Also, if no framerate is set, do not assume PAL (25 FPS). Such a fallback makes little sense and will cause more problems than it solves.