| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
Apparently, Matroska packs TrueHD packets in a way lavc doesn't expect.
This broke decoding of some files [1] completely. A short look at the
libavcodec parser shows that parsing this ourselves would probably be
too much work, so make use of the libavcodec parser API.
[1] http://www.cccp-project.net/beta/test_files/mzero_truehd_sample.mkv
|
|
|
|
|
|
| |
Not sure why but this doesn't seem to be needed anymore.
This reverts commit 6ead6aa005f1c78a117bde58e48f106cfd1e9806.
|
|
|
|
|
|
|
| |
query_format was setting state even if wasn't the correct thing to do. Somehow
it worked by pure luck (until commit e6e6b88b6da).
Fix the initialization by setting state inside of reconfig.
|
|
|
|
| |
Fixes #427
|
|
|
|
| |
This feature will be used in the next commit.
|
|
|
|
|
|
|
|
|
|
| |
Currently KDE will copy a media file into a temporary folder instead of
trying to stream it if a KIO slave location file is started. This change
will tell KDE to make mpv try to directly play the file. Perhaps the
proper flags should be added according to the individual enabled
features of the build but I suggest that be for the future.
Signed-off-by: wm4 <wm4@nowhere>
|
| |
|
|
|
|
| |
Rearrange the code in an attempt to make its organization more logical.
|
|
|
|
| |
This is mostly just moving code around.
|
|
|
|
|
|
| |
Hide --enable variants from [autodetect]'ed options and --enable/--disable
variants for [enable]'d/[disable]'d options. The hidden options are still
usable, just hidden for more readability.
|
|
|
|
|
|
|
|
|
|
|
| |
If the utf8 string used to create the NSString for title was invalid utf8,
-stringWithUTF8String returned nil and triggered an assertion in Cocoa's
framework code.
Sanitize the utf8 string and if the sanitation wasn't enough just avoid
crashing by not setting a title.
Fixes #406
|
| |
|
|
|
|
|
|
| |
This applies the usual logic of resetting stream selections to default
when switching to a file with a different track layout. (This is to
prevent selecting random streams.)
|
|
|
|
|
|
|
|
| |
Also, make sure that a track can't be selected twice. While this might
work in some situations, it certainly won't work with subtitles demuxed
from a stream.
Fixes #425.
|
|
|
|
|
|
|
| |
This is relatively hacky, but it's Christmas, so it's ok. This does two
things: 1. allow selecting two subtitle tracks, and 2. include a hack
that renders the second subtitle always as toptitle. See manpage
additions how to use this.
|
|
|
|
|
| |
Of course this does not allow decoding multiple tracks at once; it just
adds some minor infrastructure, which could be used to achieve this.
|
|
|
|
|
|
| |
Normally, there can be only one demuxer stream active for each demuxer
of an external file, but this assumption will be broken for multiple
subtitles support.
|
|
|
|
|
|
|
| |
For some reason, this checked whether there are external tracks at all
before doing any seeks. Possibly this was to avoid multiple
get_main_demux_pts() calls, but calling this multiple times shouldn't be
too bad.
|
|
|
|
|
|
|
| |
Use struct track to decide what stream to select.
Add a "selected" field and use that in some places instead of
checking mpctx->current_track.
|
|
|
|
|
| |
AV_SAMPLE_FMT_NONE != 0, could apparently cause crashes in certain
situations.
|
| |
|
| |
|
|
|
|
| |
Apparently I pushed too quickly.
|
|
|
|
|
|
| |
Normally we shouldn't load these files. But for some reason it was added
in commit b784346e some years ago, and disabling this hack would
probably be an inconvenience. So just print a warning.
|
|
|
|
|
| |
So we will know whether someone uses broken config file options when
posting a log with -v.
|
| |
|
|
|
|
| |
"res" can be uninitialized in the error case.
|
| |
|
|
|
|
| |
Looks like this relied on undefined behavior.
|
| |
|
|
|
|
|
| |
Yep, smb_username/password were unused since forever, even in MPlayer.
Removal untested. (Does anyone even use smb://?)
|
|
|
|
|
| |
Get rid of the stupid and error-prone buffer size calculations, use
snprintf instead of strcpy.
|
|
|
|
|
|
| |
The only thing that used mp_load_per_file_config() was inside
configfiles.c too, so remove the declaration from core.h and move the
function before its use.
|
|
|
|
|
|
| |
Code for loading "[vo.vdpau]" profiles and similar. The messages printed
on loading change, but other than that, everything should behave about
the same.
|
|
|
|
| |
Used in the following commit.
|
|
|
|
| |
mp_is_url("://") returned true.
|
|
|
|
|
|
|
|
|
| |
Including the "." in the returned extension was too inconvenient. I
think originally, the semantics were supposed to work like in Python,
but screw this.
Also, return NULL instead of "" on failure (which is what its only user
actually seems to expect).
|
|
|
|
| |
Signed-off-by: wm4 <wm4@nowhere>
|
|
|
|
|
|
|
|
| |
How embarrassing...
This code is inactive for all VOs other than vo_vdpau. For vo_vdpau,
this caused various issues, such as stuttering after about an hour of
running mpv; see github issue #403.
|
|
|
|
|
|
| |
Note that this will print a difference even with perfect sync, because
the code queues the frames _between_ vsync, probably for error margin
(though I don't understand why it uses the exact values chosen).
|
|
|
|
|
|
|
|
|
| |
I find this annoying. It's the reason common/version.c exists at all.
options.c did this for the user agent, which contains the version
number. Because not including version.h means you can't build the user
agent and use it in mp_default_opts anymore, do something rather awkward
in main.c to initialize the default user agent.
|
|
|
|
|
| |
Avoid global state (reload cookie file every time), actually free
loaded cookies, use mp_get_user_path() for cookie file.
|
| |
|
| |
|
|
|
|
| |
Prevents race conditions (which can happen only in theory anyway).
|
|
|
|
|
|
| |
Make it so --msglevel extends previous --msglevel uses, instead of
overwriting them. Do this by literally appending the --msglevel option
value to the previous one.
|
|
|
|
| |
Still no OSX here.
|
|
|
|
| |
Untested... no OSX here.
|
|\
| |
| |
| |
| | |
This branch changes mp_msg() so that it doesn't require global context.
The changes are pretty violent.
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
So the user can specifically mute or unmute the status line with
--msglevel. Accidentally removed with commit 5e0c4ec3.
|
| |
| |
| |
| | |
Add a separate mp_log instance for this purpose.
|
| |
| |
| |
| | |
Same for companion functions.
|
| |
| |
| |
| | |
Also get rid of MSGL_HINT and the many MSGL_DBG* levels.
|
| | |
|
| | |
|
| |
| |
| |
| | |
Apparently this should never be run anyway.
|
| |
| |
| |
| | |
Worthless anyway.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There's a single mp_msg() in path.c, but all path lookup functions seem
to depend on it, so we get a rat-tail of stuff we have to change. This
is probably a good thing though, because we can have the path lookup
functions also access options, so we could allow overriding the default
config path, or ignore the MPV_HOME environment variable, and such
things.
Also take the chance to consistently add talloc_ctx parameters to the
path lookup functions.
Also, this change causes a big mess on configfiles.c. It's the same
issue: everything suddenly needs a (different) context argument. Make it
less wild by providing a mp_load_auto_profiles() function, which
isolates most of it to configfiles.c.
|
| |
| |
| |
| |
| |
| | |
Since mp_find_user_config_file() is going to get a context argument,
which would be annoying to do in the audio chain (actually I'm just
lazy).
|
| | |
|
| | |
|
| |
| |
| |
| | |
We also drop some slave mode stuff from stream_vcd.
|
| |
| |
| |
| |
| |
| |
| | |
The TV code pretends to be part of stream/, but it's actually demuxer
code too. The audio_in code is shared between the TV code and
stream_radio.c, so stream_radio.c needs a small hack until stream.c is
converted.
|
| | |
|
| | |
|
| |
| |
| |
| | |
Miss two mp_msg calls, because these conflict with future commits.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
This is pretty nasty, because FFmpeg/Libav is yet another library with a
global message callback. We do something with mutexes trying to get it
done, but of course we can't actually solve this problem. If more than
one library in a process use FFmpeg/Libav, only one of them will get log
messages.
|
| | |
|
| |
| |
| |
| |
| | |
And also convert a bunch of other code, especially ao_wasapi and
ao_portaudio.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Always pass around mp_log contexts in the option parser code. This of
course affects all users of this API as well.
In stream.c, pass a mp_null_log, because we can't do it properly yet.
This will be fixed later.
|
| |
| |
| |
| |
| | |
Includes some semi-crappy hacks to avoid changing too much code for this
conversion (allowing NULL log argument for m_property_do()).
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Until now, there were two functions to add input sources (stuff like
stdin input, slave mode, lirc, joystick). Unify them to a single
function (mp_input_add_fd()), and make sure the associated callbacks
always have a context parameter.
Change the lirc and joystick code such that they take store their state
in a context struct (probably worthless), and use the new mp_msg
replacements (the point of this refactoring).
Additionally, get rid of the ugly USE_FD0_CMD_SELECT etc. ifdeffery in
the terminal handling code.
|