MPV

View Bazaar branches
Get this repository:
git clone https://git.launchpad.net/mpv

See all merge proposals.

Import details

Import Status: Reviewed

This repository is an import of the Git repository at https://github.com/mpv-player/mpv.git.

The next import is scheduled to run .

Last successful import was .

Import started on juju-1e3bde-prod-lp-code-import-12 and finished taking 40 seconds — see the log
Import started on juju-1e3bde-prod-lp-code-import-12 and finished taking 25 seconds — see the log
Import started on juju-1e3bde-prod-lp-code-import-14 and finished taking 40 seconds — see the log
Import started on juju-1e3bde-prod-lp-code-import-12 and finished taking 40 seconds — see the log
Import started on juju-1e3bde-prod-lp-code-import-14 and finished taking 40 seconds — see the log
Import started on juju-1e3bde-prod-lp-code-import-12 and finished taking 25 seconds — see the log
Import started on juju-1e3bde-prod-lp-code-import-14 and finished taking 40 seconds — see the log
Import started on juju-1e3bde-prod-lp-code-import-12 and finished taking 40 seconds — see the log
Import started on juju-1e3bde-prod-lp-code-import-14 and finished taking 30 seconds — see the log
Import started on juju-1e3bde-prod-lp-code-import-12 and finished taking 30 seconds — see the log

Branches

Name Last Modified Last Commit
master 2022-01-19 14:27:04 UTC
options: add --sub-visibility=<primary-only|secondary-only>

Author: Ripose
Author Date: 2021-11-13 23:55:53 UTC

options: add --sub-visibility=<primary-only|secondary-only>

Adds --sub-visibility choices 'primary-only' for only displaying the
primary subtitle track, and 'secondary-only' for only displaying
secondary subtitle track.

Removes --secondary-sub-visibility and displays a message telling the
user to use --sub-visibility=yes/primary-only instead.

These changes make it so that the default 'sub-visibility' bind 'v'
cycles through all the 'sub-visibility' choices, 'no', 'yes',
'primary-only', and 'secondary-only'.

release/0.34 2022-01-03 19:45:08 UTC
Release 0.34.1

Author: Sfan5
Author Date: 2022-01-03 19:45:08 UTC

Release 0.34.1

rcombs/macos-fixes 2021-11-28 22:45:54 UTC
ao_coreaudio: fix some incorrect channel mappings

Author: Ridley Combs
Author Date: 2020-06-18 02:01:44 UTC

ao_coreaudio: fix some incorrect channel mappings

rcombs/swift 2021-11-28 22:37:07 UTC
Swift: avoid unnecessary unsafe conversions; fixes crash in debug builds

Author: Ridley Combs
Author Date: 2021-03-26 07:32:49 UTC

Swift: avoid unnecessary unsafe conversions; fixes crash in debug builds

last-frame-subs 2021-06-20 00:28:27 UTC
sub: by default, don't render timestamps after video EOF

Author: Ridley Combs
Author Date: 2020-12-23 06:40:32 UTC

sub: by default, don't render timestamps after video EOF

This fixes a long-standing apparent issue where mpv would display the last
frame with no subtitles at EOF. This is caused by sub rendering switching from
video timestamps to audio timestamps when the video ends, and audio streams
often running past the timestamp of the last video frame. However, authoring
tools (most notably Aegisub) don't tend to provide easy ways to add meaningful
subtitles after the end of the video, so this is rarely actually useful.

release/0.33 2021-04-05 16:45:41 UTC
Release 0.33.1

Author: Sfan5
Author Date: 2021-04-05 16:45:41 UTC

Release 0.33.1

appveyor 2021-02-22 13:38:14 UTC
Appveyor: Use MSYS2 spirv-cross package.

Author: Biswapriyo Nath
Author Date: 2021-02-22 13:38:14 UTC

Appveyor: Use MSYS2 spirv-cross package.

always_dr 2020-07-23 10:55:53 UTC
vo_gpu: allow DR path even when DR is unavailable

Author: Niklas Haas
Author Date: 2020-07-23 10:50:53 UTC

vo_gpu: allow DR path even when DR is unavailable

Even when using `vd-lavc-dr`, some circumstances could cause the DR code
to get disabled, for example the existence of extra CPU filters that
cause the resulting avbuffers to no longer correspond to `ra_bufs`.

In this case, we can still enable DR, for at least the libplacebo-based
contexts, by directly importing the host pointer into a dedicated,
temporary ra_buf which we then free explicitly as soon as we no longer
need it.

I made the PL_API_VER depend on >=89 even though this functionality was
introduced in API ver 85 because the initial implementation required
page-aligned host pointers, whereas newer libplacebo does not.

It might be worth introducing an extra option to explicitly disable
this, for debugging. Ideally it'd be cool if it could also depend on the
value of `vd-lavc-dr`, but I don't know how to propagate that option
properly.

bliss 2020-06-10 09:25:10 UTC
new build system

Author: wm4
Author Date: 2019-06-21 00:13:48 UTC

new build system

Further changes by the following people:

James Ross-Gowan <rossy@jrg.systems>: win32 fixes

rc 2020-05-01 09:38:15 UTC
ta: add refcount wrapper

Author: wm4
Author Date: 2020-05-01 09:38:15 UTC

ta: add refcount wrapper

ass_shit 2020-03-26 14:58:43 UTC
meh

Author: wm4
Author Date: 2020-03-26 14:58:43 UTC

meh

drmprime-modifiers 2020-03-03 18:54:15 UTC
drm_prime: forward modifiers from FFMPEG to drm API

Author: Sven Kroeger
Author Date: 2020-03-02 15:22:10 UTC

drm_prime: forward modifiers from FFMPEG to drm API

* Change drmModeAddFB2 to drmModeAddFB2WithModifiers
* Set modifiers flag in API call
* fetch and set modifiers according to kernel constraints

pidfd_test 2020-02-16 22:09:30 UTC
linux pidfd_open test

Author: wm4
Author Date: 2020-02-16 22:09:30 UTC

linux pidfd_open test

Seems to work. Syscall wrapper copy&pasted from the manpage.

stream_size_fstat_nocache 2020-02-16 15:03:34 UTC
disable caching

Author: wm4
Author Date: 2020-02-16 15:03:34 UTC

disable caching

stream_size_fstat 2020-02-16 15:03:03 UTC
stream_file: use fstat() instead of lseek() to determine file size

Author: wm4
Author Date: 2020-02-16 15:03:03 UTC

stream_file: use fstat() instead of lseek() to determine file size

It appears using lseek() to seek to the end and back to determine file
size is inefficient in some cases (like with CIFS, see #7408).

Even Windows supports fstat() (well, almost, but we already have a
wrapper), so use that. It's unknown whether that will work better.
Although I like it more, because it doesn't mess with the file position.

stream_no_size_caching 2020-02-16 14:31:22 UTC
disable file size caching

Author: wm4
Author Date: 2020-02-16 14:31:22 UTC

disable file size caching

ytdl_sub_delayload 2020-02-15 01:19:20 UTC
some shit

Author: wm4
Author Date: 2020-02-15 01:19:20 UTC

some shit

stream_debug_stuff 2020-02-12 18:10:03 UTC
debug stuff

Author: wm4
Author Date: 2020-02-12 18:10:03 UTC

debug stuff

absurd_test3 2020-02-08 14:09:19 UTC
and another

Author: wm4
Author Date: 2020-02-08 14:09:19 UTC

and another

absurd_test2 2020-02-08 10:45:51 UTC
...

Author: wm4
Author Date: 2020-02-08 10:45:51 UTC

...

absurd_test 2020-02-08 00:07:08 UTC
actually...

Author: wm4
Author Date: 2020-02-08 00:07:08 UTC

actually...

lua-remote-code-execution 2020-02-06 10:59:24 UTC
lua: fix highly security relevant arbitrary code execution bug

Author: wm4
Author Date: 2020-02-05 15:20:37 UTC

lua: fix highly security relevant arbitrary code execution bug

It appears Lua's package paths try to load .lua files from the current
working directory. Not only that, but also shared libraries.

  WHAT THE FUCK IS WHOEVER IS RESPONSIBLE FOR THIS FUCKING DOING?

mpv isn't setting this package path; currently it's only extending it.
In any sane world, this wouldn't be a default. Most programs use
essentially random working directories and don't change it.

I cannot comprehend what bullshit about "convenience" or whatever made
them do something this broken and dangerous. Thousands of programs using
Lua out there will try to randomly load random code from random
directories.

In mpv's case, this is so security relevant, because mpv is normally
used from the command line, and you will most likely actually change
into your media directory or whatever with the shell, and play a file
from there. No, you don't want to load a (probably downloaded) shared
library from this directory if a script try to load a system lib with
the same name or so.

I'm not sure why LUA_PATH_DEFAULT in luaconf.h (both upstream and the
Debian version) put "./?.lua" at the end, but in any case, trying to
load a module that doesn't exist nicely lists all package paths in
order, and confirms it tries to load files from the working directory
first (anyone can try this). Even if it didn't, this would be
problematic at best.

Note that scripts are _not_ sandboxed. They're allowed to load system
libraries, which is also why we want to keep the non-idiotic parts of
the package paths.

Attempt to fix this by filtering out relative paths. This is a bit
fragile and not very great for something security related, but probably
the best we can do without having to make assumptions about the target
system file system layout. Also, someone else can fix this for Windows.

Also replace ":" with ";" (for the extra path). On a side note, this
extra path addition is just in this function out of laziness, since
I'd rather not have 2 functions with edit the package path.

mpv in default configuration (i.e. no external scripts) is probably not
affected. All builtin scripts only "require" preloaded modules, which,
in a stroke of genius by the Lua developers, are highest priority in the
load order. Otherwise, enjoy your semi-remote code execution bug.

Completely unrelated this, I'm open for scripting languages and
especially implementations which are all around better than Lua, and are
suited for low footprint embedding.

read_stats_old 2020-02-05 18:14:08 UTC
read stats old

Author: wm4
Author Date: 2020-02-05 18:04:10 UTC

read stats old

read_stats_new 2020-02-05 18:04:10 UTC
read stats new

Author: wm4
Author Date: 2020-02-05 18:04:10 UTC

read stats new

release/0.32 2020-01-26 20:31:54 UTC
Release 0.32.0

Author: Sfan5
Author Date: 2020-01-26 20:31:54 UTC

Release 0.32.0

release/0.31 2019-12-28 11:07:07 UTC
Release 0.31.0

Author: Sfan5
Author Date: 2019-12-28 11:07:07 UTC

Release 0.31.0

test-ci 2019-12-18 00:03:59 UTC
Fix macos build

Author: Philip Langdale
Author Date: 2019-12-18 00:03:59 UTC

Fix macos build

x11_geo 2019-11-30 12:46:18 UTC
x11: update --geometry at runtime and react to runtime option changes

Author: wm4
Author Date: 2019-11-30 12:46:18 UTC

x11: update --geometry at runtime and react to runtime option changes

Not sure if I want this.

vo_win_state 2019-11-26 21:19:43 UTC
x11: use previous commit for fullscreen

Author: wm4
Author Date: 2019-11-26 21:19:43 UTC

x11: use previous commit for fullscreen

Demonstrates it, kind of.

An important and very noisy change is that we need to use our own option
struct. It won't work with vo->opts.

stream_shit 2019-10-30 14:53:03 UTC
stream_memory: remove trivial ffmpeg dependency

Author: wm4
Author Date: 2019-10-30 14:53:03 UTC

stream_memory: remove trivial ffmpeg dependency

release/0.30 2019-10-25 13:08:15 UTC
Release 0.30.0

Author: Sfan5
Author Date: 2019-10-25 13:08:15 UTC

Release 0.30.0

vo_drm_zimg 2019-10-20 17:50:35 UTC
vo_drm: support zimg, require zimg for 30 bit

Author: wm4
Author Date: 2019-10-20 17:50:35 UTC

vo_drm: support zimg, require zimg for 30 bit

This trivially enables use of zimg. You still need to use
--sws-allow-zimg to use it.

In addition, it removes the vo_drm-specific 30 bit RGB support, and uses
zimg's support for it. Like vo_drm, zimg's wrapper simply repacks from
GBRP to RGB30 in C, but it's still a worthy cleanup, as the zimg wrapper
need a concept of "packing" image output anyway. There also might be a
minor performance benefit due to doing the conversion slice-wise and
reducing cache thrashing (whether this positive effect really happens
with typical slice/image/cache sizes is unknown).

release-policy 2019-09-13 16:02:55 UTC
Proposal

Author: wm4
Author Date: 2019-09-13 16:02:55 UTC

Proposal

appstream 2019-07-05 20:09:32 UTC
install: add AppStream metadata

Author: Martin Herkt
Author Date: 2019-07-05 20:09:32 UTC

install: add AppStream metadata

TODO: Generate release entries automatically

release/0.29 2018-10-02 19:03:41 UTC
Release 0.29.1

Author: Jan Ekström
Author Date: 2018-10-02 18:40:56 UTC

Release 0.29.1

coverity_scan 2018-06-11 22:57:34 UTC
cocoa-cb: fix building with Swift 4.2

Author: Akemi
Author Date: 2018-06-09 18:10:25 UTC

cocoa-cb: fix building with Swift 4.2

init is a reserved keyword and Swift 4.2 got a bit stricter about using
it. this could be fixed by adding apostrophes around init but makes the
code uglier. hence i just renamed init to initialized and for
consistency uninit to uninitialized.

Fixes #5899

release/0.28 2018-02-13 02:07:05 UTC
Release 0.28.2

Author: kevmitch
Author Date: 2018-02-13 02:07:05 UTC

Release 0.28.2

release/0.27 2018-02-13 01:42:29 UTC
Release 0.27.2

Author: kevmitch
Author Date: 2018-02-13 01:42:29 UTC

Release 0.27.2

mruby 2017-12-30 10:49:48 UTC
mruby: add a basic ruby implementation of obsevables

Author: Stefano Pigozzi
Author Date: 2017-12-30 10:49:48 UTC

mruby: add a basic ruby implementation of obsevables

multicheck 2017-12-04 20:37:12 UTC
tmp

Author: Stefano Pigozzi
Author Date: 2017-12-04 20:37:12 UTC

tmp

win32-thread-simplify 2017-08-21 16:14:05 UTC
win32: make m_thread_info pointer stable

Author: wm4
Author Date: 2017-08-21 15:49:01 UTC

win32: make m_thread_info pointer stable

Make pthread_table an array of pointers to m_thread_info. The individual
m_thread_info pointers are now bound to the lifetime of the
corresponding thread.

I feel like this is slightly simpler. Much of the pthread_table_lock use
can be removed now, since the m_thread_info contents don't need
synchronization (they are implicitly protected by thread lifetime and
correct API usage).

In theory, you could claim that with a lock around everything, bad API
use can be detected more easily, but in truth bad API use makes
everything racy anyway.

This revererts the previous commit, and fixes what broke the code
without that commit applied.

spherical-metadata 2017-08-18 18:52:06 UTC
fix things

Author: wm4
Author Date: 2017-08-18 18:52:06 UTC

fix things

render_abstraction 2017-07-24 13:04:31 UTC
more wip

Author: wm4
Author Date: 2017-07-24 13:04:31 UTC

more wip

opengl-dr 2017-07-16 19:19:19 UTC
fix shit

Author: wm4
Author Date: 2017-07-16 19:19:19 UTC

fix shit

as pointed out by haasn

coreaudio-spdif-hack 2017-06-29 12:11:20 UTC
ao_coreaudio: insane hack for passing through AC3 as float PCM

Author: wm4
Author Date: 2017-06-29 10:35:58 UTC

ao_coreaudio: insane hack for passing through AC3 as float PCM

...

uwp 2017-06-28 13:33:21 UTC
build: allow --disable-zlib

Author: wm4
Author Date: 2017-06-28 13:33:21 UTC

build: allow --disable-zlib

Since strictly speaking, it's still optional. It's just very much
recommended not to disable it.

d3d-new-hwaccel 2017-06-06 16:45:15 UTC
d3d: add support for new libavcodec hwaccel API

Author: wm4
Author Date: 2017-06-06 15:31:49 UTC

d3d: add support for new libavcodec hwaccel API

Unfortunately quite a mess, in particular due to the need to have some
compatibility with the old API. (The old API will be supported only in
short term.)

release/current 2017-04-23 00:18:38 UTC
Make it clear that this branch is no longer used

Author: Martin Herkt
Author Date: 2017-04-23 00:13:23 UTC

Make it clear that this branch is no longer used

wasapi-attempt 2017-04-20 05:46:10 UTC
test

Author: wm4
Author Date: 2017-04-18 09:53:56 UTC

test

property-expand-wip 2017-04-18 03:39:26 UTC
introduce new property expand + function syntax

Author: wm4
Author Date: 2017-04-18 03:39:26 UTC

introduce new property expand + function syntax

proof of concept

frame-stats-wip 2017-03-23 15:19:21 UTC
more WIP I guess

Author: wm4
Author Date: 2017-03-23 15:19:21 UTC

more WIP I guess

very low I-know-what-I'm-doing levels and also low it's-working levels

remove-libaf 2017-03-19 11:12:19 UTC
remove libaf

Author: wm4
Author Date: 2017-03-19 11:12:19 UTC

remove libaf

audio/filter/* was basically moved from libaf.
Remove it because it can't be relicensed to LGPL.

For now there is some "emergency" code which uses libswresample to
do the minimally needed conversion of audio data for AOs.

Keeping:
- struct mp_audio (used to be struct af_data_s)
- audio/format.h/c, which includes things like AF_FORMAT_S16 (although
  these are enums mirroring e.g. AV_SAMPLE_FMT_S16)
- some helpers in audio/format.h, e.g. af_fmt2str_short which is now
  af_fmt_to_str
- libao2 (in audio/out/)

displaylinktests 2016-09-17 11:15:06 UTC
comment glFlush

Author: wm4
Author Date: 2016-09-17 11:15:06 UTC

comment glFlush

shitmess 2016-07-24 10:50:02 UTC
shitmess

Author: wm4
Author Date: 2016-07-24 10:50:02 UTC

shitmess

d3d_copy_texture 2016-06-22 18:03:23 UTC
d3d11va: copy decoder textures

Author: wm4
Author Date: 2016-06-16 16:14:40 UTC

d3d11va: copy decoder textures

sdl2-pixelformats 2016-06-10 10:56:49 UTC
vo_sdl: fix pixel formats.

Author: Rudolf Polzer
Author Date: 2016-06-10 00:32:47 UTC

vo_sdl: fix pixel formats.

There were two mistakes:

- SDL's RGB565 is always equivalent to ffmpeg's RGB565 (both are packed 16bit
  native-endian integers in RGB=565 form) - this was wrongly reversed on
  big endian platforms.
- SDL's RGB888 doesn't actually mean RGB24, but XRGB8888 (i.e. 32bit
  packed integer, top 8 bits unused).
- Use RGB0 not RGBA when there is no alpha.

something 2016-03-22 13:22:28 UTC
af_lavrresample: force libswscale to use float for downmixing

Author: wm4
Author Date: 2016-03-22 13:22:28 UTC

af_lavrresample: force libswscale to use float for downmixing

Not sure if this really helps.

sub_render 2016-01-28 16:17:46 UTC
sub: add capability to render subtitles ahead on a thread

Author: wm4
Author Date: 2016-01-23 19:40:13 UTC

sub: add capability to render subtitles ahead on a thread

If --sub-render-ahead is set to something higher than 0, it will create
a thread and render ahead subtitles for this many video frames.

For various reasons, this works only with ASS subtitles. Other types use
the old code.

This is less efficient than the normal mode, because the subtitle data
is copied. But it may fix pipelining/latency issues, especially with
display-sync mode.

Some bugs left. Expect crashes. Resizing doesn't work properly, because
resizing doesn't invalidate the render-ahead-cache yet.

New:
- raise maximum number of readahead frames
- avoid copying the previous sub if nothing changed (this affects
  copying the libass result images; the opengl textures weren't
  uploaded before this either)

win32-alpha 2015-12-19 13:19:08 UTC
half-working alpha on windows

Author: wm4
Author Date: 2015-12-19 13:17:06 UTC

half-working alpha on windows

doesn't redraw the "background" properly - compositor bug?

http://stackoverflow.com/questions/4052940/how-to-make-an-opengl-
rendering-context-with-transparent-background

gl-query-timer 2015-11-25 23:20:10 UTC
query_timer

Author: wm4
Author Date: 2015-11-25 23:20:10 UTC

query_timer

deprecate_opengl_hq 2015-07-10 12:09:22 UTC
video: deprecate opengl-hq

Author: wm4
Author Date: 2015-07-10 10:52:13 UTC

video: deprecate opengl-hq

In fact, remove opengl-hq completely. Add a profile that sets the
opengl-hq options explicitly instead. It uses the vo-defaults option,
so users can still use e.g. "vo=opengl:<options>" to customize the
options. The future plan is "flattening" all vo_opengl sub-options
to global options like "--vo-opengl-scale=...". Then the profile
based approach will be much nicer.

Some effort was spent to keep old configs (and command lines too)
compatible to some degree. The compatibility has its limits, but
should be sufficient for most uses.

release/0.9 2015-06-24 11:08:59 UTC
Revert "win32: fix desktop directory"

Author: James Ross-Gowan
Author Date: 2015-06-24 10:49:59 UTC

Revert "win32: fix desktop directory"

This reverts commit f56a7af9f696aab7f4095f282f22dcbe7c758c9e.

This was incorrectly merged. There's no folder parameter in the version
of the function on the release branch.

json_test 2015-04-04 21:32:59 UTC
json

Author: wm4
Author Date: 2015-04-04 21:32:59 UTC

json

release/0.8 2015-03-17 01:50:21 UTC
Release 0.8.3

Author: Kovensky
Author Date: 2015-03-17 01:50:21 UTC

Release 0.8.3

release/0.7 2015-02-03 05:39:20 UTC
Update RELEASE_NOTES

Author: Kovensky
Author Date: 2015-02-03 05:39:20 UTC

Update RELEASE_NOTES

release/0.6 2014-10-24 18:38:45 UTC
Release 0.6.2

Author: Alessandro Ghedini
Author Date: 2014-10-23 17:25:03 UTC

Release 0.6.2

release/0.5 2014-09-23 19:21:41 UTC
Release 0.5.4

Author: Alessandro Ghedini
Author Date: 2014-09-23 19:12:10 UTC

Release 0.5.4

release/0.4 2014-07-26 10:12:40 UTC
Release 0.4.2

Author: Alessandro Ghedini
Author Date: 2014-07-23 12:30:36 UTC

Release 0.4.2

release/0.3 2014-06-14 12:08:26 UTC
Release 0.3.11

Author: wm4
Author Date: 2014-06-14 12:08:26 UTC

Release 0.3.11

udp_sync 2014-05-24 00:27:48 UTC
WIP: port udp_sync.c from mplayer

Author: wm4
Author Date: 2014-05-24 00:27:02 UTC

WIP: port udp_sync.c from mplayer

release/0.2 2013-12-01 19:48:37 UTC
Release 0.2.4

Author: wm4
Author Date: 2013-12-01 19:48:37 UTC

Release 0.2.4

release/0.1 2013-09-20 19:33:32 UTC
Release 0.1.7

Author: wm4
Author Date: 2013-09-20 19:33:10 UTC

Release 0.1.7

matroska2 2013-07-20 00:15:39 UTC
demux_mkv: fix some potential issues with small backwards seeks

Author: wm4
Author Date: 2013-07-20 00:15:15 UTC

demux_mkv: fix some potential issues with small backwards seeks

In some cases, the demuxer seeks backwards to unread EBML tags, so that
other code can parse the properly. In theory, it could happen that a
small backwards seek requires the stream buffer to be refilled (for
example, because the preceding read caused a buffer refill and threw
away the previous contents.

So insert some strategical stream_peek() calls, which will transparently
memmove() the buffer contents if needed.

(Also, get rid of the pos variable in ebml_resync_cluster. This is an
unrelated cosmetic change, I guess.)

libxmp 2013-05-22 23:41:22 UTC
update libxmp usage

Author: wm4
Author Date: 2013-05-22 23:35:58 UTC

update libxmp usage

174 of 74 results

Other repositories

Name Last Modified
lp:~mpv-team/mpv/+git/ffmpeg 2 hours ago
lp:mpv 5 hours ago
lp:~mpv-team/mpv/+git/nv-codec-headers 2022-01-12
13 of 3 results
You can't create new repositories for MPV.