| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Signed-off-by: wm4 <wm4@nowhere>
|
|
|
|
|
|
| |
Not all the hardware supports kCGLPFASupportsAutomaticGraphicsSwitching
(apparently all Mid-2010 and before MacBooks do not work with it), so fallback
to not asking for this attribute in the GL pixel format.
|
|
|
|
| |
Fixes #820
|
|
|
|
|
| |
CGL APIs are lower level thus giving us better control and more options for
the context creation.
|
|
|
|
| |
Seeing (uint64_t)-1 as value when position was unset was annoying.
|
|
|
|
|
|
| |
Well, not sure if this really improves anything, but at least it's less
of a WTF to the playback core than always returning the same timestamp
for every frame.
|
|
|
|
|
|
| |
There's really no need to convert this to float and then back. This is
mostly of cosmetic nature, double precision was probably enough to avoid
rounding.
|
|
|
|
| |
mp_msg() doesn't exist anymore in this form. Oops.
|
|
|
|
| |
Implements the feature requested in #839 and #186.
|
| |
|
|
|
|
|
|
|
| |
Should resolve the "mpv b'...'" issue on Python 3 without breaking
things on Python 2.
Also, remove redundant wait for process.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This affects packed RGB formats up to 16 bits per pixel. The old mplayer
names used LSB-to-MSB order, while FFmpeg (and some other libraries) use
MSB-to-LSB.
Nothing should change with this commit, i.e. no bit order or endian bugs
should be added or fixed. In some cases, the name stays the same, even
though the byte order changes, e.g. RGB8->BGR8 and BGR8->RGB8, and this
affects the user-visible names too; this might cause confusion.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These suffixes are annoying when they're redundant, so strip them
automatically. On little endian machines, always strip the "le" suffix,
and on big endian machines vice versa (although I don't think anyone
ever tried to run mpv on a big endian machine).
Since pixel format strings are returned by a certain function and we
can't just change static strings, use a trick to pass a stack buffer
transparently. But this also means the string can't be permanently
stored by the caller, so vf_dlopen.c has to be updated. There seems
to be no other case where this is done, though.
|
|
|
|
|
| |
The Perl script must be run *after* the mpv executable is generated. Also use
an absolute path to it.
|
|
|
|
|
|
|
| |
Not sure how this symbol becomes visible in glibc (probably accidental
or mandatory recursive inclusion via the other standard or Linux-
specific headers), but normally this include file is needed to get the
symbol.
|
|
|
|
|
|
|
|
| |
The "classic" sub-option stuff is not really needed anymore. The only
remaining use can be emulated in a simpler way. But note that this
breaks the --screenshot option (instead of the "flat" options like
--screenshot-...). This was undocumented and discouraged, so it
shouldn't affect anyone.
|
|
|
|
|
| |
No options pointing to global variables are in use anymore, so that part
can be removed.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of absuing m_option to store the property list, introduce a
separate type for properties. m_option is still used to handle data
types. The property declaration itself now never contains the option
type, and instead it's always queried with M_PROPERTY_GET_TYPE. (This
was already done with some properties, now all properties use it.)
This also fixes that the function signatures did not match the function
type with which these functions were called. They were called as:
int (*)(const m_option_t*, int, void*, void*)
but the actual function signatures were:
int (*)(m_option_t*, int, void*, MPContext *)
Two arguments were mismatched.
This adds one line per property implementation. With additional the
reordering of the parameters, this makes most of the changes in this
commit.
|
|
|
|
|
|
|
| |
This means use of the min/max fields can be dropped for the flag option
type, which makes some things slightly easier. I'm also not sure if the
client API handled the case of flag not being 0 or 1 correctly, and this
change gets rid of this concern.
|
|
|
|
|
| |
Now MPOpts.sub_fix_timing corresponds to the commandline switch
directly, instead of storing the inverted value.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also clarify the semantics.
It seems --idx didn't do anything. Possibly it used to change how the
now removed legacy demuxers like demux_avi used to behave. Or maybe
it was accidental.
--forceidx basically becomes --index=force. It's possible that new
index modes will be added in the future, so I'm keeping it
extensible, instead of e.g. creating --force-index.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Probably "needed" to get the correct alignment, although I'm not aware
of actual breakages or performance issues.
In fact we should probably always just allocate AVPackets, but for now
use the simple fix.
|
|
|
|
|
| |
Actually we don't need to resize packets; we just need to make them
shorter.
|
|
|
|
|
| |
Instead, the recursive call has been flattened away by instead
overwriting a parameter and continuing.
|
|
|
|
| |
This reverts commit 231c6672140f019257edd26db20fbcfc2554258f.
|
|
|
|
|
|
|
|
|
| |
FFmpeg requires a bullshit padding after each input buffer, and they
just increased that padding without warning and without ABI or API bump.
We need this only in one file (although mp_image hardcodes something
similar, for which no FFmpeg API define is available), so drop our own
define.
|
|
|
|
| |
Seems pretty useless in general, so this reduces output noise.
|
|
|
|
|
|
|
| |
Does anyone actually use this?
For now, update it, because it's the only case left where an option
points to a global variable (and not a struct offset).
|
| |
|
|
|
|
| |
Like in commit 99f5fe.
|
|
|
|
| |
This is most likely never intended.
|
|
|
|
| |
Dump what the AO does on driver->play().
|
|
|
|
|
| |
A corner case that could possibly lead to infinite waiting. Though
I'm not aware that this actually happened in practice.
|
|
|
|
|
|
|
|
| |
Unfortunately, there's a recursive function call in ao_lavc.c (play
function), leading to a deadlock. The locking is getting a bit messy, so
just make the lock recursive.
This fixes #844.
|
|
|
|
|
| |
HAVE_* flags are always defined so ifdef will never work.
They should be checked with their values.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Squashed from the following mplayer-svn commits. The '#' is removed from
the bug ID to prevent github from doing something stupid. Instead of
adding the mplayer configure check for clock_gettime(), the POSIX
identifiers are used for checking presence of the function.
Use correct type of timestamps when recording from v4l2. Fix 2176
Patch by Jarek Czekalski <jarekczek at poczta onet pl>.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@37222 b3059339-0415-0410-9bf9-f77b7e298cf2
Allow building of v4l2 without clock_gettime().
Add overly verbose message in case monotone timestamps are required by the kernel.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@37223 b3059339-0415-0410-9bf9-f77b7e298cf2
|
|
|
|
| |
Similar to previous commits.
|
|
|
|
|
|
|
|
|
| |
Similar to previous commits.
This also renames --doubleclick-time to --input-doubleclick-time, and
--key-fifo-size to --input-key-fifo-size. We could keep the old names,
but these options are very obscure, and renaming them seems better for
consistency.
|
|
|
|
| |
Similar to previous commits.
|
|
|
|
| |
Similar to previous commit.
|
|
|
|
|
| |
Removes specifics from options.h and options.c, and puts everything into
vd_lavc.c.
|
|
|
|
| |
This is probably the last one, at least with my current configuration.
|
| |
|
| |
|
|
|
|
|
|
|
| |
While I'm not very fond of "const", it's important for declarations
(it decides whether a symbol is emitted in a read-only or read/write
section). Fix all these cases, so we have writeable global data only
when we really need.
|
|
|
|
| |
The shit I put up with...
|
| |
|
| |
|
|
|
|
|
|
| |
Additionally to removing the global variables, this makes the options
more uniform. --ssf-... becomes --sws-..., and --sws becomes --sws-
scaler. For --sws-scaler, use choices instead of magic integer values.
|
|
|
|
|
| |
We don't need a separate stream_dvd.h header file anymore. Some dead
functions become apparent; remove them.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Usually, each stream driver declares the size and option list of its
private data. This was pretty natural for when most streams still used
global variables to setup their defaults. They did by pointing
priv_defaults to the (mutable) struct containing the option values. But
falls short when storing the option values in MPOpts. So provide a
somewhat inelegant but simple way to let the stream implementation setup
the priv struct at initialization time.
This is done with the get_defaults callback. It should return a copy of
the struct used in MPOpts. (A copy, because if MPOpts is changed, string
fields might be deallocated, and if that field is not described by
stream_info.options, it won't be copied on init.)
|
| |
|
| |
|
|
|
|
|
|
| |
Pretty much nothing changes, but using -tv-scan with suboptions doesn't
work anymore (instead of "-tv-scan x" it's "-tv scan-x" now). Flat
options ("-tv-scan-x") stay compatible.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Convert all these commands to properties. (Except tv_last_channel, not
sure what to do with this.) Also, internally, don't access stream
details directly, but dispatch commands with stream ctrls.
Many of the new properties are a bit strange, because they're write-
only. Also remove some OSD output these commands produced, because I
couldn't be bothered to port these.
In general, this makes everything much cleaner, and will also make it
easier to e.g. move the demuxer to its own thread.
Don't bother updating input.conf, but changes.rst documents how old
commands map to the new ones.
Mostly untested, due to lack of hardware.
|
| |
|
|
|
|
|
|
|
|
| |
The Perl script generating the completions actually invokes mpv, and it
runs during the build. This is not sane and breaks at least cross
compilation.
As a workaround, disable the completions by default for now.
|
|
|
|
| |
This started getting annoying.
|
|
|
|
|
|
|
| |
Playing a video and then an audio file with cover art kept displaying
the last frame of the video. This was because the hasframe flag was set,
perhaps due to redrawing the last video frame before the cover art image
is decoded.
|
|
|
|
|
|
| |
Not only should using libmpv hog such global resources; it's also very
unlikely an application embedding mpv will ever want to make use of
this.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Basically, this allows gapless playback with similar files (including
the ordered chapter case), while still being robust in general.
The implementation is quite simplistic on purpose, in order to avoid
all the weird corner cases that can occur when creating the filter
chain. The consequence is that it might do not-gapless playback in
more cases when needed, but if that bothers you, you still can use
the normal gapless mode.
Just using "--gapless-audio" or "--gapless-audio=yes" selects the old
mode.
|
|
|
|
| |
This commit implements them for volume and some video properties.
|
| |
|
|
|
|
| |
As discussed in #775
|
| |
|
|
|
|
|
|
|
|
|
| |
Since redundant wakeups are avoided now, it's easy to miss a wakeup when
creating/setting the pipe/callback after the client API was signalled.
If the client API is signalled, need_wakeup is set to true, and
wakeup_client skips writing to the pipe or calling the client API. That
this can happen is not very obvious to the client API, so trigger a
wakeup right on start in order to remove this special case.
|
|
|
|
| |
This was forgotten in the previous commit.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--sub-file is actually a string list, so you can add multipel external
subtitle files. But to be able to set a list, the optio |