1
0
mirror of https://github.com/mpv-player/mpv synced 2025-02-20 06:46:55 +00:00
Commit Graph

37256 Commits

Author SHA1 Message Date
wm4
d52c491fec tv: remove sysinfo() usage
This call was used limited the buffer size if installed RAM was below 16
MB. This stopped being useful a decade ago. The check could also
overflow on 32 bit systems. Just get rid of it.

old-configure changes skipped when cherry-picking for stable.

Conflicts:
	old-configure
2014-06-14 14:07:23 +02:00
wm4
ff2e39a3d2 vaapi: fix destruction with --hwdec=haapi-copy
This is incomplete; the video chain will still hold some vaapi objects
after destroying the decoder and thus the vaapi context. This is very
bad. Fixing it would require something like refcounting the vaapi
context, but I don't really want to.
2014-06-14 14:07:15 +02:00
wm4
844656d135 vo_vaapi: cleanup error handling on init
Close the X connection if initializing vaapi fails.
2014-06-14 13:51:14 +02:00
wm4
c0f85c18f8 video: better handling for (very) broken timestamps
Sometimes, Matroska files store monotonic PTS for h264 tracks with
b-frames, which means the decoder actually returns non-monotonic PTS.

Handle this with an evil trick: if DTS is missing, set it to the PTS.
Then the existing logic, which deals with falling back to DTS if PTS is
broken. Actually, this trick is not so evil at all, because usually, PTS
has no errors, and DTS is either always set, or always unset. So this
_should_ provoke no regressions (famous last words).

libavformat actually does something similar: it derives DTS from PTS in
ways unknown to me. The result is very broken, but it causes the DTS
fallback to become active, and thus happens to work.

Also, prevent the heuristic from being active if PTS is merely monotonic
instead of strictly-monotonic. Non-unique PTS is broken, but we can't
fallback to DTS anyway in these cases.

The specific mkv file that is fixed with this commit had the following
fields set:

  Muxing application: libebml v1.3.0 + libmatroska v1.4.1
  Writing application: mkvmerge v6.7.0 ('Back to the Ground') [...]

But I know that this should also fix playback of mencoder produced mkv
files.
2014-06-14 13:50:54 +02:00
wm4
60111d3f0f gl_common: correct a type
We pass a pointer to a GLint to sscanf, using the %d format. That format
_always_ takes int, and not GLint (whatever the heck that is). If GLint
is always int, then it doesn't make a difference, but is still better
because it doesn't play russian roulette with pointers.
2014-06-14 13:50:18 +02:00
wm4
2f86a06528 x11: fix datatype for _NET_WM_PID
Setting this property was added 12 years ago, and the code was always
incorrect. The underlying data type is "long", not "pid_t". It's well
possible that the data types are different, and the pointer to the pid
variable is directly passed to XChangeProperty, possibly invoking
undefined behavior.

It's funny, because in theory using pid_t for PIDs sounds more correct.
2014-06-14 13:50:02 +02:00
wm4
7e61bf134a input: make combined commands repeatable
Binding multiple commands at once where always considered not
repeatable, because the MP_CMD_COMMAND_LIST wasn't considered
repeatable.

Fixes #807 (probably).
2014-06-14 13:49:55 +02:00
wm4
61a2f3d2bf DOCS/coding-style: add a hint that new features should be documented 2014-06-14 13:47:38 +02:00
wm4
213ea94ee3 playlist: fix playlist_move on itself
A playlist_move command that moves an entry onto itself (both arguments
have the same index) should do nothing, but it did something broken. The
underlying reason is that it checks the prev pointer of the entry which
is temporarily removed for moving.
2014-06-14 13:47:18 +02:00
wm4
f1409ceacf Release 0.3.10 2014-05-24 16:54:54 +02:00
Yomi0
44f62ff6f3 tl_mpv_edl: correct misspelling on line 233
Closes #783

Signed-off-by: wm4 <wm4@nowhere>
2014-05-24 16:54:54 +02:00
wm4
55c3055784 vo_vdpau: always allocate the black pixel
black_pixel is an (apparently necessary) 1x1 black surface used for
clearing the screen. It was allocated in RGB mode only, but is sometimes
used in YUV mode too.
2014-05-24 16:54:54 +02:00
Jerome Leclanche
58fbe50d68 x11: fix a warning with --disable-xext
Signed-off-by: wm4 <wm4@nowhere>
2014-05-24 16:45:00 +02:00
wm4
6a0036ea03 build: "tv-v4l2" needs "tv"
Fixes #795.
2014-05-24 16:44:55 +02:00
wm4
2e4fdf01f5 vo_vaapi: don't redraw twice
After VOCTRL_REDRAW_FRAME, flip_page is called, which renders the frame.
The current code rendered the frame twice; drop the redundant call.
2014-05-24 16:44:44 +02:00
Juan Francisco Cantero Hurtado
a2259b3fd3 Fix the build on OpenBSD and FreeBSD
Without this change, the compiler uses by default the "talloc.h" file
installed by the package libtalloc within /usr/local/include. Found and
tested on OpenBSD but FreeBSD has the same patch on its ports tree.
2014-05-24 16:44:40 +02:00
wm4
aeeb7a92f2 README: describe release cycle 2014-05-24 16:43:28 +02:00
Alexander Preisinger
1e2f3191a7 wayland: fix typo
So long in the code without me noticing. Embarassing!
2014-05-24 16:41:00 +02:00
wm4
51d030308e build: fix OpenBSD DVD/CDROM device names
Closes #781.
2014-05-24 16:40:42 +02:00
wm4
4cd8aab84f manpage: update --playlist entry 2014-05-24 16:40:19 +02:00
wm4
3795154155 player: don't assign "false" to pointer
This is legal in theory. "false" expand to 0, and 0 is a valid pointer
value. But I guess this was not really intended.

Found by cppcheck.
2014-05-24 16:39:52 +02:00
wm4
461198e149 build: removed undefined behavior from PVR check
This shouldn't matter, but it's probably better if the code to check is
valid - otherwise an extremely clever compiler might fail to compile it,
and the feature would be misdetected. (Probably.)

Found by cppcheck.
2014-05-24 16:39:46 +02:00
wm4
7b1f12adba player: don't complain on too long filenames
mpv supports per-file config files, basically filename+".conf". We use
a static buffer for the new filename, and if that buffer is too small,
we print a warning. This is confusing for e.g. long URLs, so just hide
the warning by default.

Why not dynamically allocate the buffer? Who cares.
2014-05-24 16:39:27 +02:00
wm4
cf1645aebb old-makefile: add a missing source directory
Fixes "make clean".
2014-05-24 16:39:21 +02:00
wm4
1b20ec4864 x11: fix potentially unaligned access in icon loader
Tried to load a 32 bit value by dereferencing a uint32_t pointer, but
the pointer is not guaranteed to be aligned, not even in practice.
2014-05-24 16:39:12 +02:00
wm4
ee529da760 sub: fix undefined behavior in ASS color calculation (2)
Same problem as previous commit, fix by using the MP_ASS_RGBA() macro.
2014-05-24 16:39:09 +02:00
wm4
c9e6e7cc04 sub: fix undefined behavior in ASS color calculation
This might shift bits into the sign, which is undefined behavior. Making
the right operand unsigned was supposed to help with this, but it seems
it did nothing, and C99 makes the result type dependent on the left
operand only.
2014-05-24 16:39:06 +02:00
wm4
cb1d1e7a62 Fix bogus copyright text
This file was copied from gl_hwdec_vaglx.c to have a basic skeleton, but
no actual code is left from it.
2014-05-24 16:32:23 +02:00
wm4
e6d4ec62ae mixer: don't restore volume with different --softvol-max settings
Changing --softvol-max and then resuming would change the volume level
on resume to something different than the original volume. This is
because the user volume setting is always between 0-100, and 100
corresponds to --softvol-max gain.

Avoid that changing -softvol-max and resuming an older file could lead
to a too loud volume level by refusing to restore if --softvol-max
changed.
2014-05-24 16:32:00 +02:00
wm4
e7e2a6c8f7 demux_lavf: one more hack for mp3 from network
mp3 has a hack lowering the probescore for format detection. This is
because detecting mp3s is hard due to their nature, and the fact that
ID3v2 tags are sometimes several megabytes big.

When playing mp3 from network, the mime-type is usually set, and that
matches the format hack entry meant for webradios, overriding the normal
mp3 entry. This can lead to network mp3s not being detected. Lower the
network case to the same probescore as on-disk mp3s. The difference is
that for network mp3s, we don't load the full probe-buffer, and we lower
the amount of audio the demuxer will read to collect data on opening
(0.5 seconds instead of typically 5 seconds).
2014-05-24 16:29:46 +02:00
wm4
6643ebaa28 manpage: fix vf_scale options 2014-05-24 16:29:11 +02:00
wm4
98d33db5da input: fix stack overflow when checking for abort cmd
This can happen when the input stream is somehow blocking on network,
and the user still send input in one way or another, and one of the
commands is a compound command ("cmd a ; cmd b").
2014-05-24 16:28:11 +02:00
wm4
ca8dc9147b Release 0.3.9 2014-04-30 11:47:07 +02:00
wm4
df8b99490c demux: add hack to get initial ICY info to be printed
Newly added metadata (such as the ICY title, sent some seconds after
opening the stream) simply wasn't printed.

This problem doesn't exist in git master.

Fixes #753.
2014-04-30 11:46:40 +02:00
wm4
c78142a973 TOOLS/umpv: make it work with Python 3 (again)
Apparently, the 3rd (2nd) parameter to string.translate() function was
removed.

Also, make_abs() had a mistake - not sure how this passed testing.
2014-04-30 11:45:32 +02:00
wm4
a8e6caf56b TOOLS/umpv: don't mangle URLs
This attempted to prefix the current directory to URLs, because it
didn't recognize them as already absolute paths.
2014-04-30 11:45:32 +02:00
wm4
e6cca1e43b TOOLS/umpv: allow passing 0 files
Some might use that to just create an empty window with --force-window
--idle (for whatever reasons).
2014-04-30 11:45:32 +02:00
wm4
d7538d3597 TOOLS/umpv: allow passing options
But only via a special environment variable.
2014-04-30 11:45:32 +02:00
wm4
f3eb5b143c TOOLS/umpv: make it work with Python 3
Apparently they removed octal literals, and made them invalid syntax.
2014-04-30 11:45:32 +02:00
Stefano Pigozzi
9993fd8888 build: use -pthread when available
Our code currently tries to link -lpthread and adds stuff like -D_REENTRANT
based on the target platform.

GCC actually supports to just pass a -pthread compiler and linker flag that
will automatically enable threading and define the correct symbols for the
platform, so let's try to just use that as our first choice.

clang also supports -pthread but it must be used only as a compiler flag,
so we also take care of that scenario with this commit.
2014-04-30 11:45:31 +02:00
wm4
d9c3a51d87 terminal: always use SA_RESTART with sigaction()
One problem is that for example stdio functions won't restart syscalls
manually, and instead treat EINTR as an error. So passing SA_RESTART is
the only sane thing to do, unless you have special requirements, which
we don't.
2014-04-30 11:45:31 +02:00
wm4
619fa761af demux_mkv: enable parsing for VP9
VP9 packets can contain 2 frames in some video packets (from which 1
frame is invisible). Due to a design mismatch between libvpx and the
libavcodec vp9 decoder, libvpx can take the "full" packets, but lavc vp9
can not. The consequence is that we have to split the packets if we want
to feed them to the lavc codec.

This is not entirely correct yet: timestamp handling is missing.
--demuxer=lavf and ffmpeg native utilities have the same problem. We can
fix this only once the ffmpeg VP9 parser is fixed.
2014-04-30 11:45:31 +02:00
wm4
717d729dcb osd: make code C99
This used an unnamed union, which is allowed in GNU C and C11, but not
C99. This broke the build with some older compilers.

Replaces pull request #744.
2014-04-30 11:45:31 +02:00
Alexander Preisinger
4eb5b62e5a Revert "wayland: print waylands display erros"
This reverts commit 6e34b0ec1f.

There has always been an error message "proxy already has a listener" and
I couldn't reproduce where it is comming from until now. The display interface
already has a listener and we can't overwrite it. Now remove the code and avoid
this error message.

Conflicts:
	video/out/wayland_common.c
2014-04-30 11:45:31 +02:00
wm4
b9e32d0d3d manpage: fix grammar 2014-04-30 11:45:31 +02:00
wm4
28e2b95f58 manpage: forced->used 2014-04-30 11:45:31 +02:00
wm4
491f633a20 stream: use uninterruptible sleep on reconnecting
This is the only function which actually used the time argument of
stream_check_interrupt(). Considering that the whole player freezes
anyway, this is not worth the complication.

Also generally reduce the maximum wait time due to timeout. Introduce
exponential backoff, which makes the first reconnect retries faster, but
still waits up to 500ms in the later retries.
2014-04-30 11:45:31 +02:00
wm4
eb5e45855a manpage: improve --osd-level description 2014-04-30 11:45:31 +02:00
wm4
59e55bb0e1 demux_mkv: enable parsing for mp3
For some reason, some files appear to have broken mp3 packets, or at
least in a form that libavcodec can't deal with. The audio in the sample
file in question could not be decoded using libavcodec.

The problematic file had variable packet sizes, and the libavcodec
decoder kept printing "mp3: Header missing" for each packet it was fed.
Remuxing with mkvmerge fixes the problem. The mp3 data is probably not
VBR, and remuxing resulted in fixed-size mp3 frames. So I don't know why
the sample file was muxed this way - it might just be incorrect.

The sample file had "libmkv 0.6.4" as MuxingApp (although I could not
get mkvinfo to print this element, maybe the file uses an incorrect
element ID), and "HandBrake 0.9.4" as WritingApp.

Note that the libmpg123 decoder does not have any issues with it. It's
probably more robust, because libmpg123 was made to decode whole mp3
files, not just single frames.

Fixes issue #742.
2014-04-30 11:45:31 +02:00
Stefano Pigozzi
9f46be7373 ao_coreaudio: log even more info in verbose mode
This logs more info that can be used for debugging purposes, in particular
it prints all the AudioChannelDescription in the descriptions array.
2014-04-30 11:45:31 +02:00