| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
This possibly enables code that has never been tested before
(accidentally), so let's hope this works out ok.
|
| |
|
|
|
|
|
|
|
|
|
| |
This didn't have any consequences, other than suddenly reinitializing
video when it works again (such as with EDL timeline mixing video and
audio-only files).
Conflicts:
mpvcore/player/video.c
|
|
|
|
|
|
| |
The priv struct is now allocated by talloc in stream.c. It doesn't need
to be manually freed, and using free() instead of talloc_free() probably
crashes.
|
|
|
|
|
|
| |
Same as MPlayer svn commit r36515 "Chose cheaper alpha blend equation."
No idea if this is actually faster, but can't hurt.
|
|
|
|
|
|
|
| |
Also break that line a bit.
Conflicts:
mpvcore/player/loadfile.c
|
| |
|
| |
|
|
|
|
|
|
| |
This could cause the bundle to recache stuff because of differences with
configuration of other software using fonconfig. The defaults OS X directories
should be added to fontconfig at build time (through configure).
|
|
|
|
| |
rejected it
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Signed-off-by: wm4 <wm4@nowhere>
Significant modifications over the original patch by not overriding
syscalls with macros ("#define open v4l2open") for fallback, but the
other way around ("#define v4l2open open"). As consequence, the calls
have to be replaced throughout the file.
Untested, although the original patch probably was tested.
|
|
|
|
|
|
|
|
|
| |
Apparently this is not portable to FreeBSD. It turns out that we
(probably) don't use any symbols defined by this header directly, so
the includes are not needed.
Conflicts:
stream/stream_radio.c
|
|
|
|
|
|
|
|
|
| |
These use the _oldargs_ hack, which failed in combination with playback
resume. Make it work.
It would be better to port all filters to new option parsing, but that's
obviously too much work, and most filters will probably be deleted and
replaced by libavfilter in the long run.
|
|
|
|
| |
Fixes a problem where the passed size doesn't match the actuall string.
|
| |
|
|
|
|
|
|
|
|
| |
Note that you still need --vd-lavc-o='strict=-2' to enable the decoder.
Also, there's no guarantee that all required features for HEVC demuxing
are actually implemented, nor that the current muxing schema is the
final one.
|
|
|
|
| |
Previously, using it led to no single frame being output, ever.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When blending OSD and subtitles onto the video, we write bogus alpha
values. This doesn't normally matter, because these values are normally
unused and discarded. But at least on Wayland, the alpha values are used
by the compositor and leads to transparent windows even with opaque
video on places where the OSD happens to use transparency.
(Also see github issue #338.)
Until now, the alpha basically contained garbage. The source factor
GL_SRC_ALPHA meant that alpha was multiplied with itself. Use GL_ONE
instead (which is why we have to use glBlendFuncSeparate()). This should
give correct results, even with video that has alpha. (Or at least it's
something close to correct, I haven't thought too hard how the
compositor will blend it, and in fact I couldn't manage to test it.)
If glBlendFuncSeparate() is not available, fall back to glBlendFunc(),
which does the same as the code did before this commit. Technically, we
support GL 1.1, but glBlendFuncSeparate is 1.4, and I guess we should
try not to crash if vo_opengl_old runs on a system with GL 1.1 drivers
only.
|
| |
|
| |
|
|
|
|
|
|
| |
There's no reason why we should e.g. handle SIGQUIT, but not SIGTERM.
Note that sending SIGTERM twice still kills the player.
|
|
|
|
| |
This is a confusing mechanism, so the explanation should bit more clear.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Video has up to 4 textures, if you include obscure formats with alpha.
This means alpha formats could always overwrite the first scaler
texture, leading to corrupted video display. This problem was recently
brought to light, when commit 571e697 started to explicitly unbind all 4
video textures, which broke rendering for non-alpha formats as well.
Fix this by reserving the correct number of texture units.
|
| |
|
|
|
|
|
|
|
| |
The code made no sense at all.
Conflicts:
mpvcore/player/loadfile.c
|
|
|
|
|
|
|
| |
This stops mpv from being stuck in reconnecting at the end of the file
with some unseekable streams.
Test URL: http://playerservices.streamtheworld.com/pls/CBC_R1_VCR_H.pls
|
| |
|
|
|
|
|
|
|
|
| |
Not really cargo cult, but an unexplainable, needless difference that
just exists to annoy us.
Fixes that gcc on MinGW treats format specifiers in MSVC mode. Just why?
Why?
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
DVD subs (rarely) have subtitle events without end timestamp. The
duration is unknown, and they should be displayed until they're
replaced by the next event.
FFmpeg fails hard to make us aware whether duration is unknown or
actually 0, so we can't distinguish between these two cases. It fails
at this twice: AVPacket.duration is set to 0 if duration is unknown,
and AVSubtitle.end_display_time has the same issue.
Add a hack that considers all bitmap subtitles with duration==0 as
events with uknown length. I'd rather accidentally display a hidden
subtitle (if they exist at all), instead of not displaying random
subtitles at all.
See github issue #325.
|
|
|
|
|
|
|
|
| |
The code was selecting PA_CHANNEL_POSITION_MONO for MP_SPEAKER_ID_FC,
which is correct only with the "mono" channel layout, but not anything
else. Remove the mono entry, and handle mono separately.
See github issue #326.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We mixed the "old" AVFrame management functions (avcodec_alloc_frame,
avcodec_free_frame) with reference counting. This doesn't work
correctly; you must use av_frame_alloc and av_frame_free. Of course
ffmpeg doesn't warn us about the bad usage, but will just mess up
things silently. (Thanks a lot...)
While the alloc function seems to be 100% compatible, the free function
will do bad things, such as freeing memory that might still be
referenced by another frame. I didn't experience any actual bugs, but
maybe that was pure luck.
|
| |
|
|
|
|
| |
Looks the gl.h header in XQuartz is incompatible with the one in OS X 10.9.
|
|
|
|
|
|
|
|
|
|
| |
This stopped working when the code was changed to create a window even
if --wid is used.
It appears we can't create our own window in this case, because in X11
there is no difference between a window with the root window as parent,
and a window that is managed by the WM. So make this (kind of worthless)
special case use the root window itself.
|
| |
|
|
|
|
| |
Also, replace broken noup= by lavfi expressions.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On systems that provide legacy OpenGL (up to 2.1), but not GL3 and
later, creating a GL3 context will fail. We then revert to legacy GL.
Apparently the error message printed when the GL3 context creation
fails is confusing. We could just silence it, but there's still a X
error ("X11 error: GLXBadFBConfig"), which would be quite hard to
filter out. For one, it would require messing with the X11 error
handler, which doesn't even carry a context pointer (for application
private data), so we don't even want to touch it. Instead, change
the error message to inform the user what's actually happening: a
fallback to an older version of OpenGL.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When starting mpv with nohup, file descriptor 0 seems to be invalid for
some reason. (I'm not quite sure why it should be... /proc/pid/fd/0
seems to indicate it's just /dev/null, and using /dev/null explicitly
shows that it works just fine.)
select() will always immediately return, and this causes mpv to burn CPU
without reason. Fix this by treating it as EOF when read() returns
EBADF.
Also add EINVAL to this condition, because it seems like a good idea.
Conflicts:
osdep/getch2.c
|
|
|
|
|
| |
Regression from bc49957
Fixes #321
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Trying to toggle the border during fullscreen (with "cycle border")
would leave the window stuck without border, and it couldn't be
restored. This was because vo_x11_decoration() always excepted to be
called when toggling the state, and thus confusing the contents of the
olddecor variable. Add got_motif_hints to hopefully prevent this.
Also, when changing the border, don't take fs in account. May break on
older/broken WMs, but all in all is in fact more robust and simpler,
because you do not need to update the border state manually when
returning from fullscreen.
|
| |
|
|
|
|
|
|
|
| |
If the caller requests at least OpenGL 2.1 (which --vo=opengl does),
but we get OpenGL 1.x, suggest using opengl-old.
Based on a patch by pfor on IRC.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
It's true that ALSA uses alloca() in some of its API functions, but
since this is hidden behind macros in the ALSA headers, we have no
reason to include alloca.h ourselves.
Might help with portability (FreeBSD).
|
| |
|
| |
|
|
|
|
|
| |
Apparently this fixes issues with Gnome, which has a smaller timeout.
See github issue #315.
|
|
|
|
|
| |
The intention of this is to not make the window go outside the screen when
changing dimensions from 2x to .5x.
|
|
|
|
|
| |
We always use the file's timestamps, so the start time can be easily
something different from 0. Make the --length option respect this.
|
|
|
|
|
|
|
| |
The default behavior of weston changed some time ago to not fill the surface
black for fullscreen windows.
Now let mpv draw the whole screen in fullscreen mode.
|
|
|
|
| |
Fixup commit for bbc146927
|
|
|
|
|
|
|
| |
It looks like on Mavericks the Finder is passing different arguments to mpv
depending on whether the opened file is quarantined or not.
Fixes #285
|
|
|
|
|
|
|
|
|
|
| |
This seems to be a problem only in OS X 10.9. I guess they improved the
general speed of the Cocoa startup and suddenly mpv core takes more time
than the Cocoa thread to initialize.
Fixes #285
(hopefully!)
|
|
|
|
| |
Maybe this can be the default in the future, but I'm not sure yet.
|
|
|
|
|
|
|
|
| |
At least not with ffmpeg.
Honestly, I have no idea how little endian AC3 works at all, since
ao_pcm doesn't do anything special about it, and treats it like s16le.
Maybe it's broken and ffmpeg has special logic to detect it.
|
|
|
|
|
|
|
|
|
|
|
| |
This is obviously not needed, and just creates potential for bad
breakages (e.g. what happens if libquvi tries to open a normal filename
as http URL?).
Note that for simplicity, we still pass file:// URIs to quvi, and we
don't exclude other protocol prefixes either. In general, we don't know
what protocols quvi might support, so we don't try to second-guess it.
(Even though in practice, it's probably only "http" and "https".)
|
|
|
|
|
|
|
| |
The code did not set and unset the current context inside sync sections. I am
not sure if this was an actual problem but this is better since the context is
linked to a single thread. In my brief tests this seems to avoid garbage to
show up in fullscreen.
|
| |
|
|
|
|
| |
Crashed, instead of disabling auto-repeat.
|
|
|
|
|
|
| |
Instead of removing dragging we now test if it we should drag the window or
not. Because if the OSC shows up we can not drag the window because that would
cause mouse events that makes the OSC disappear.
|
|
|
|
| |
This reverts commit 3308bc2bc919cb8fadddad04e48b94d4e9324a34.
|
|
|
|
| |
This reverts commit d75cfef49c271e43317666451f17c55e6747e564.
|
|
|
|
| |
--hwdec=vdpau did nothing with older ffmpeg/libav versions. Oops.
|
|
|
|
| |
Fixes #304.
|
| |
|
| |
|
|
|
|
| |
This caused the equalizer controls to appear stuck.
|
| |
|
| |
|
|