aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* screenshot: don't write PNG colorspace tags by defaultGravatar wm42015-07-18
| | | | | | Generates too much discussion and confusion. Fixes #2051.
* sub: add option for stretching image subtitles to screenGravatar wm42015-07-18
| | | | | | | Probably makes users happy who want bitmap subtitles to show up in the screen margins, and stops them from doing idiotic crap with vf_expand. Fixes #2098.
* av_log: remove dumb shitGravatar wm42015-07-18
| | | | | | | It's the user's fault if he/she/it does something that is not recommended. Fixes #2110.
* vo_opengl: cleanup frame reupload logicGravatar wm42015-07-17
| | | | | | | | There are some situations when redrawing is requested, but the current frame was deleted. This could happen when switching e.g. hw decoding mid-stream. Separate uploading/drawing and fix the condition.
* build: fix windows compilation after cleanGravatar Stefano Pigozzi2015-07-17
| | | | broken since 4730e0aabab
* TOOLS: make autodeint detect telecine in parallelGravatar Kevin Mitchell2015-07-16
| | | | This avoids having to rewind the video for a second telecine detection pass.
* vo_opengl: refactor queue configurationGravatar wm42015-07-16
| | | | | | | Just avoid some code duplication. Also, gl_video_set_options() having a queue size output parameter is weird at best. While I don't appreciate that this commit suddenly requires gl_video.c to deal with vo.c directly in a special case, it's simply the best place to put this function.
* vo: fix number of future framesGravatar wm42015-07-16
| | | | | | That was 2 too many. Also fix a documentation comment.
* build: make mpv.rc depend on version.hGravatar Stefano Pigozzi2015-07-15
|
* vo_opengl: reject future images in different formatsGravatar wm42015-07-15
| | | | | | | | | | | | | The VO will be provided with future frames even if the format changes mid-stream. This caused a crash if these frames were actually used (i.e. interpolation mode was enabled). Fixes a crash when deinterlacing is toggled during playback, and the deinterlacer changes the stream format (as it can happen e.g. if the decoder outputs nv12, which in turn happens with hw decoding). (On a side note, future frames are always non-NULL. Also, the current frame is of course always in the correct format.)
* vaapi: destroy derived VAImage after each useGravatar wm42015-07-15
| | | | Appears to be required by some hardware. Whatever.
* vo_vaapi: drop unused fieldGravatar wm42015-07-15
|
* vaapi: don't assume vaQueryImageFormats() returns sorted listGravatar wm42015-07-15
| | | | | | | | | | | | | vaQueryImageFormats() returns a randomly ordered list - so we shouldn't assume the first format on the list which works is the best. This effectively switches to nv12 instead of yuv420p on some drivers. We handle this by reusing va_to_imgfmt[], and ordering it by preference. We hardcode that GPUs prefer nv12 pver yuv420p. In theory we could do complicated probing (allocate dummy surface + use vaDeriveImage on it, then retrieve the FourCC) - but all things which could break assumption in the future are not supported yet (like 10 bit or 4:4:4), so this is fine.
* Revert "vaapi: remove vaDeriveImage() code path"Gravatar wm42015-07-15
| | | | | | This reverts commit d660e67be9cc7d79d81e0c09c2720ea6d0a35e3a. Fixes #2123.
* vaapi: allow allocating additional surfaces during decodingGravatar wm42015-07-15
| | | | | | | | | | | | | Fixes problems with --vo=opengl:interpolation. The issue here is that vo_opengl retains more surfaces than what was preallocated for the decoder. Until now, we just explicitly failed to decode frames for which no additional surfaces are available. Since modern drivers usually are fine with not "registering" surfaces before the decoder is created, just allow allocating additional surfaces if needed. (We also could probably recreate the HW decoder, since the HW decoder should be stateless. But let's try to avoid raising the overall complexity of the code.)
* vo_opengl: simplifyGravatar wm42015-07-15
| | | | | After recent changes, there is no reason why gl_video_set_image() should exist anymore. So merge it back into gl_video_upload_image().
* player: show larger cache sizes in MB on status lineGravatar wm42015-07-14
|
* build: don't make version.sh create version.h by defaultGravatar wm42015-07-14
| | | | | You could actually run version.sh, and then the waf build system could accidentally pick up the generated (and most likely stale) version.h.
* vf_vdpaupp: Don't crash when evaluating interlacing of NULL mpiGravatar Philip Langdale2015-07-14
| | | | | | | The interlaced frame test needs to be aware that the input mpi might be NULL - this happens at the end of a stream when the input frames have all been submitted but frames still need to be drained from the decoder.
* README: remove dead links to mailing listsGravatar wm42015-07-14
| | | | | | These were deleted due to inactivity. Fixes #2135.
* player: add missing \n to a messageGravatar wm42015-07-13
|
* manpage: fix typoGravatar wm42015-07-13
| | | | The (...) was closed, but never opened.
* sub: call ass_set_fonts() only onceGravatar wm42015-07-13
| | | | | | | | | | | | | ass_set_fonts() is called by mp_ass_configure_fonts(), which was called every time a subtitle renderer was initialized. I'm not sure why this was done - I can't find a good reason, and most likely there's none. However, it did cause problems with an experimental libass branch. It crashed some time after switching to a second subtitle track. The branch will hopefully be merged soon, and it seems unlikely that libass wants to fix its problems with its ridiculous API (rather it should normalize its API so that the issue doesn't happen in the first place), so just apply this change. It makes our code simpler too.
* player: extend --hls-bitrate optionGravatar wm42015-07-13
| | | | Fixes #2116.
* player: put --term-playing-msg in a separate log categoryGravatar wm42015-07-13
| | | | Fixes #1983.
* demux: handle Matroska-style replaygain tags as wellGravatar wm42015-07-12
| | | | | | | Matroska doesn't follow the usual ReplayGain conventions, and doesn't distinguish between track/album values. Fixes #2128.
* demux: refactor replaygain tag handlingGravatar wm42015-07-12
| | | | | For the following commit. Also print the replaygain values in verbose mode.
* bootstrap: change waf primary mirrorGravatar Stefano Pigozzi2015-07-12
| | | | | Requested by waf's developer. The ftp mirror is going to be closed down in the short future.
* build: fix version.h creationGravatar Stefano Pigozzi2015-07-12
| | | | | Previous code did not retrigger a relink when version.h changed since it didn't use a waf task.
* player: use exit code 0 by default for quit, 4 for signals, etc.Gravatar Philip Sequeira2015-07-11
| | | | | | Default key bindings in encoding mode also use code 4, because scripts will probably want to fail if encoding is aborted (leaving an incomplete file).
* vo_opengl: reduce verbose outputGravatar wm42015-07-11
| | | | | | | | | Outputting the detected OpenGL features was useless and redundant with the extension loading output. Also, remove MPGL_CAP_3D_TEX from OpenGL(ES) 3.0. This block didn't include the glTexImage3D function, so that was pointless and couldn't have worked. The OpenGL 2.1 block does it correctly.
* vo_vdpau: Implement rotation supportGravatar Philip Langdale2015-07-11
| | | | | | | | | | | | | | | | | | | | VDPAU has explicit support for rotating surfaces, and it is far less expensive than using the normal rotation filter (which would require reading video frames back into system memory), it is desirable to implement the VO rotation capability. To do this, we need to render the video frames to an output surface, without rotation, and then render from that surface to the final output surface to apply the rotation. It is important that the intermediate surface is the same size as the final one (only not rotated) so that hqscaling can be applied if requested by the user. (hqscaling is a mixer capability and so takes effect when the video surface is rendered to an output surface) Finally, we must remember to explicitly clear the final output surface as VDPAU only auto-clears output surfaces when rendering video surfaces.
* vo_opengl: reimplement tscale=oversampleGravatar Niklas Haas2015-07-11
| | | | Closes #2102.
* vf_vdpaurb: Add a new filter for reading back vdpau decoded framesGravatar Philip Langdale2015-07-11
| | | | | | | | | | | | | | | | | Normally, vdpau decoded frames are passed directly to a suitable vo (vo_vdpau or vo_opengl) without ever touching system memory. This is efficient for output purposes, but prevents any of the regular filters from being used with such frames. This new filter implements a read-back step to pull the frames back into system memory where they can be acted on by other filters. Eventually the frames will be sent to the vo as if they were normal software-decoded frames. Note that a vdpau compatible vo must still be used to ensure that the decoder is properly initialised. Signed-off-by: wm4 <wm4@nowhere>
* player: parse and expose m3u playlist titlesGravatar wm42015-07-10
| | | | Requested. Closes #2100.
* video: don't force video refresh if video is restartingGravatar wm42015-07-10
|
* video: add a way to disable automatic stereo conversionGravatar wm42015-07-10
| | | | Fixes #2111.
* vf_stereo3d: drop internal implementationGravatar wm42015-07-10
| | | | Leave the libavfilter wrapper only.
* stream_file: remove an indirectionGravatar wm42015-07-10
| | | | Remove the "fd" local variable, and always use "p->fd" directly.
* stream_file: cosmetics: shorten variable nameGravatar wm42015-07-10
| | | | Can't be bothered to type this much.
* gl_hwdec: change wording in verbose messageGravatar wm42015-07-10
|
* player: refactor chapter seek codeGravatar wm42015-07-10
| | | | | | | mp_seek_chapter() had only 1 caller. Also the code was rather roundabout; the entire function can be compressed to 5 lines of code. (The new code is functionally the same - "mpctx->last_chapter_seek = -2;" was effectively a dead assingment.)
* client API: fix mpv_get_property_async() string caseGravatar wm42015-07-10
| | | | | | | The logic for this code didn't survive the previous refactor. It always crashed in async mode. Fixes #2121.
* stream_file: initialize `fd`Gravatar Ben Boeckel2015-07-09
| | | | | Use the fd variable and delay assignment to priv->fd to mirror other branches of the if/else tree.
* demux_mkv: improve video duration detection heuristicGravatar wm42015-07-09
| | | | | | | | | | | Extend the --demuxer-mkv-probe-video-duration behavior to work with files that are partial and are missing an index. Do this by finding a cluster 10MB before the end of the file, and if that fails, just read the entire file. This is actually pretty trivial to do and requires only 5 lines of code. Also add a mode that always reads the entire file to estimate the video duration.
* stream_file: add fd:// protocolGravatar wm42015-07-09
|
* player: disable seeking even if the cache is enabledGravatar wm42015-07-08
| | | | | | | | | | | | | | Until now, if a stream wasn't seekable, but the stream cache was enabled (--cache), we've enabled seeking anyway. The idea was that at least short seeks would typically fall within the cache. And if not, the user was out of luck and terrible things happened. In other words, it was unreliable. Be stricter about it and remove this behavior. Effectively, this will for example disable seeking in piped data. Instead of trying to be clever, add an --force-seekable option, which will always enable seeking if the user really wants it.
* player: never overwrite stop_play fieldGravatar wm42015-07-08
| | | | | | | This is a real pain: if a quit command is received, it's set to PT_QUIT. And then other code could overwrite it, making it not quit. The annoying bit is that stop_play is written and read in many places. Just not overwriting it unconditionally seems to be the best course of action.
* input: fix exit code for quit-watch-later commandGravatar wm42015-07-08
| | | | It should have the same default as the "quit" command.
* command: allow changing deinterlace property any timeGravatar wm42015-07-08
| | | | Don't require video decoding to be active.