Giter Site home page Giter Site logo

mpv-examples's People

Contributors

capric8416 avatar deeptho avatar doggy avatar dudemanguy avatar hjohn avatar jeeb avatar lluchs avatar niksedk avatar pavelxdd avatar rossy avatar sergiou87 avatar sfan5 avatar tmm1 avatar wangwenx190 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mpv-examples's Issues

Rendering OpenGL with the Enlightenment Foundation Library

Hello MPV experts,

I tried to adapt the SDL example to Efl/Elementary and to render the mpv context to a Glview widget.
Unfortunately MPV doesn't render to the Glview widget. Sometimes there is no video window, sometimes a seperate video window is shown. I really don't know, how to get ahead, and would be very thankful for every tip.

Thanks in advance and a happy New Year 2022,
Max

Here is my current code: (you can find it here):

// Build with: gcc -o mpv mpv.c `pkg-config --cflags --libs mpv elementary`

#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>

#include <Elementary.h>

#include <mpv/client.h>
#include <mpv/render_gl.h>

static int count = 0;
static int render_event;

typedef struct _cb_data cbd;

struct _cb_data
{
   Evas_Object *glview;
   mpv_handle   *mpv;
   mpv_render_context *mpv_gl;
   GLuint fbo;
};

static cbd *cb_data = NULL;

static void die(const char *msg)
{
    fprintf(stderr, "%s\n", msg);
    exit(1);
}

static void *get_proc_address(void *fn_ctx, const char *name)
{
    Evas_Object *glview = fn_ctx;
    Evas_GL *gl = elm_glview_evas_gl_get(glview);
    void *addr = evas_gl_proc_address_get(gl,name);
    return addr;
}

void _render_update(void *ctx) {
    printf("CALL RENDER %d\n",count);
    count = 1;
    
}

Eina_Bool render_event_cb(void *data, int type, void *ev) {
    elm_glview_changed_set(cb_data->glview);
    return 1;
}

void _on_render(Evas_Object *obj)
{
    mpv_render_context *mpv_gl = cb_data->mpv_gl;
    Evas_Object *gl = cb_data->glview;
        
        int w, h;
    
        elm_glview_size_get(gl, &w, &h);
        printf("RENDER %d %d\n",w,h);
        
        mpv_render_param params[] = {
            // Specify the default framebuffer (0) as target. This will
            // render onto the entire screen. If you want to show the video
            // in a smaller rectangle or apply fancy transformations, you'll
            // need to render into a separate FBO and draw it manually.
            {MPV_RENDER_PARAM_OPENGL_FBO, &(mpv_opengl_fbo){
                    .fbo = 0,
                    .w = w,
                    .h = h,
            }},
            // Flip rendering (needed due to flipped GL coordinate system).
            {MPV_RENDER_PARAM_FLIP_Y, &(int){1}},
            {0}
        };
        // See render_gl.h on what OpenGL environment mpv expects, and
        // other API details.
        mpv_render_context_render(mpv_gl, params);
        
}

static Eina_Bool
on_mpv(void *data)
{
    mpv_handle *mpv = data;
    while (1) {
                    //printf("COUNT %d",count);
                    if (count) {
                        count = 0;
                        ecore_event_add(render_event,NULL, NULL,NULL);
                    }
                    mpv_event *mp_event = mpv_wait_event(mpv, 0);
                    if (mp_event->event_id == MPV_EVENT_NONE)
                        break;
                    if (mp_event->event_id == MPV_EVENT_LOG_MESSAGE) {
                        mpv_event_log_message *msg = mp_event->data;
                        // Print log messages about DR allocations, just to
                        // test whether it works. If there is more than 1 of
                        // these, it works. (The log message can actually change
                        // any time, so it's possible this logging stops working
                        // in the future.)
                        if (strstr(msg->text, "DR image"))
                            printf("log: %s", msg->text);
                        continue;
                    }
//                     ยด
                }
   // Let the event continue to other callbacks which have not been called yet
   return ECORE_CALLBACK_PASS_ON;
}

void _init_gl(Evas_Object *glview) {
    
    mpv_render_param params[] = {
        {MPV_RENDER_PARAM_API_TYPE, MPV_RENDER_API_TYPE_OPENGL},
        {MPV_RENDER_PARAM_OPENGL_INIT_PARAMS, &(mpv_opengl_init_params){
            .get_proc_address = get_proc_address, glview,
        }},
        // Tell libmpv that you will call mpv_render_context_update() on render
        // context update callbacks, and that you will _not_ block on the core
        // ever (see <libmpv/render.h> "Threading" section for what libmpv
        // functions you can call at all when this is active).
        // In particular, this means you must call e.g. mpv_command_async()
        // instead of mpv_command().
        // If you want to use synchronous calls, either make them on a separate
        // thread, or remove the option below (this will disable features like
        // DR and is not recommended anyway).
        //{MPV_RENDER_PARAM_ADVANCED_CONTROL, &(int){1}},
        {0}
    };

    // This makes mpv use the currently set GL context. It will use the callback
    // (passed via params) to resolve GL builtin functions, as well as extensions.
    
    mpv_render_context *mpv_gl;
    if (mpv_render_context_create(&mpv_gl, cb_data->mpv, params) < 0)
        die("failed to initialize mpv GL context");
    
    cb_data->mpv_gl = mpv_gl;
    
    // When normal mpv events are available.
    //mpv_set_wakeup_callback(mpv, on_mpv_events, NULL);

    // When there is a need to call mpv_render_context_update(), which can
    // request a new frame to be rendered.
    // (Separate from the normal event handling mechanism for the sake of
    //  users which run OpenGL on a different thread.)
    render_event = ecore_event_type_new();
    ecore_event_handler_add(render_event,render_event_cb,NULL);
    mpv_render_context_set_update_callback(mpv_gl, _render_update, NULL);
    
}


int main(int argc, char *argv[])
{
    Evas_Object *win, *bx, *gl;
    if (!(cb_data = calloc(1, sizeof(cbd)))) return 1;

    
    //elm_config_engine_set("opengl_x11");
    //elm_config_accel_preference_set("opengl");
    
    elm_init(argc,argv);
    elm_config_accel_preference_set("opengl_x11");
    
    elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);

    win = elm_win_util_standard_add("glview simple", "GLView Simple");
    elm_win_autodel_set(win, EINA_TRUE);
   
    bx = elm_box_add(win);
    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    elm_win_resize_object_add(win, bx);
    evas_object_show(bx);

    gl = elm_glview_add(win);
    evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
    evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    elm_glview_mode_set(gl, ELM_GLVIEW_ALPHA | ELM_GLVIEW_DEPTH);
    elm_glview_resize_policy_set(gl, ELM_GLVIEW_RESIZE_POLICY_RECREATE);
    elm_glview_render_policy_set(gl, ELM_GLVIEW_RENDER_POLICY_ALWAYS);
    elm_glview_init_func_set(gl, _init_gl);
    elm_glview_render_func_set(gl, _on_render);
    
    elm_box_pack_end(bx, gl);
    evas_object_show(gl);

    elm_object_focus_set(gl, EINA_TRUE);
    
    evas_object_resize(win, 320, 480);
    evas_object_show(win);
    
    
    mpv_handle *mpv = mpv_create();
    if (!mpv)
        die("context init failed");
    
    ecore_idler_add(on_mpv,mpv);
    
    // Some minor options can only be set before mpv_initialize().
    if (mpv_initialize(mpv) < 0)
        die("mpv init failed");
    
    mpv_request_log_messages(mpv, "debug");
    
    cb_data->glview = gl;
    cb_data->mpv = mpv;
    
    // Play this file.
     const char *cmd[] = {"loadfile", "./video.ogv", NULL};
     mpv_command_async(mpv,0, cmd);
    
    // run the mainloop and process events and callbacks
    elm_run();
            
    // Destroy the GL renderer and all of the GL objects it allocated. If video
    // is still running, the video track will be deselected.
    mpv_render_context_free(cb_data->mpv_gl);

    mpv_terminate_destroy(mpv);
    elm_shutdown();

    printf("properly terminated\n");
    return 0;
}
`

tuning mpv-examples qt_opengl

Code from mpv-examples/libmpv/qt_opengl/mpvwidget.cpp does not find all OpenGL functions.

Modifications based on code from https://github.com/plexinc/plex-media-player/blob/master/src/player/PlayerQuickItem.cpp#L104 fixes the problem.

static void *get_proc_address(void *ctx, const char *name) {
    Q_UNUSED(ctx);
    QOpenGLContext* glctx = QOpenGLContext::currentContext();
    if (!glctx)
        return NULL;
    void *res = (void *)glctx->getProcAddress(QByteArray(name));
#ifdef Q_OS_WIN32
    if (!res)
    {
        HMODULE handle = (HMODULE)QOpenGLContext::openGLModuleHandle();
        if (handle)
            res = (void *)GetProcAddress(handle, name);
    }
#endif
    return res;
}

It works under Qt5. Tested on Qt 5.5, Qt 5.6. OS Windows 10 x64.

mpv API zooming/panning commands usage

Hi I am very new to the mpv API interfaces which I want to embed into my application. I am now developing a simple program trying to perform sort of digital zooming commands like "video-zoom" and "video-pan-x" at run time. Based on the mpv-example/simple and input.conf/rst, I have wrote the following program running on Ubuntu 16.04:

// Build with: gcc -o simple simple.c pkg-config --libs --cflags mpv

#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>

#include <mpv/client.h>

static inline void check_error(int status)
{
if (status < 0) {
printf("mpv API error: %s\n", mpv_error_string(status));
exit(1);
}
}

int main(int argc, char *argv[])
{
if (argc != 2) {
printf("pass a single media file as argument\n");
return 1;
}
mpv_handle *ctx = mpv_create();
if (!ctx) {
printf("failed creating context\n");
return 1;
}
check_error(mpv_set_option_string(ctx, "input-default-bindings", "yes"));
mpv_set_option_string(ctx, "input-vo-keyboard", "yes");
check_error(mpv_initialize(ctx));
const char *cmd[] = {"loadfile", argv[1], NULL};
check_error(mpv_command(ctx, cmd));

int cnt = 0;
double zv;
double pv;
const char *cmd1[] = {"add", "video-zoom", "0.002", NULL};
const char *cmd2[] = {"add", "video-pan-x", "0.0005", NULL};
const char *cmd3[] = {"add", "video-pan-y", "0.0005", NULL};

// Play and do video-zoom at each frame
while (1) {
    mpv_event *event = mpv_wait_event(ctx, 0.01);
    if (cnt<500)  cnt++;  //proceed 500 steps
    zv=cnt/500.0;   //zoom 1/500 per step
    pv=cnt/2000.0;   //pan 1/2000 per step
   
    //----------do zooming and panning through setting and adding--------------//
    // check_error(mpv_set_property(ctx,"video-zoom",MPV_FORMAT_DOUBLE,&zv));  //this works as expected
    // check_error(mpv_set_property(ctx,"video-pan-x",MPV_FORMAT_DOUBLE,&pv)); //this works as expected
    // check_error(mpv_set_property(ctx,"video-pan-y",MPV_FORMAT_DOUBLE,&pv)); //this works as expected
    // check_error(mpv_set_property_string(ctx,"video-zoom","1"));  //this works as expected

    if (cnt<500){
        // check_error(mpv_set_option_string(ctx, "add video-zoom 0.002", NULL));   //mpv API error: option not found
        // check_error(mpv_set_option_string(ctx, "add video-pan-x 0.0005", NULL));   //mpv API error: option not found
        // check_error(mpv_set_option_string(ctx, "add video-pan-y 0.0005", NULL));   //mpv API error: option not found
        // check_error(mpv_command(ctx, cmd1));    //this works as expected
        // check_error(mpv_command(ctx, cmd2));    //this works as expected
        // check_error(mpv_command(ctx, cmd3));    //this works as expected
    }

    printf("%d event: %s\n", cnt, mpv_event_name(event->event_id));
    if (event->event_id == MPV_EVENT_SHUTDOWN)
        break;
}

mpv_terminate_destroy(ctx);
return 0;

}

  1. as you can see, I have made most of APIs working except "mpv_set_option_string" reports error, so what's the correct syntax for it? Also could someone double check the others in terms of syntax and efficiency?
  2. I tried this program to stream a web cam successful, however the zooming and panning are not working very smoothly, the view is kind of shaking randomly. I have not tried hardware acceleration yet. Any one can help optimize or provide suggestion?
    Thanks!

Audio callback

Does libmpv have an audio callback feature that returns audio samples for a video frame?

Thanks.

multiple videos playback in same window

i am using mpv qml , it is working perfect .
how can i playback several videos simultaneously from same window , for now , a new window just pop up above the current window everytime i tried to add a new one(player) .

thank you

Example using an FBO

Followup to #19, which was for some reason closed without a resolution. I'll reproduce my comment from there, here, for convenience.


Please forgive me for being extremely stupid.

Where is it "all documented"? The comment in libmpv/sdl/main.c references render_gl.h, which I think might be mpv/libmpv/render_gl.h which in turn references glGenFrameBuffers(), which isn't mentioned in the SDL docs I found, nor is "frame", nor "buffer".

Googling for "sdl glgenframebuffers", or "sdl get framebuffer", or "sdl get fbo" all lead to the same couple of StackOverflow questions about directly modifying pixels, not getting an int I can give to mpv_opengl_fbo.fbo.

Googling for "sdl mpv fbo" gets me an example of using the opengl-cb API which the README in this repo says doesn't exist any more, an arch linux BBS thread where some guy symlinks his system python2 to python to get libreoffice to work, and this dang issue.

Could someone please point me towards where this is "all documented"? Please remember that if I try really hard, I can just about reach 30 IQ.

qt_opengl resize laggy on macOS

It's very laggy when I resize the window, almost only respond after I stop moving my mouse.
Switch to new render api doesn't solve the problem.
IINA is pretty smooth, they use opengl-cb as well, no idea why.
Is this a qt problem or mpv problem?
Tried with qt 5.11 on macOS 10.12 and 10.13.

The `simple.c` doesn't work

Link

https://github.com/mpv-player/mpv-examples/blob/master/libmpv/simple/simple.c

image
image

First, The compile command works fine on macOS

gcc -o simple simple.c `pkg-config --libs --cflags mpv`

image
image
no error message

Compile result is a simple file and I added a test.mkv file for testing purpose (download with youtube-dl https://www.youtube.com/watch?v=-6TncNpzKsA)

image

Here is output when I run ./simple test.mkv

image

Zoom in

image

The problem here is nothing happen, it should play video

What I expect to happen (when running ./simple test.mkv)

It play video correctly just like running mpv test.mkvcommand
Like this:
image

image

What actually happen

nothing happen

SharpGL with libmpv only voice no pictures

I use libmpv with SharpGL in a wpf desktop app.

no crash ,no error ,just no video only voice.

os: win7 x64 and win10 x64
visual studio 2019

did i miss something?

public MainWindow()
        {
            InitializeComponent();
            renderUpdateCallback = this.renderUpdate;
            GC.KeepAlive(renderUpdateCallback);
            mpvHandle = libmpv.mpv_create();
            libmpv.mpv_initialize(mpvHandle);
      }


private void OpenGLControl1_OpenGLInitialized(object sender, SharpGL.WPF.OpenGLRoutedEventArgs args)
        {
            createRender();
            libmpv.mpv_render_context_set_update_callback(mpvGLContext, renderUpdateCallback, IntPtr.Zero);
            libmpv.mpv_set_option_string(mpvHandle,"vo", "opengl-cb");
            libmpv.mpv_set_option_string(mpvHandle, "hwdec", "auto");
        }

How to play several RTSP streams int the same time according to the example of qt-opengl?

As the title described, I add another MpvWidget to the MainWidget and set load command to each of MpvWidget, but I get the result as the picture shownd below.
ๆ— ๆ ‡้ข˜

In the picture, actually, the left MpvWidget is now playing the video of the right one, and the right MpvWidget does not play anything. Here is my code.

`MainWidget::MainWidget(QWidget *parent) : QWidget(parent) {

MpvWidget *player = new MpvWidget(this, 1);
player->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);

QGridLayout *layout = new QGridLayout();
layout->setMargin(0);
layout->setSpacing(1);
setLayout(layout);

layout->addWidget(player, 0, 0, 1, 1);

QString file = "rtsp://192.168.31.111:10020/proxy/3";
player->command(QStringList() << "loadfile" << file);

MpvWidget *player2 = new MpvWidget(this, 2);
player2->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
layout->addWidget(player2, 0, 1, 1, 1);

QString file2 = "rtsp://192.168.31.253:554/user=admin_password=tlJwpbo6_channel=1_stream=0.sdp?real_stream";
player->command(QStringList() << "loadfile" << file2);

}`

Any idea is appreciated

How can I use swiftui too

I'm trying to make a simple rtsp media player in Swiftui, how can I do it? How can I import and use libmpv, can anyone provide resources or help?

simple-streamcb not working due to unimplemented size_fn callback

When running the example as follows:
./simple-streamcb /mnt/tvheadend/Holby\ City.ts
navigating with arrow keys does not work.
seek_fn is always called with an offset 0. This is dues to
size_fn not being implemented in the example.
This makes the example less useful.

Adding the following size_fn makes the example work as expected:

static int64_t size_fn(void *cookie)
{
FILE *fp = cookie;
struct stat st;
if(fstat(fileno(fp),&st)) {
return MPV_ERROR_UNSUPPORTED;
}
return st.st_size;
}

This callback needs to be activated by adding a line
info->size_fn = size_fn;
in the function open_fn.

mpv_get_property get stuck in qtexample

Hi all,

I'm using qt5.9 and the latest mpv on macos 10.13.

I've found that `mpv_get_property' would get stuck in here.
Could you please help me to avoid this? .. I've being searching google for days...

BTW, `mpv_get_property_async' works fine in this example.

Example using a FBO

Hi,
I'm using the sdl example and works as expected but I would like to know is it possible to render the video frame to a FBO an use it to show the video in a OpenGL texture.

Memory leak [linux] [mpv 0.32]

Set the playback speed of 100, open the playback for many times, the memory has been rising significantly.

The memory increases a little every time.

Capture mouse Events in qt application.

Is there a way to capture mouse events in the qt application?
Overriding mousePressEvent and mouseDoubleClickEvent on QWidget not work when its assigned as a container of mpv video.

Add basic win32 example

As the title says. Please add a basic win32 example. Most examples relies on cross platform windows library and none of it gives the best solution to handle events in the direct os way. I'm having trouble setting up wakeup events and render gl context in simple platforms using win32 for example or trying it on android application in jni using opengl context. I'm having trouble setting up mpv_set_wakeup_callback and mpv_render_context_set_update_callback. How do I do it without sdl or other cross platform libraries? I looked into mpv-android but the projects requires mpv_wakeup and pthread to work with events. I'm not sure how would I do that. Hope I get a proper response or sample demo as this looks pretty hard for me and I hope on embedding mpv on flutter. But most examples relies on cross platform toolkit and every os has their own implementation of mpv_set_wakeup_callback and mpv_render_context_set_update.

Simple example on macOS

Hi

I don't think this is the expected behaviour, but I might be wrong. Compiling and playing a file with the libmpv/simple/ example shows a playback window on Linux as though I had run the mpv from the command line. However compiling and running the same example on macOS shows playback information in the terminal, but doesn't show a playback window (or output any sound).

Is this a bug, or do I have to create my own window in Cocoa in order for playback to work on macOS?

Thanks

Edit: macOS 10.14.6 and 10.15.3, mpv 0.32.0 from homebrew

Is there a simple way to load scripts from ~/.config/mpv/scripts ?

I'm getting a feel for the api with the simple example but my attempts at loading scripts have not worked. I've tried the following

    check_error(mpv_set_option_string(ctx, "config-dir", "/home/anon/.config/mpv"));
    check_error(mpv_set_option_string(ctx, "load-scripts", "yes"));

but to no avail. Will I really need to pass each script from the directory manually like so?

    for (int i = 0; i < argc; ++i)
        check_error(mpv_set_option_string(ctx, "script", argv[i]));

(assuming **argv is an array of script files)

Audio output initialization failed...

Hello. I had some problems while running a C# implementation of libmpv in some systems with no audio output deviced connected (no internal or external speakers/headphones).
The videos weren't playing and I got the following log:
[ 0.171][e][ao/wasapi] There are no playback devices available
...
[ 0.177][v][cplayer] finished playback, audio output initialization failed (reason 4)

This issue could be avoided by running the player with the sound disabled ("audio" option set to "no"). However, I find strange that the expected behaviour when the player doesn't find any audio output device is to stop the playback instead of playing it without sound. In fact that's what happens if you use the "mpv.exe" instead of the libmpv implementation. I guess this is more of a suggestion than an actual issue.

MacOS compile simple.c failed

I'm on MacOS 11.0.1 using clang(Apple clang version 12.0.0 (clang-1200.0.32.27))

building libmpv by:

git clone https://github.com/mpv-player/mpv-build.git
cd mpv-build/
echo --enable-libmpv-static >> mpv_options
./rebuild -j4
./install

and compile simple.c

gcc -o simple simple.c -I/usr/local/include -L/usr/local/lib -lmpv -lzimg -lswscale -lswresample -ljpeg -lavcodec -lavfilter -lavformat -lass

then I got (the error is too long that some lines hided by terminal):

...
...
      _symbolic _____y_____G s23_ContiguousArrayStorageC So16mpv_render_paramV in libmpv.a(macOS_swift.o)
      _symbolic _____ySay_____GG s23_ContiguousArrayStorageC So24_CGLPixelFormatAttributeV in libmpv.a(macOS_swift.o)
      _symbolic _____y_____G s23_ContiguousArrayStorageC So24_CGLPixelFormatAttributeV in libmpv.a(macOS_swift.o)
      _symbolic _____y______SStG s23_ContiguousArrayStorageC s6UInt32V in libmpv.a(macOS_swift.o)
      ...
  "protocol descriptor for Swift.ExpressibleByArrayLiteral", referenced from:
      protocol conformance descriptor for __C.CGDisplayChangeSummaryFlags : Swift.ExpressibleByArrayLiteral in __C_Synthesized in libmpv.a(macOS_swift.o)
      protocol conformance descriptor for __C.NSAutoresizingMaskOptions : Swift.ExpressibleByArrayLiteral in __C_Synthesized in libmpv.a(macOS_swift.o)
  "method descriptor for Swift.ExpressibleByArrayLiteral.init(arrayLiteral: A.ArrayLiteralElement...) -> A", referenced from:
      protocol conformance descriptor for __C.CGDisplayChangeSummaryFlags : Swift.ExpressibleByArrayLiteral in __C_Synthesized in libmpv.a(macOS_swift.o)
      protocol conformance descriptor for __C.NSAutoresizingMaskOptions : Swift.ExpressibleByArrayLiteral in __C_Synthesized in libmpv.a(macOS_swift.o)
  "type metadata for Swift.DefaultStringInterpolation", referenced from:
      macOS_swift.Common.currentFps() -> Swift.Double in libmpv.a(macOS_swift.o)
      macOS_swift.Common.getScreenBy(id: Swift.Int) -> __C.NSScreen? in libmpv.a(macOS_swift.o)
      macOS_swift.Window.setFrame(_: __C.CGRect, display: Swift.Bool) -> () in libmpv.a(macOS_swift.o)
      merged macOS_swift.Window.setNormalWindowSize() -> () in libmpv.a(macOS_swift.o)
      macOS_swift.Window.addWindowScale(Swift.Double) -> () in libmpv.a(macOS_swift.o)
      function signature specialization <Arg[2] = Dead> of static macOS_swift.GLLayer.findPixelFormat(_: macOS_swift.CocoaCB, software: Swift.Bool) -> (Swift.OpaquePointer?, Swift.Int32, __C._CGLError) in libmpv.a(macOS_swift.o)
  "protocol witness table for Swift.DefaultStringInterpolation : Swift.TextOutputStream in Swift", referenced from:
      macOS_swift.Common.currentFps() -> Swift.Double in libmpv.a(macOS_swift.o)
      macOS_swift.Common.getScreenBy(id: Swift.Int) -> __C.NSScreen? in libmpv.a(macOS_swift.o)
      macOS_swift.Window.setFrame(_: __C.CGRect, display: Swift.Bool) -> () in libmpv.a(macOS_swift.o)
      merged macOS_swift.Window.setNormalWindowSize() -> () in libmpv.a(macOS_swift.o)
      macOS_swift.Window.addWindowScale(Swift.Double) -> () in libmpv.a(macOS_swift.o)
      function signature specialization <Arg[2] = Dead> of static macOS_swift.GLLayer.findPixelFormat(_: macOS_swift.CocoaCB, software: Swift.Bool) -> (Swift.OpaquePointer?, Swift.Int32, __C._CGLError) in libmpv.a(macOS_swift.o)
  "Swift._stdlib_isOSVersionAtLeast(Builtin.Word, Builtin.Word, Builtin.Word) -> Builtin.Int1", referenced from:
      _globalinit_33_7BA65AE6B583ACB084CE33E6B78E0B4B_func2Tm in libmpv.a(macOS_swift.o)
      macOS_swift.RemoteCommandCenter.start() -> () in libmpv.a(macOS_swift.o)
      macOS_swift.TitleBar.material.setter : __C.NSVisualEffectMaterial in libmpv.a(macOS_swift.o)
      macOS_swift.TitleBar.appearanceFrom(string: Swift.String) -> __C.NSAppearance? in libmpv.a(macOS_swift.o)
      macOS_swift.CocoaCB.updateICCProfile() -> () in libmpv.a(macOS_swift.o)
      function signature specialization <Arg[0] = Dead> of macOS_swift.Common.startDisplayLink(Swift.UnsafeMutablePointer<__C.vo>) -> () in libmpv.a(macOS_swift.o)
      function signature specialization <Arg[1] = Dead> of macOS_swift.TitleBar.materialFrom(string: Swift.String) -> __C.NSVisualEffectMaterial in libmpv.a(macOS_swift.o)
      ...
  "Swift._bridgeAnythingToObjectiveC<A>(A) -> Swift.AnyObject", referenced from:
      macOS_swift.View.updateTrackingAreas() -> () in libmpv.a(macOS_swift.o)
      macOS_swift.Window.toggleFullScreen(Any?) -> () in libmpv.a(macOS_swift.o)
  "Swift._stringCompareWithSmolCheck(_: Swift._StringGuts, _: Swift._StringGuts, expecting: Swift._StringComparisonResult) -> Swift.Bool", referenced from:
      macOS_swift.RemoteCommandCenter.handlePropertyChange(Swift.UnsafeMutablePointer<__C.mpv_event>) -> () in libmpv.a(macOS_swift.o)
      generic specialization <Swift.String, Swift.String> of (extension in Swift):Swift.Sequence< where A.Element: Swift.Equatable>.starts<A where A1: Swift.Sequence, A.Element == A1.Element>(with: A1) -> Swift.Bool in libmpv.a(macOS_swift.o)
      macOS_swift.TitleBar.mouseUp(with: __C.NSEvent) -> () in libmpv.a(macOS_swift.o)
      macOS_swift.TitleBar.appearanceFrom(string: Swift.String) -> __C.NSAppearance? in libmpv.a(macOS_swift.o)
      protocol witness for static Swift.Equatable.== infix(A, A) -> Swift.Bool in conformance __C.NSPasteboardType : Swift.Equatable in __C_Synthesized in libmpv.a(macOS_swift.o)
      generic specialization <__C.NSDeviceDescriptionKey> of Swift.__RawDictionaryStorage.find<A where A: Swift.Hashable>(_: A, hashValue: Swift.Int) -> (bucket: Swift._HashTable.Bucket, found: Swift.Bool) in libmpv.a(macOS_swift.o)
      generic specialization <Swift.String> of Swift.__RawDictionaryStorage.find<A where A: Swift.Hashable>(_: A, hashValue: Swift.Int) -> (bucket: Swift._HashTable.Bucket, found: Swift.Bool) in libmpv.a(macOS_swift.o)
      ...
  "type metadata accessor for Swift.__ContiguousArrayStorageBase", referenced from:
      function signature specialization <Arg[0] = Owned To Guaranteed, Arg[1] = Dead> of generic specialization <Any, Swift.ArraySlice<Any>> of Swift.Array.init<A where A == A1.Element, A1: Swift.Sequence>(A1) -> [A] in libmpv.a(macOS_swift.o)
  "protocol descriptor for Swift._HasCustomAnyHashableRepresentation", referenced from:
      protocol conformance descriptor for __C.NSDeviceDescriptionKey : Swift._HasCustomAnyHashableRepresentation in __C_Synthesized in libmpv.a(macOS_swift.o)
      protocol conformance descriptor for __C.NSWindowLevel : Swift._HasCustomAnyHashableRepresentation in __C_Synthesized in libmpv.a(macOS_swift.o)
      protocol conformance descriptor for __C.NSPasteboardType : Swift._HasCustomAnyHashableRepresentation in __C_Synthesized in libmpv.a(macOS_swift.o)
  "method descriptor for Swift._HasCustomAnyHashableRepresentation._toCustomAnyHashable() -> Swift.AnyHashable?", referenced from:
      protocol conformance descriptor for __C.NSDeviceDescriptionKey : Swift._HasCustomAnyHashableRepresentation in __C_Synthesized in libmpv.a(macOS_swift.o)
      protocol conformance descriptor for __C.NSWindowLevel : Swift._HasCustomAnyHashableRepresentation in __C_Synthesized in libmpv.a(macOS_swift.o)
      protocol conformance descriptor for __C.NSPasteboardType : Swift._HasCustomAnyHashableRepresentation in __C_Synthesized in libmpv.a(macOS_swift.o)
  "nominal type descriptor for Swift.Int8", referenced from:
      _symbolic SvSgAA_SPy_____GSgtXC s4Int8V in libmpv.a(macOS_swift.o)
      _symbolic Spy_____GSg s4Int8V in libmpv.a(macOS_swift.o)
      _symbolic Spy_____G s4Int8V in libmpv.a(macOS_swift.o)
      _symbolic SPy_____G s4Int8V in libmpv.a(macOS_swift.o)
      _symbolic SPy_____GSg s4Int8V in libmpv.a(macOS_swift.o)
      _symbolic SpySpy_____GSgGSg s4Int8V in libmpv.a(macOS_swift.o)
      _symbolic y_____Sg______A2CtXCSg s13OpaquePointerV s4Int8V in libmpv.a(macOS_swift.o)
      ...
  "Swift.KEY_TYPE_OF_DICTIONARY_VIOLATES_HASHABLE_REQUIREMENTS(Any.Type) -> Swift.Never", referenced from:
      generic specialization <Swift.String, Any> of Swift._NativeDictionary.mutatingFind(_: A, isUnique: Swift.Bool) -> (bucket: Swift._HashTable.Bucket, found: Swift.Bool) in libmpv.a(macOS_swift.o)
      generic specialization <__C.MPRemoteCommand, [Swift.String : Any]> of Swift._NativeDictionary.mutatingFind(_: A, isUnique: Swift.Bool) -> (bucket: Swift._HashTable.Bucket, found: Swift.Bool) in libmpv.a(macOS_swift.o)
  "nominal type descriptor for Swift.Int16", referenced from:
      _symbolic _____ s5Int16V in libmpv.a(macOS_swift.o)
      _symbolic y_____Sg______A2CtXCSg s13OpaquePointerV s5Int16V in libmpv.a(macOS_swift.o)
      _symbolic y_____Sg_SPy_____GSgtXCSg s13OpaquePointerV s5Int16V in libmpv.a(macOS_swift.o)
      _symbolic y_____Sg______A3CtXCSg s13OpaquePointerV s5Int16V in libmpv.a(macOS_swift.o)
      _symbolic y_____Sg______tXCSg s13OpaquePointerV s5Int16V in libmpv.a(macOS_swift.o)
      _symbolic y_____Sg______ACtXCSg s13OpaquePointerV s5Int16V in libmpv.a(macOS_swift.o)
      _symbolic y_____Sg_SPy_____GSgAEtXCSg s13OpaquePointerV s5Int16V in libmpv.a(macOS_swift.o)
      ...
  "nominal type descriptor for Swift.Int32", referenced from:
      _symbolic _____ s5Int32V in libmpv.a(macOS_swift.o)
      _symbolic ___________SPy_____GAD_____SpyAEGSvSgtXC s5Int32V So16CVDisplayLinkRefa So11CVTimeStampa s6UInt64V in libmpv.a(macOS_swift.o)
      _symbolic _____Spy_____GSg_SvSgSpyAAGSg_____AEtXC s5Int32V So2voV s6UInt32V in libmpv.a(macOS_swift.o)
      _symbolic _____y_____G s23_ContiguousArrayStorageC s5Int32V in libmpv.a(macOS_swift.o)
      _symbolic _____Spy_____GSgXCSg s5Int32V So2voV in libmpv.a(macOS_swift.o)
      _symbolic _____Spy_____GSg_AAtXCSg s5Int32V So2voV in libmpv.a(macOS_swift.o)
      _symbolic _____Spy_____GSg_Spy_____GSgtXCSg s5Int32V So2voV So15mp_image_paramsV in libmpv.a(macOS_swift.o)
      ...
  "type metadata for Swift.Int32", referenced from:
      macOS_swift.LibmpvHelper.drawRender(_: __C.CGSize, _: Swift.Int32, _: Swift.UnsafeMutablePointer<__C._CGLContextObject>, skip: Swift.Bool) -> () in libmpv.a(macOS_swift.o)
      macOS_swift.RemoteCommandCenter.init() -> macOS_swift.RemoteCommandCenter in libmpv.a(macOS_swift.o)
      macOS_swift.RemoteCommandCenter.cmdHandler(__C.MPRemoteCommandEvent) -> __C.MPRemoteCommandHandlerStatus in libmpv.a(macOS_swift.o)
      function signature specialization <Arg[0] = Owned To Guaranteed> of macOS_swift.GLLayer.init(cocoaCB: macOS_swift.CocoaCB) -> macOS_swift.GLLayer in libmpv.a(macOS_swift.o)
  "nominal type descriptor for Swift.Int64", referenced from:
      _symbolic _____ s5Int64V in libmpv.a(macOS_swift.o)
      _symbolic ySpy_____GSg______tXCSg So2voV s5Int64V in libmpv.a(macOS_swift.o)
      _symbolic y_____Sg______Spy_____GSgtXCSg s13OpaquePointerV s6UInt32V s5Int64V in libmpv.a(macOS_swift.o)
      _symbolic y_____Sg______ACSpy_____GSgtXCSg s13OpaquePointerV s6UInt32V s5Int64V in libmpv.a(macOS_swift.o)
  "nominal type descriptor for Swift.UInt8", referenced from:
      _symbolic _____ s5UInt8V in libmpv.a(macOS_swift.o)
      _symbolic __________Sg______SPy_____GSgSpyAAGSgtXCSg s5UInt8V s13OpaquePointerV s5Int32V s6UInt32V in libmpv.a(macOS_swift.o)
      _symbolic y_____Sg______ACS4fSPy_____GSgtXCSg s13OpaquePointerV s5Int32V s5UInt8V in libmpv.a(macOS_swift.o)
      _symbolic y_____Sg______A2CtXCSg s13OpaquePointerV s5UInt8V in libmpv.a(macOS_swift.o)
      _symbolic y_____Sg_SPy_____GSgtXCSg s13OpaquePointerV s5UInt8V in libmpv.a(macOS_swift.o)
      _symbolic y_____Sg______A3CtXCSg s13OpaquePointerV s5UInt8V in libmpv.a(macOS_swift.o)
      _symbolic y_____Sg______tXCSg s13OpaquePointerV s5UInt8V in libmpv.a(macOS_swift.o)
      ...
  "type metadata for Swift.UInt8", referenced from:
      lazy protocol witness table accessor for type Swift.UInt8 and conformance Swift.UInt8 : Swift.UnsignedInteger in Swift in libmpv.a(macOS_swift.o)
  "protocol conformance descriptor for Swift.UInt8 : Swift.UnsignedInteger in Swift", referenced from:
      lazy protocol witness table accessor for type Swift.UInt8 and conformance Swift.UInt8 : Swift.UnsignedInteger in Swift in libmpv.a(macOS_swift.o)
  "static Swift.Hasher._hash(seed: Swift.Int, bytes: Swift.UInt64, count: Swift.Int) -> Swift.Int", referenced from:
      generic specialization <Swift.UInt32> of Swift.__RawDictionaryStorage.find<A where A: Swift.Hashable>(A) -> (bucket: Swift._HashTable.Bucket, found: Swift.Bool) in libmpv.a(macOS_swift.o)
  "static Swift.Hasher._hash(seed: Swift.Int, _: Swift.UInt64) -> Swift.Int", referenced from:
      protocol witness for Swift.Hashable._rawHashValue(seed: Swift.Int) -> Swift.Int in conformance __C.NSWindowLevel : Swift.Hashable in __C_Synthesized in libmpv.a(macOS_swift.o)
  "Swift.Hasher.init(_seed: Swift.Int) -> Swift.Hasher", referenced from:
      protocol witness for Swift.Hashable.hashValue.getter : Swift.Int in conformance macOS_swift.RemoteCommandCenter.KeyType : Swift.Hashable in macOS_swift in libmpv.a(macOS_swift.o)
      protocol witness for Swift.Hashable._rawHashValue(seed: Swift.Int) -> Swift.Int in conformance macOS_swift.RemoteCommandCenter.KeyType : Swift.Hashable in macOS_swift in libmpv.a(macOS_swift.o)
      protocol witness for Swift.Hashable.hashValue.getter : Swift.Int in conformance macOS_swift.CocoaCB.State : Swift.Hashable in macOS_swift in libmpv.a(macOS_swift.o)
      protocol witness for Swift.Hashable._rawHashValue(seed: Swift.Int) -> Swift.Int in conformance macOS_swift.CocoaCB.State : Swift.Hashable in macOS_swift in libmpv.a(macOS_swift.o)
      protocol witness for Swift.Hashable._rawHashValue(seed: Swift.Int) -> Swift.Int in conformance __C.NSPasteboardType : Swift.Hashable in __C_Synthesized in libmpv.a(macOS_swift.o)
      generic specialization <__C.NSDeviceDescriptionKey> of Swift.__RawDictionaryStorage.find<A where A: Swift.Hashable>(A) -> (bucket: Swift._HashTable.Bucket, found: Swift.Bool) in libmpv.a(macOS_swift.o)
      generic specialization <Swift.String> of Swift.__RawDictionaryStorage.find<A where A: Swift.Hashable>(A) -> (bucket: Swift._HashTable.Bucket, found: Swift.Bool) in libmpv.a(macOS_swift.o)
      ...
  "Swift.Hasher._combine(Swift.UInt) -> ()", referenced from:
      protocol witness for Swift.Hashable.hashValue.getter : Swift.Int in conformance macOS_swift.RemoteCommandCenter.KeyType : Swift.Hashable in macOS_swift in libmpv.a(macOS_swift.o)
      protocol witness for Swift.Hashable.hash(into: inout Swift.Hasher) -> () in conformance macOS_swift.RemoteCommandCenter.KeyType : Swift.Hashable in macOS_swift in libmpv.a(macOS_swift.o)
      protocol witness for Swift.Hashable._rawHashValue(seed: Swift.Int) -> Swift.Int in conformance macOS_swift.RemoteCommandCenter.KeyType : Swift.Hashable in macOS_swift in libmpv.a(macOS_swift.o)
      protocol witness for Swift.Hashable.hashValue.getter : Swift.Int in conformance macOS_swift.CocoaCB.State : Swift.Hashable in macOS_swift in libmpv.a(macOS_swift.o)
      protocol witness for Swift.Hashable.hash(into: inout Swift.Hasher) -> () in conformance macOS_swift.CocoaCB.State : Swift.Hashable in macOS_swift in libmpv.a(macOS_swift.o)
      protocol witness for Swift.Hashable._rawHashValue(seed: Swift.Int) -> Swift.Int in conformance macOS_swift.CocoaCB.State : Swift.Hashable in macOS_swift in libmpv.a(macOS_swift.o)
      protocol witness for Swift.Hashable.hash(into: inout Swift.Hasher) -> () in conformance __C.NSWindowLevel : Swift.Hashable in __C_Synthesized in libmpv.a(macOS_swift.o)
      ...
  "Swift.Hasher._finalize() -> Swift.Int", referenced from:
      protocol witness for Swift.Hashable.hashValue.getter : Swift.Int in conformance macOS_swift.RemoteCommandCenter.KeyType : Swift.Hashable in macOS_swift in libmpv.a(macOS_swift.o)
      protocol witness for Swift.Hashable._rawHashValue(seed: Swift.Int) -> Swift.Int in conformance macOS_swift.RemoteCommandCenter.KeyType : Swift.Hashable in macOS_swift in libmpv.a(macOS_swift.o)
      protocol witness for Swift.Hashable.hashValue.getter : Swift.Int in conformance macOS_swift.CocoaCB.State : Swift.Hashable in macOS_swift in libmpv.a(macOS_swift.o)
      protocol witness for Swift.Hashable._rawHashValue(seed: Swift.Int) -> Swift.Int in conformance macOS_swift.CocoaCB.State : Swift.Hashable in macOS_swift in libmpv.a(macOS_swift.o)
      protocol witness for Swift.Hashable._rawHashValue(seed: Swift.Int) -> Swift.Int in conformance __C.NSPasteboardType : Swift.Hashable in __C_Synthesized in libmpv.a(macOS_swift.o)
      generic specialization <__C.NSDeviceDescriptionKey> of Swift.__RawDictionaryStorage.find<A where A: Swift.Hashable>(A) -> (bucket: Swift._HashTable.Bucket, found: Swift.Bool) in libmpv.a(macOS_swift.o)
      generic specialization <Swift.String> of Swift.__RawDictionaryStorage.find<A where A: Swift.Hashable>(A) -> (bucket: Swift._HashTable.Bucket, found: Swift.Bool) in libmpv.a(macOS_swift.o)
      ...
  "nominal type descriptor for Swift.UInt16", referenced from:
      _symbolic y_____Sg______A2CtXCSg s13OpaquePointerV s6UInt16V in libmpv.a(macOS_swift.o)
      _symbolic y_____Sg_SPy_____GSgtXCSg s13OpaquePointerV s6UInt16V in libmpv.a(macOS_swift.o)
      _symbolic y_____Sg______A3CtXCSg s13OpaquePointerV s6UInt16V in libmpv.a(macOS_swift.o)
      _symbolic y_____Sg______Spy_____GSgtXCSg s13OpaquePointerV s6UInt32V s6UInt16V in libmpv.a(macOS_swift.o)
      _symbolic y_____Sg___________tXCSg s13OpaquePointerV s5Int32V s6UInt16V in libmpv.a(macOS_swift.o)
      _symbolic y_____Sg___________SPy_____GSgtXCSg s13OpaquePointerV s6UInt32V s5Int32V s6UInt16V in libmpv.a(macOS_swift.o)
      _symbolic y_____Sg______SPy_____GSgtXCSg s13OpaquePointerV s6UInt32V s6UInt16V in libmpv.a(macOS_swift.o)
      ...
  "nominal type descriptor for Swift.UInt32", referenced from:
      _symbolic _____ s6UInt32V in libmpv.a(macOS_swift.o)
      _symbolic ySvSg______AbAtXC s6UInt32V in libmpv.a(macOS_swift.o)
      _symbolic y___________SvSgtXC s6UInt32V So27CGDisplayChangeSummaryFlagsV in libmpv.a(macOS_swift.o)
      _symbolic _____Spy_____GSg_SvSgSpyAAGSg_____AEtXC s5Int32V So2voV s6UInt32V in libmpv.a(macOS_swift.o)
      _symbolic _____y______SStG s23_ContiguousArrayStorageC s6UInt32V in libmpv.a(macOS_swift.o)
      _symbolic _____y_____SSG s18_DictionaryStorageC s6UInt32V in libmpv.a(macOS_swift.o)
      _symbolic _____Spy_____GSg______SvSgtXCSg s5Int32V So2voV s6UInt32V in libmpv.a(macOS_swift.o)
      ...
  "type metadata for Swift.UInt32", referenced from:
      (extension in macOS_swift):__C.NSScreen.displayID.getter : Swift.UInt32 in libmpv.a(macOS_swift.o)
      (extension in macOS_swift):__C.NSScreen.displayName.getter : Swift.String? in libmpv.a(macOS_swift.o)
      macOS_swift.RemoteCommandCenter.init() -> macOS_swift.RemoteCommandCenter in libmpv.a(macOS_swift.o)
      macOS_swift.RemoteCommandCenter.cmdHandler(__C.MPRemoteCommandEvent) -> __C.MPRemoteCommandHandlerStatus in libmpv.a(macOS_swift.o)
      function signature specialization <Arg[2] = Dead> of static macOS_swift.GLLayer.findPixelFormat(_: macOS_swift.CocoaCB, software: Swift.Bool) -> (Swift.OpaquePointer?, Swift.Int32, __C._CGLError) in libmpv.a(macOS_swift.o)
      lazy protocol witness table accessor for type Swift.UInt32 and conformance Swift.UInt32 : Swift.BinaryInteger in Swift in libmpv.a(macOS_swift.o)
  "protocol conformance descriptor for Swift.UInt32 : Swift.BinaryInteger in Swift", referenced from:
      lazy protocol witness table accessor for type Swift.UInt32 and conformance Swift.UInt32 : Swift.BinaryInteger in Swift in libmpv.a(macOS_swift.o)
  "nominal type descriptor for Swift.UInt64", referenced from:
      _symbolic _____ s6UInt64V in libmpv.a(macOS_swift.o)
      _symbolic ___________SPy_____GAD_____SpyAEGSvSgtXC s5Int32V So16CVDisplayLinkRefa So11CVTimeStampa s6UInt64V in libmpv.a(macOS_swift.o)
      _symbolic _____y_____G s23_ContiguousArrayStorageC s6UInt64V in libmpv.a(macOS_swift.o)
      _symbolic __________Sg_AcA_____tXCSg s6UInt32V s13OpaquePointerV s6UInt64V in libmpv.a(macOS_swift.o)
      _symbolic y_____Sg_AB__________tXCSg s13OpaquePointerV s6UInt32V s6UInt64V in libmpv.a(macOS_swift.o)
      _symbolic y_____Sg______ACSpy_____GSgtXCSg s13OpaquePointerV s6UInt32V s6UInt64V in libmpv.a(macOS_swift.o)
  "protocol descriptor for Swift.CVarArg", referenced from:
      _symbolic _____y______pG s23_ContiguousArrayStorageC s7CVarArgP in libmpv.a(macOS_swift.o)
      _symbolic ______pSg s7CVarArgP in libmpv.a(macOS_swift.o)
      _symbolic ______p s7CVarArgP in libmpv.a(macOS_swift.o)
  "protocol descriptor for Swift.OptionSet", referenced from:
      protocol conformance descriptor for __C.CGDisplayChangeSummaryFlags : Swift.OptionSet in __C_Synthesized in libmpv.a(macOS_swift.o)
      protocol conformance descriptor for __C.NSAutoresizingMaskOptions : Swift.OptionSet in __C_Synthesized in libmpv.a(macOS_swift.o)
  "method descriptor for Swift.OptionSet.init(rawValue: A.RawValue) -> A", referenced from:
      protocol conformance descriptor for __C.CGDisplayChangeSummaryFlags : Swift.OptionSet in __C_Synthesized in libmpv.a(macOS_swift.o)
      protocol conformance descriptor for __C.NSAutoresizingMaskOptions : Swift.OptionSet in __C_Synthesized in libmpv.a(macOS_swift.o)
  "base conformance descriptor for Swift.OptionSet: Swift.RawRepresentable", referenced from:
      protocol conformance descriptor for __C.CGDisplayChangeSummaryFlags : Swift.OptionSet in __C_Synthesized in libmpv.a(macOS_swift.o)
      protocol conformance descriptor for __C.NSAutoresizingMaskOptions : Swift.OptionSet in __C_Synthesized in libmpv.a(macOS_swift.o)
  "base conformance descriptor for Swift.OptionSet: Swift.SetAlgebra", referenced from:
      protocol conformance descriptor for __C.CGDisplayChangeSummaryFlags : Swift.OptionSet in __C_Synthesized in libmpv.a(macOS_swift.o)
      protocol conformance descriptor for __C.NSAutoresizingMaskOptions : Swift.OptionSet in __C_Synthesized in libmpv.a(macOS_swift.o)
  "Swift.getVaList([Swift.CVarArg]) -> Swift.CVaListPointer", referenced from:
      macOS_swift.LogHelper.send(message: Swift.String, type: Swift.Int) -> () in libmpv.a(macOS_swift.o)
  "type metadata for Swift.AnyObject", referenced from:
      (extension in macOS_swift):__C.NSScreen.displayName.getter : Swift.String? in libmpv.a(macOS_swift.o)
  "type metadata for Any", referenced from:
      (extension in macOS_swift):__C.NSScreen.displayID.getter : Swift.UInt32 in libmpv.a(macOS_swift.o)
      (extension in macOS_swift):__C.NSScreen.displayName.getter : Swift.String? in libmpv.a(macOS_swift.o)
      macOS_swift.RemoteCommandCenter.start() -> () in libmpv.a(macOS_swift.o)
      macOS_swift.RemoteCommandCenter.cmdHandler(__C.MPRemoteCommandEvent) -> __C.MPRemoteCommandHandlerStatus in libmpv.a(macOS_swift.o)
      macOS_swift.Common.macOptsUpdate() -> () in libmpv.a(macOS_swift.o)
      generic specialization <Any, Foundation.URL> of Swift._arrayConditionalCast<A, B>([A]) -> [B]? in libmpv.a(macOS_swift.o)
      generic specialization <Swift.String, Any> of Swift._arrayForceCast<A, B>([A]) -> [B] in libmpv.a(macOS_swift.o)
      ...
  "_FT_Done_Face", referenced from:
      _add_face in libass.a(ass_font.o)
      _ass_font_clear in libass.a(ass_font.o)
      _ass_get_font_info in libass.a(ass_fontselect.o)
      _ass_fontselect_init in libass.a(ass_fontselect.o)
      _destroy_font_ft in libass.a(ass_fontselect.o)
  "_FT_Done_FreeType", referenced from:
      _ass_renderer_init in libass.a(ass_render.o)
      _ass_renderer_done in libass.a(ass_render.o)
      _match_fonts in libass.a(ass_coretext.o)
  "_FT_Done_Glyph", referenced from:
      _ass_outline_construct in libass.a(ass_render.o)
  "_FT_Face_GetCharVariantIndex", referenced from:
      _get_glyph_variation in libass.a(ass_shaper.o)
  "_FT_Get_Char_Index", referenced from:
      _ass_font_get_index in libass.a(ass_font.o)
      _check_glyph_ft in libass.a(ass_fontselect.o)
      _ass_shaper_shape in libass.a(ass_shaper.o)
      _get_glyph_nominal in libass.a(ass_shaper.o)
  "_FT_Get_Glyph", referenced from:
      _ass_font_get_glyph in libass.a(ass_font.o)
  "_FT_Get_Kerning", referenced from:
      _get_h_kerning in libass.a(ass_shaper.o)
  "_FT_Get_PS_Font_Info", referenced from:
      _check_postscript_ft in libass.a(ass_fontselect.o)
  "_FT_Get_Postscript_Name", referenced from:
      _add_face in libass.a(ass_font.o)
      _ass_get_font_info in libass.a(ass_fontselect.o)
      _get_font_info in libass.a(ass_fontselect.o)
  "_FT_Get_Sfnt_Name", referenced from:
      _get_font_info in libass.a(ass_fontselect.o)
  "_FT_Get_Sfnt_Name_Count", referenced from:
      _get_font_info in libass.a(ass_fontselect.o)
  "_FT_Get_Sfnt_Table", referenced from:
      _add_face in libass.a(ass_font.o)
      _ass_face_get_weight in libass.a(ass_font.o)
      _ass_font_get_glyph in libass.a(ass_font.o)
  "_FT_GlyphSlot_Oblique", referenced from:
      _ass_font_get_glyph in libass.a(ass_font.o)
  "_FT_Init_FreeType", referenced from:
      _ass_renderer_init in libass.a(ass_render.o)
      _match_fonts in libass.a(ass_coretext.o)
  "_FT_Library_Version", referenced from:
      _ass_renderer_init in libass.a(ass_render.o)
  "_FT_Load_Glyph", referenced from:
      _ass_font_get_glyph in libass.a(ass_font.o)
      _ass_glyph_metrics_construct in libass.a(ass_shaper.o)
      _get_contour_point in libass.a(ass_shaper.o)
  "_FT_Load_Sfnt_Table", referenced from:
      _get_reference_table in libass.a(ass_shaper.o)
  "_FT_MulFix", referenced from:
      _ass_font_get_asc_desc in libass.a(ass_font.o)
      _ass_font_get_glyph in libass.a(ass_font.o)
  "_FT_New_Face", referenced from:
      _add_face in libass.a(ass_font.o)
      _ass_get_font_info in libass.a(ass_fontselect.o)
  "_FT_New_Memory_Face", referenced from:
      _ass_fontselect_init in libass.a(ass_fontselect.o)
  "_FT_Open_Face", referenced from:
      _add_face in libass.a(ass_font.o)
  "_FT_Outline_Embolden", referenced from:
      _ass_font_get_glyph in libass.a(ass_font.o)
  "_FT_Outline_Get_Orientation", referenced from:
      _ass_font_get_glyph in libass.a(ass_font.o)
  "_FT_Outline_Transform", referenced from:
      _ass_font_get_glyph in libass.a(ass_font.o)
  "_FT_Outline_Translate", referenced from:
      _ass_font_get_glyph in libass.a(ass_font.o)
  "_FT_Request_Size", referenced from:
      _add_face in libass.a(ass_font.o)
      _ass_face_set_size in libass.a(ass_font.o)
      _ass_font_set_size in libass.a(ass_font.o)
  "_FT_Set_Charmap", referenced from:
      _charmap_magic in libass.a(ass_font.o)
      _ass_font_get_index in libass.a(ass_font.o)
  "_FcCharSetDestroy", referenced from:
      _destroy in libass.a(ass_fontconfig.o)
  "_FcCharSetHasChar", referenced from:
      _check_glyph in libass.a(ass_fontconfig.o)
      _get_fallback in libass.a(ass_fontconfig.o)
  "_FcConfigBuildFonts", referenced from:
      _ass_fontconfig_add_provider in libass.a(ass_fontconfig.o)
  "_FcConfigCreate", referenced from:
      _ass_fontconfig_add_provider in libass.a(ass_fontconfig.o)
  "_FcConfigDestroy", referenced from:
      _ass_fontconfig_add_provider in libass.a(ass_fontconfig.o)
      _destroy in libass.a(ass_fontconfig.o)
  "_FcConfigGetFonts", referenced from:
      _ass_fontconfig_add_provider in libass.a(ass_fontconfig.o)
  "_FcConfigParseAndLoad", referenced from:
      _ass_fontconfig_add_provider in libass.a(ass_fontconfig.o)
  "_FcConfigSubstitute", referenced from:
      _get_substitutions in libass.a(ass_fontconfig.o)
      _get_fallback in libass.a(ass_fontconfig.o)
  "_FcDefaultSubstitute", referenced from:
      _get_fallback in libass.a(ass_fontconfig.o)
  "_FcFontSetCreate", referenced from:
      _get_fallback in libass.a(ass_fontconfig.o)
  "_FcFontSetDestroy", referenced from:
      _destroy in libass.a(ass_fontconfig.o)
  "_FcFontSort", referenced from:
      _get_fallback in libass.a(ass_fontconfig.o)
  "_FcInitLoadConfig", referenced from:
      _ass_fontconfig_add_provider in libass.a(ass_fontconfig.o)
  "_FcPatternAddBool", referenced from:
      _get_substitutions in libass.a(ass_fontconfig.o)
      _get_fallback in libass.a(ass_fontconfig.o)
  "_FcPatternAddString", referenced from:
      _get_substitutions in libass.a(ass_fontconfig.o)
      _get_fallback in libass.a(ass_fontconfig.o)
  "_FcPatternCreate", referenced from:
      _get_substitutions in libass.a(ass_fontconfig.o)
      _get_fallback in libass.a(ass_fontconfig.o)
  "_FcPatternDel", referenced from:
      _get_fallback in libass.a(ass_fontconfig.o)
  "_FcPatternDestroy", referenced from:
      _get_substitutions in libass.a(ass_fontconfig.o)
      _get_fallback in libass.a(ass_fontconfig.o)
  "_FcPatternGetBool", referenced from:
      _ass_fontconfig_add_provider in libass.a(ass_fontconfig.o)
  "_FcPatternGetCharSet", referenced from:
      _check_glyph in libass.a(ass_fontconfig.o)
      _get_fallback in libass.a(ass_fontconfig.o)
  "_FcPatternGetDouble", referenced from:
      _ass_fontconfig_add_provider in libass.a(ass_fontconfig.o)
  "_FcPatternGetInteger", referenced from:
      _ass_fontconfig_add_provider in libass.a(ass_fontconfig.o)
  "_FcPatternGetString", referenced from:
      _ass_fontconfig_add_provider in libass.a(ass_fontconfig.o)
      _check_postscript in libass.a(ass_fontconfig.o)
      _get_substitutions in libass.a(ass_fontconfig.o)
      _get_fallback in libass.a(ass_fontconfig.o)
  "_FcWeightToOpenTypeDouble", referenced from:
      _ass_fontconfig_add_provider in libass.a(ass_fontconfig.o)
  "_OBJC_CLASS_$__TtCs12_SwiftObject", referenced from:
      type metadata for macOS_swift.LibmpvHelper in libmpv.a(macOS_swift.o)
      type metadata for macOS_swift.MPVHelper in libmpv.a(macOS_swift.o)
  "_OBJC_METACLASS_$__TtCs12_SwiftObject", referenced from:
      metaclass for macOS_swift.LibmpvHelper in libmpv.a(macOS_swift.o)
      metaclass for macOS_swift.MPVHelper in libmpv.a(macOS_swift.o)
  "__swiftEmptyArrayStorage", referenced from:
      macOS_swift.LibmpvHelper.drawRender(_: __C.CGSize, _: Swift.Int32, _: Swift.UnsafeMutablePointer<__C._CGLContextObject>, skip: Swift.Bool) -> () in libmpv.a(macOS_swift.o)
      macOS_swift.Common.init(Swift.OpaquePointer?) -> macOS_swift.Common in libmpv.a(macOS_swift.o)
      macOS_swift.Common.initWindowState() -> () in libmpv.a(macOS_swift.o)
      macOS_swift.Common.updateDisplaylink() -> () in libmpv.a(macOS_swift.o)
      macOS_swift.Common.removeAppNotifications() -> () in libmpv.a(macOS_swift.o)
      closure #1 (Swift.UnsafeMutableRawPointer?) -> () in variable initialization expression of macOS_swift.Common.macOptsWakeupCallback : @convention(c) (Swift.UnsafeMutableRawPointer?) -> ()? in libmpv.a(macOS_swift.o)
      generic specialization <Any, Foundation.URL> of Swift._arrayConditionalCast<A, B>([A]) -> [B]? in libmpv.a(macOS_swift.o)
      ...
  "__swiftEmptyDictionarySingleton", referenced from:
      function signature specialization <Arg[0] = Owned To Guaranteed, Arg[1] = Dead> of generic specialization <Swift.String, Any> of Swift.Dictionary.init(dictionaryLiteral: (A, B)...) -> [A : B] in libmpv.a(macOS_swift.o)
      function signature specialization <Arg[0] = Owned To Guaranteed, Arg[1] = Dead> of generic specialization <__C.MPRemoteCommand, [Swift.String : Any]> of Swift.Dictionary.init(dictionaryLiteral: (A, B)...) -> [A : B] in libmpv.a(macOS_swift.o)
      function signature specialization <Arg[0] = Owned To Guaranteed, Arg[1] = Dead> of generic specialization <Swift.UInt32, Swift.String> of Swift.Dictionary.init(dictionaryLiteral: (A, B)...) -> [A : B] in libmpv.a(macOS_swift.o)
  "__swift_FORCE_LOAD_$_swiftAVFoundation", referenced from:
      __swift_FORCE_LOAD_$_swiftAVFoundation_$_macOS_swift in libmpv.a(macOS_swift.o)
     (maybe you meant: __swift_FORCE_LOAD_$_swiftAVFoundation_$_macOS_swift)
  "__swift_FORCE_LOAD_$_swiftAppKit", referenced from:
      __swift_FORCE_LOAD_$_swiftAppKit_$_macOS_swift in libmpv.a(macOS_swift.o)
     (maybe you meant: __swift_FORCE_LOAD_$_swiftAppKit_$_macOS_swift)
  "__swift_FORCE_LOAD_$_swiftCloudKit", referenced from:
      __swift_FORCE_LOAD_$_swiftCloudKit_$_macOS_swift in libmpv.a(macOS_swift.o)
     (maybe you meant: __swift_FORCE_LOAD_$_swiftCloudKit_$_macOS_swift)
  "__swift_FORCE_LOAD_$_swiftCoreAudio", referenced from:
      __swift_FORCE_LOAD_$_swiftCoreAudio_$_macOS_swift in libmpv.a(macOS_swift.o)
     (maybe you meant: __swift_FORCE_LOAD_$_swiftCoreAudio_$_macOS_swift)
  "__swift_FORCE_LOAD_$_swiftCoreData", referenced from:
      __swift_FORCE_LOAD_$_swiftCoreData_$_macOS_swift in libmpv.a(macOS_swift.o)
     (maybe you meant: __swift_FORCE_LOAD_$_swiftCoreData_$_macOS_swift)
  "__swift_FORCE_LOAD_$_swiftCoreFoundation", referenced from:
      __swift_FORCE_LOAD_$_swiftCoreFoundation_$_macOS_swift in libmpv.a(macOS_swift.o)
     (maybe you meant: __swift_FORCE_LOAD_$_swiftCoreFoundation_$_macOS_swift)
  "__swift_FORCE_LOAD_$_swiftCoreGraphics", referenced from:
      __swift_FORCE_LOAD_$_swiftCoreGraphics_$_macOS_swift in libmpv.a(macOS_swift.o)
     (maybe you meant: __swift_FORCE_LOAD_$_swiftCoreGraphics_$_macOS_swift)
  "__swift_FORCE_LOAD_$_swiftCoreImage", referenced from:
      __swift_FORCE_LOAD_$_swiftCoreImage_$_macOS_swift in libmpv.a(macOS_swift.o)
     (maybe you meant: __swift_FORCE_LOAD_$_swiftCoreImage_$_macOS_swift)
  "__swift_FORCE_LOAD_$_swiftCoreLocation", referenced from:
      __swift_FORCE_LOAD_$_swiftCoreLocation_$_macOS_swift in libmpv.a(macOS_swift.o)
     (maybe you meant: __swift_FORCE_LOAD_$_swiftCoreLocation_$_macOS_swift)
  "__swift_FORCE_LOAD_$_swiftCoreMIDI", referenced from:
      __swift_FORCE_LOAD_$_swiftCoreMIDI_$_macOS_swift in libmpv.a(macOS_swift.o)
     (maybe you meant: __swift_FORCE_LOAD_$_swiftCoreMIDI_$_macOS_swift)
  "__swift_FORCE_LOAD_$_swiftCoreMedia", referenced from:
      __swift_FORCE_LOAD_$_swiftCoreMedia_$_macOS_swift in libmpv.a(macOS_swift.o)
     (maybe you meant: __swift_FORCE_LOAD_$_swiftCoreMedia_$_macOS_swift)
  "__swift_FORCE_LOAD_$_swiftDarwin", referenced from:
      __swift_FORCE_LOAD_$_swiftDarwin_$_macOS_swift in libmpv.a(macOS_swift.o)
     (maybe you meant: __swift_FORCE_LOAD_$_swiftDarwin_$_macOS_swift)
  "__swift_FORCE_LOAD_$_swiftDispatch", referenced from:
      __swift_FORCE_LOAD_$_swiftDispatch_$_macOS_swift in libmpv.a(macOS_swift.o)
     (maybe you meant: __swift_FORCE_LOAD_$_swiftDispatch_$_macOS_swift)
  "__swift_FORCE_LOAD_$_swiftFoundation", referenced from:
      __swift_FORCE_LOAD_$_swiftFoundation_$_macOS_swift in libmpv.a(macOS_swift.o)
     (maybe you meant: __swift_FORCE_LOAD_$_swiftFoundation_$_macOS_swift)
  "__swift_FORCE_LOAD_$_swiftIOKit", referenced from:
      __swift_FORCE_LOAD_$_swiftIOKit_$_macOS_swift in libmpv.a(macOS_swift.o)
     (maybe you meant: __swift_FORCE_LOAD_$_swiftIOKit_$_macOS_swift)
  "__swift_FORCE_LOAD_$_swiftMetal", referenced from:
      __swift_FORCE_LOAD_$_swiftMetal_$_macOS_swift in libmpv.a(macOS_swift.o)
     (maybe you meant: __swift_FORCE_LOAD_$_swiftMetal_$_macOS_swift)
  "__swift_FORCE_LOAD_$_swiftObjectiveC", referenced from:
      __swift_FORCE_LOAD_$_swiftObjectiveC_$_macOS_swift in libmpv.a(macOS_swift.o)
     (maybe you meant: __swift_FORCE_LOAD_$_swiftObjectiveC_$_macOS_swift)
  "__swift_FORCE_LOAD_$_swiftQuartzCore", referenced from:
      __swift_FORCE_LOAD_$_swiftQuartzCore_$_macOS_swift in libmpv.a(macOS_swift.o)
     (maybe you meant: __swift_FORCE_LOAD_$_swiftQuartzCore_$_macOS_swift)
  "__swift_FORCE_LOAD_$_swiftUniformTypeIdentifiers", referenced from:
      __swift_FORCE_LOAD_$_swiftUniformTypeIdentifiers_$_macOS_swift in libmpv.a(macOS_swift.o)
     (maybe you meant: __swift_FORCE_LOAD_$_swiftUniformTypeIdentifiers_$_macOS_swift)
  "__swift_FORCE_LOAD_$_swiftXPC", referenced from:
      __swift_FORCE_LOAD_$_swiftXPC_$_macOS_swift in libmpv.a(macOS_swift.o)
     (maybe you meant: __swift_FORCE_LOAD_$_swiftXPC_$_macOS_swift)
  "__swift_FORCE_LOAD_$_swiftsimd", referenced from:
      __swift_FORCE_LOAD_$_swiftsimd_$_macOS_swift in libmpv.a(macOS_swift.o)
     (maybe you meant: __swift_FORCE_LOAD_$_swiftsimd_$_macOS_swift)
  "__swift_stdlib_reportUnimplementedInitializer", referenced from:
      @objc macOS_swift.LogHelper.init() -> macOS_swift.LogHelper in libmpv.a(macOS_swift.o)
      @objc macOS_swift.Common.init() -> macOS_swift.Common in libmpv.a(macOS_swift.o)
      @objc macOS_swift.View.init(frame: __C.CGRect) -> macOS_swift.View in libmpv.a(macOS_swift.o)
      @objc macOS_swift.TitleBar.init(frame: __C.CGRect) -> macOS_swift.TitleBar in libmpv.a(macOS_swift.o)
      @objc macOS_swift.GLLayer.init() -> macOS_swift.GLLayer in libmpv.a(macOS_swift.o)
  "_av_find_nearest_q_idx", referenced from:
      _reconfig2 in libmpv.a(vo_lavc.c.28.o)
  "_av_hwdevice_ctx_create", referenced from:
      _reinit in libmpv.a(vd_lavc.c.28.o)
      _init in libmpv.a(hwdec_osx.c.28.o)
  "_av_log2", referenced from:
      _mp_append_utf8_bstr in libmpv.a(common.c.28.o)
      _mp_append_escaped_string_noalloc in libmpv.a(common.c.28.o)
      _pl_get_line in libmpv.a(demux_playlist.c.28.o)
  "_av_log_default_callback", referenced from:
      _uninit_libav in libmpv.a(av_log.c.28.o)
  "_av_log_set_callback", referenced from:
      _init_libav in libmpv.a(av_log.c.28.o)
      _uninit_libav in libmpv.a(av_log.c.28.o)
  "_av_opt_get_q", referenced from:
      _add_new_streams in libmpv.a(demux_lavf.c.28.o)
  "_av_opt_set_double", referenced from:
      _create in libmpv.a(ad_lavc.c.28.o)
      _mp_sws_reinit in libmpv.a(sws_utils.c.28.o)
      _configure_lavrr in libmpv.a(f_swresample.c.28.o)
  "_av_pix_fmt_swap_endianness", referenced from:
      _mp_find_other_endian in libmpv.a(img_format.c.28.o)
  "_av_version_info", referenced from:
      _mp_property_ffmpeg in libmpv.a(command.c.28.o)
      _check_library_versions in libmpv.a(av_log.c.28.o)
  "_avdevice_register_all", referenced from:
      _init_libav in libmpv.a(av_log.c.28.o)
  "_avutil_version", referenced from:
      _check_library_versions in libmpv.a(av_log.c.28.o)
  "_bd_close", referenced from:
      _bluray_stream_open_internal in libmpv.a(stream_bluray.c.28.o)
      _bluray_stream_close in libmpv.a(stream_bluray.c.28.o)
  "_bd_free_title_info", referenced from:
      _bluray_stream_open_internal in libmpv.a(stream_bluray.c.28.o)
      _bluray_stream_fill_buffer in libmpv.a(stream_bluray.c.28.o)
      _bluray_stream_close in libmpv.a(stream_bluray.c.28.o)
  "_bd_get_current_title", referenced from:
      _bluray_stream_open_internal in libmpv.a(stream_bluray.c.28.o)
      _bluray_stream_fill_buffer in libmpv.a(stream_bluray.c.28.o)
  "_bd_get_disc_info", referenced from:
      _bluray_stream_open_internal in libmpv.a(stream_bluray.c.28.o)
  "_bd_get_event", referenced from:
      _bluray_stream_open_internal in libmpv.a(stream_bluray.c.28.o)
      _bluray_stream_fill_buffer in libmpv.a(stream_bluray.c.28.o)
  "_bd_get_meta", referenced from:
      _bluray_stream_control in libmpv.a(stream_bluray.c.28.o)
  "_bd_get_playlist_info", referenced from:
      _bluray_stream_fill_buffer in libmpv.a(stream_bluray.c.28.o)
  "_bd_get_title_info", referenced from:
      _bluray_stream_open_internal in libmpv.a(stream_bluray.c.28.o)
  "_bd_get_titles", referenced from:
      _bluray_stream_open_internal in libmpv.a(stream_bluray.c.28.o)
  "_bd_open", referenced from:
      _bluray_stream_open_internal in libmpv.a(stream_bluray.c.28.o)
  "_bd_read", referenced from:
      _bluray_stream_fill_buffer in libmpv.a(stream_bluray.c.28.o)
  "_bd_read_skip_still", referenced from:
      _bluray_stream_fill_buffer in libmpv.a(stream_bluray.c.28.o)
  "_bd_seamless_angle_change", referenced from:
      _bluray_stream_control in libmpv.a(stream_bluray.c.28.o)
  "_bd_seek_time", referenced from:
      _bluray_stream_control in libmpv.a(stream_bluray.c.28.o)
  "_bd_select_playlist", referenced from:
      _bluray_stream_open_internal in libmpv.a(stream_bluray.c.28.o)
  "_bd_select_title", referenced from:
      _bluray_stream_open_internal in libmpv.a(stream_bluray.c.28.o)
      _bluray_stream_control in libmpv.a(stream_bluray.c.28.o)
  "_bd_set_debug_mask", referenced from:
      _bluray_stream_open_internal in libmpv.a(stream_bluray.c.28.o)
  "_bd_tell_time", referenced from:
      _bluray_stream_control in libmpv.a(stream_bluray.c.28.o)
  "_cmsBuildGamma", referenced from:
      _gl_lcms_get_lut3d in libmpv.a(lcms.c.28.o)
  "_cmsBuildParametricToneCurve", referenced from:
      _gl_lcms_get_lut3d in libmpv.a(lcms.c.28.o)
  "_cmsCloseProfile", referenced from:
      _gl_lcms_get_lut3d in libmpv.a(lcms.c.28.o)
  "_cmsCreateContext", referenced from:
      _gl_lcms_get_lut3d in libmpv.a(lcms.c.28.o)
  "_cmsCreateRGBProfileTHR", referenced from:
      _gl_lcms_get_lut3d in libmpv.a(lcms.c.28.o)
  "_cmsCreateTransformTHR", referenced from:
      _gl_lcms_get_lut3d in libmpv.a(lcms.c.28.o)
  "_cmsCreateXYZProfile", referenced from:
      _gl_lcms_get_lut3d in libmpv.a(lcms.c.28.o)
  "_cmsDeleteContext", referenced from:
      _gl_lcms_get_lut3d in libmpv.a(lcms.c.28.o)
  "_cmsDeleteTransform", referenced from:
      _gl_lcms_get_lut3d in libmpv.a(lcms.c.28.o)
  "_cmsDetectBlackPoint", referenced from:
      _gl_lcms_get_lut3d in libmpv.a(lcms.c.28.o)
  "_cmsDoTransform", referenced from:
      _gl_lcms_get_lut3d in libmpv.a(lcms.c.28.o)
  "_cmsFreeToneCurve", referenced from:
      _gl_lcms_get_lut3d in libmpv.a(lcms.c.28.o)
  "_cmsGetContextUserData", referenced from:
      _lcms2_error_handler in libmpv.a(lcms.c.28.o)
  "_cmsOpenProfileFromMemTHR", referenced from:
      _gl_lcms_get_lut3d in libmpv.a(lcms.c.28.o)
  "_cmsSetLogErrorHandlerTHR", referenced from:
      _gl_lcms_get_lut3d in libmpv.a(lcms.c.28.o)
  "_fribidi_get_bidi_types", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_fribidi_get_bracket_types", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_fribidi_get_joining_types", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_fribidi_get_par_embedding_levels_ex", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_fribidi_join_arabic", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_fribidi_reorder_line", referenced from:
      _ass_shaper_reorder in libass.a(ass_shaper.o)
  "_fribidi_shape", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_hb_blob_create", referenced from:
      _get_reference_table in libass.a(ass_shaper.o)
  "_hb_buffer_add_utf32", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_hb_buffer_create", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_hb_buffer_destroy", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_hb_buffer_get_glyph_infos", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_hb_buffer_get_glyph_positions", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_hb_buffer_get_length", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_hb_buffer_pre_allocate", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_hb_buffer_reset", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_hb_buffer_set_segment_properties", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_hb_face_create_for_tables", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_hb_face_destroy", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_hb_face_set_index", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_hb_face_set_upem", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_hb_font_create", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_hb_font_destroy", referenced from:
      _ass_shaper_font_data_free in libass.a(ass_shaper.o)
  "_hb_font_funcs_create", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_hb_font_funcs_destroy", referenced from:
      _ass_shaper_font_data_free in libass.a(ass_shaper.o)
  "_hb_font_funcs_set_glyph_contour_point_func", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_hb_font_funcs_set_glyph_extents_func", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_hb_font_funcs_set_glyph_h_advance_func", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_hb_font_funcs_set_glyph_h_kerning_func", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_hb_font_funcs_set_glyph_h_origin_func", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_hb_font_funcs_set_glyph_v_advance_func", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_hb_font_funcs_set_glyph_v_kerning_func", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_hb_font_funcs_set_glyph_v_origin_func", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_hb_font_funcs_set_nominal_glyph_func", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_hb_font_funcs_set_variation_glyph_func", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_hb_font_set_funcs", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_hb_font_set_ppem", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_hb_font_set_scale", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_hb_language_from_string", referenced from:
      _ass_shaper_set_language in libass.a(ass_shaper.o)
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_hb_language_get_default", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_hb_shape", referenced from:
      _ass_shaper_shape in libass.a(ass_shaper.o)
  "_hb_unicode_funcs_get_default", referenced from:
      _ass_shaper_determine_script in libass.a(ass_shaper.o)
      _ass_shaper_find_runs in libass.a(ass_shaper.o)
  "_hb_unicode_script", referenced from:
      _ass_shaper_determine_script in libass.a(ass_shaper.o)
      _ass_shaper_find_runs in libass.a(ass_shaper.o)
  "_hb_version_string", referenced from:
      _ass_shaper_info in libass.a(ass_shaper.o)
  "_iconv", referenced from:
      _sub_recode in libass.a(ass.o)
      _mp_iconv_to_utf8 in libmpv.a(charset_conv.c.28.o)
     (maybe you meant: _mp_iconv_to_utf8)
  "_iconv_close", referenced from:
      _sub_recode in libass.a(ass.o)
      _mp_iconv_to_utf8 in libmpv.a(charset_conv.c.28.o)
  "_iconv_open", referenced from:
      _sub_recode in libass.a(ass.o)
      _mp_iconv_to_utf8 in libmpv.a(charset_conv.c.28.o)
  "_inflate", referenced from:
      _demux_mkv_decode in libmpv.a(demux_mkv.c.28.o)
  "_inflateEnd", referenced from:
      _demux_mkv_decode in libmpv.a(demux_mkv.c.28.o)
  "_inflateInit_", referenced from:
      _demux_mkv_decode in libmpv.a(demux_mkv.c.28.o)
  "_rubberband_available", referenced from:
      _process in libmpv.a(af_rubberband.c.28.o)
  "_rubberband_delete", referenced from:
      _destroy in libmpv.a(af_rubberband.c.28.o)
      _process in libmpv.a(af_rubberband.c.28.o)
  "_rubberband_get_samples_required", referenced from:
      _process in libmpv.a(af_rubberband.c.28.o)
  "_rubberband_new", referenced from:
      _process in libmpv.a(af_rubberband.c.28.o)
  "_rubberband_process", referenced from:
      _process in libmpv.a(af_rubberband.c.28.o)
  "_rubberband_reset", referenced from:
      _process in libmpv.a(af_rubberband.c.28.o)
      _reset in libmpv.a(af_rubberband.c.28.o)
  "_rubberband_retrieve", referenced from:
      _process in libmpv.a(af_rubberband.c.28.o)
  "_rubberband_set_pitch_scale", referenced from:
      _process in libmpv.a(af_rubberband.c.28.o)
      _command in libmpv.a(af_rubberband.c.28.o)
  "_rubberband_set_time_ratio", referenced from:
      _process in libmpv.a(af_rubberband.c.28.o)
      _command in libmpv.a(af_rubberband.c.28.o)
  "_swift_allocObject", referenced from:
      macOS_swift.LogHelper.send(message: Swift.String, type: Swift.Int) -> () in libmpv.a(macOS_swift.o)
      macOS_swift.LibmpvHelper.drawRender(_: __C.CGSize, _: Swift.Int32, _: Swift.UnsafeMutablePointer<__C._CGLContextObject>, skip: Swift.Bool) -> () in libmpv.a(macOS_swift.o)
      macOS_swift.RemoteCommandCenter.init() -> macOS_swift.RemoteCommandCenter in libmpv.a(macOS_swift.o)
      macOS_swift.RemoteCommandCenter.start() -> () in libmpv.a(macOS_swift.o)
      macOS_swift.Common.initWindowState() -> () in libmpv.a(macOS_swift.o)
      macOS_swift.Common.updateDisplaylink() -> () in libmpv.a(macOS_swift.o)
      macOS_swift.Common.addAppNotifications() -> () in libmpv.a(macOS_swift.o)
      ...
  "_swift_arrayDestroy", referenced from:
      macOS_swift.RemoteCommandCenter.init() -> macOS_swift.RemoteCommandCenter in libmpv.a(macOS_swift.o)
      generic specialization <__C.MPRemoteCommand, [Swift.String : Any]> of $defer #1 <A, B where A: Swift.Hashable>() -> () in Swift._NativeDictionary.subscript.modify : (_: A, isUnique: Swift.Bool) -> B? in libmpv.a(macOS_swift.o)
  "_swift_arrayInitWithCopy", referenced from:
      generic specialization <Swift.String> of Swift.Array._createNewBuffer(bufferIsUnique: Swift.Bool, minimumCapacity: Swift.Int, growForAppend: Swift.Bool) -> () in libmpv.a(macOS_swift.o)
      generic specialization <[__C._CGLPixelFormatAttribute]> of Swift.Array._createNewBuffer(bufferIsUnique: Swift.Bool, minimumCapacity: Swift.Int, growForAppend: Swift.Bool) -> () in libmpv.a(macOS_swift.o)
      generic specialization <Any> of Swift.ContiguousArray._createNewBuffer(bufferIsUnique: Swift.Bool, minimumCapacity: Swift.Int, growForAppend: Swift.Bool) -> () in libmpv.a(macOS_swift.o)
      generic specialization <Swift.String> of Swift.ContiguousArray._createNewBuffer(bufferIsUnique: Swift.Bool, minimumCapacity: Swift.Int, growForAppend: Swift.Bool) -> () in libmpv.a(macOS_swift.o)
      generic specialization <Foundation.URL> of Swift.ContiguousArray._createNewBuffer(bufferIsUnique: Swift.Bool, minimumCapacity: Swift.Int, growForAppend: Swift.Bool) -> () in libmpv.a(macOS_swift.o)
      function signature specialization <Arg[0] = Owned To Guaranteed, Arg[1] = Dead> of generic specialization <Any, Swift.ArraySlice<Any>> of Swift.Array.init<A where A == A1.Element, A1: Swift.Sequence>(A1) -> [A] in libmpv.a(macOS_swift.o)
      function signature specialization <Arg[2] = Owned To Guaranteed> of generic specialization <__C.NSObject> of Swift._ArrayBuffer._copyContents(subRange: Swift.Range<Swift.Int>, initializing: Swift.UnsafeMutablePointer<A>) -> Swift.UnsafeMutablePointer<A> in libmpv.a(macOS_swift.o)
      ...
  "_swift_arrayInitWithTakeBackToFront", referenced from:
      generic specialization <Foundation.URL> of Swift.ContiguousArray._createNewBuffer(bufferIsUnique: Swift.Bool, minimumCapacity: Swift.Int, growForAppend: Swift.Bool) -> () in libmpv.a(macOS_swift.o)
  "_swift_arrayInitWithTakeFrontToBack", referenced from:
      generic specialization <Foundation.URL> of Swift.ContiguousArray._createNewBuffer(bufferIsUnique: Swift.Bool, minimumCapacity: Swift.Int, growForAppend: Swift.Bool) -> () in libmpv.a(macOS_swift.o)
  "_swift_beginAccess", referenced from:
      macOS_swift.LibmpvHelper.init(Swift.OpaquePointer, Swift.OpaquePointer?) -> macOS_swift.LibmpvHelper in libmpv.a(macOS_swift.o)
      merged macOS_swift.LibmpvHelper.setRenderUpdateCallback(_: @convention(c) (Swift.UnsafeMutableRawPointer?) -> (), context: Swift.AnyObject) -> () in libmpv.a(macOS_swift.o)
      macOS_swift.LibmpvHelper.drawRender(_: __C.CGSize, _: Swift.Int32, _: Swift.UnsafeMutablePointer<__C._CGLContextObject>, skip: Swift.Bool) -> () in libmpv.a(macOS_swift.o)
      macOS_swift.LibmpvHelper.setRenderICCProfile(__C.NSColorSpace) -> () in libmpv.a(macOS_swift.o)
      macOS_swift.RemoteCommandCenter.config.modify : [__C.MPRemoteCommand : [Swift.String : Any]] in libmpv.a(macOS_swift.o)
      macOS_swift.RemoteCommandCenter.init() -> macOS_swift.RemoteCommandCenter in libmpv.a(macOS_swift.o)
      macOS_swift.RemoteCommandCenter.start() -> () in libmpv.a(macOS_swift.o)
      ...
  "_swift_bridgeObjectRelease", referenced from:
      (extension in macOS_swift):__C.NSScreen.displayID.getter : Swift.UInt32 in libmpv.a(macOS_swift.o)
      (extension in macOS_swift):__C.NSScreen.displayName.getter : Swift.String? in libmpv.a(macOS_swift.o)
      _globalinit_33_7BA65AE6B583ACB084CE33E6B78E0B4B_func2Tm in libmpv.a(macOS_swift.o)
      macOS_swift.RemoteCommandCenter.init() -> macOS_swift.RemoteCommandCenter in libmpv.a(macOS_swift.o)
      macOS_swift.RemoteCommandCenter.start() -> () in libmpv.a(macOS_swift.o)
      macOS_swift.RemoteCommandCenter.stop() -> () in libmpv.a(macOS_swift.o)
      macOS_swift.RemoteCommandCenter.cmdHandler(__C.MPRemoteCommandEvent) -> __C.MPRemoteCommandHandlerStatus in libmpv.a(macOS_swift.o)
      ...
  "_swift_bridgeObjectRelease_n", referenced from:
      (extension in macOS_swift):__C.NSScreen.displayID.getter : Swift.UInt32 in libmpv.a(macOS_swift.o)
      (extension in macOS_swift):__C.NSScreen.displayName.getter : Swift.String? in libmpv.a(macOS_swift.o)
      macOS_swift.Common.removeAppNotifications() -> () in libmpv.a(macOS_swift.o)
      macOS_swift.Common.getTargetScreen(forFullscreen: Swift.Bool) -> __C.NSScreen? in libmpv.a(macOS_swift.o)
      macOS_swift.TitleBar.show() -> () in libmpv.a(macOS_swift.o)
      generic specialization <__C.NSDeviceDescriptionKey> of Swift.__RawDictionaryStorage.find<A where A: Swift.Hashable>(_: A, hashValue: Swift.Int) -> (bucket: Swift._HashTable.Bucket, found: Swift.Bool) in libmpv.a(macOS_swift.o)
      function signature specialization <Arg[0] = Dead> of macOS_swift.Common.setAppIcon() -> () in libmpv.a(macOS_swift.o)
      ...
  "_swift_bridgeObjectRetain", referenced from:
      generic specialization <[Swift.String : Swift.String]> of (extension in Swift):Swift.Collection.first.getter : A.Element? in libmpv.a(macOS_swift.o)
      (extension in macOS_swift):__C.NSScreen.displayID.getter : Swift.UInt32 in libmpv.a(macOS_swift.o)
      (extension in macOS_swift):__C.NSScreen.displayName.getter : Swift.String? in libmpv.a(macOS_swift.o)
      macOS_swift.RemoteCommandCenter.init() -> macOS_swift.RemoteCommandCenter in libmpv.a(macOS_swift.o)
      macOS_swift.RemoteCommandCenter.start() -> () in libmpv.a(macOS_swift.o)
      macOS_swift.RemoteCommandCenter.stop() -> () in libmpv.a(macOS_swift.o)
      macOS_swift.RemoteCommandCenter.cmdHandler(__C.MPRemoteCommandEvent) -> __C.MPRemoteCommandHandlerStatus in libmpv.a(macOS_swift.o)
      ...
  "_swift_bridgeObjectRetain_n", referenced from:
      macOS_swift.RemoteCommandCenter.init() -> macOS_swift.RemoteCommandCenter in libmpv.a(macOS_swift.o)
      macOS_swift.Common.removeAppNotifications() -> () in libmpv.a(macOS_swift.o)
      macOS_swift.TitleBar.show() -> () in libmpv.a(macOS_swift.o)
      function signature specialization <Arg[1] = Owned To Guaranteed, Arg[2] = Owned To Guaranteed> of macOS_swift.TitleBar.init(frame: __C.CGRect, window: __C.NSWindow, common: macOS_swift.Common) -> macOS_swift.TitleBar in libmpv.a(macOS_swift.o)
      function signature specialization <Arg[0] = Dead> of macOS_swift.Common.getActiveApp() -> __C.NSRunningApplication? in libmpv.a(macOS_swift.o)
      function signature specialization <Arg[1] = Dead> of macOS_swift.View.draggingEntered(__C.NSDraggingInfo) -> __C.NSDragOperation in libmpv.a(macOS_swift.o)
      function signature specialization <Arg[2] = Dead> of static macOS_swift.GLLayer.findPixelFormat(_: macOS_swift.CocoaCB, software: Swift.Bool) -> (Swift.OpaquePointer?, Swift.Int32, __C._CGLError) in libmpv.a(macOS_swift.o)
      ...
  "_swift_deallocClassInstance", referenced from:
      macOS_swift.LibmpvHelper.__deallocating_deinit in libmpv.a(macOS_swift.o)
      macOS_swift.MPVHelper.__deallocating_deinit in libmpv.a(macOS_swift.o)
      macOS_swift.RemoteCommandCenter.init() -> macOS_swift.RemoteCommandCenter in libmpv.a(macOS_swift.o)
  "_swift_deallocObject", referenced from:
      l_objectdestroy in libmpv.a(macOS_swift.o)
      l_objectdestroy.26 in libmpv.a(macOS_swift.o)
      l_objectdestroy.38 in libmpv.a(macOS_swift.o)
      l_objectdestroy.41 in libmpv.a(macOS_swift.o)
      l_objectdestroy.117 in libmpv.a(macOS_swift.o)
      l_objectdestroy.126 in libmpv.a(macOS_swift.o)
      l_objectdestroy.145 in libmpv.a(macOS_swift.o)
      ...
  "_swift_deletedMethodError", referenced from:
      type metadata for macOS_swift.LibmpvHelper in libmpv.a(macOS_swift.o)
      type metadata for macOS_swift.MPVHelper in libmpv.a(macOS_swift.o)
      type metadata for macOS_swift.LogHelper in libmpv.a(macOS_swift.o)
      type metadata for macOS_swift.RemoteCommandCenter in libmpv.a(macOS_swift.o)
      type metadata for macOS_swift.Common in libmpv.a(macOS_swift.o)
      type metadata for macOS_swift.View in libmpv.a(macOS_swift.o)
      type metadata for macOS_swift.Window in libmpv.a(macOS_swift.o)
      ...
  "_swift_dynamicCast", referenced from:
      (extension in macOS_swift):__C.NSScreen.displayID.getter : Swift.UInt32 in libmpv.a(macOS_swift.o)
      (extension in macOS_swift):__C.NSScreen.displayName.getter : Swift.String? in libmpv.a(macOS_swift.o)
      macOS_swift.RemoteCommandCenter.cmdHandler(__C.MPRemoteCommandEvent) -> __C.MPRemoteCommandHandlerStatus in libmpv.a(macOS_swift.o)
      macOS_swift.Common.macOptsUpdate() -> () in libmpv.a(macOS_swift.o)
      generic specialization <Any, Foundation.URL> of Swift._arrayConditionalCast<A, B>([A]) -> [B]? in libmpv.a(macOS_swift.o)
      generic specialization <Swift.String, Any> of Swift._arrayForceCast<A, B>([A]) -> [B] in libmpv.a(macOS_swift.o)
      macOS_swift.TitleBar.set(appearance: Any) -> () in libmpv.a(macOS_swift.o)
      ...
  "_swift_dynamicCastClass", referenced from:
      function signature specialization <Arg[0] = Owned To Guaranteed, Arg[1] = Dead> of generic specialization <Any, Swift.ArraySlice<Any>> of Swift.Array.init<A where A == A1.Element, A1: Swift.Sequence>(A1) -> [A] in libmpv.a(macOS_swift.o)
  "_swift_dynamicCastObjCClass", referenced from:
      macOS_swift.LibmpvHelper.init(Swift.OpaquePointer, Swift.OpaquePointer?) -> macOS_swift.LibmpvHelper in libmpv.a(macOS_swift.o)
      macOS_swift.RemoteCommandCenter.start() -> () in libmpv.a(macOS_swift.o)
      merged generic specialization <__C.MPRemoteCommand> of Swift._ArrayBuffer._getElementSlowPath(Swift.Int) -> Swift.AnyObject in libmpv.a(macOS_swift.o)
      function signature specialization <Arg[1] = Owned To Guaranteed> of macOS_swift.MPVHelper.init(Swift.UnsafeMutablePointer<__C.vo>, macOS_swift.LogHelper) -> macOS_swift.MPVHelper in libmpv.a(macOS_swift.o)
      function signature specialization <Arg[0] = Dead> of macOS_swift.Common.setAppIcon() -> () in libmpv.a(macOS_swift.o)
      function signature specialization <Arg[1] = Owned To Guaranteed, Arg[2] = Owned To Guaranteed, Arg[3] = Owned To Guaranteed> of macOS_swift.Window.__allocating_init(contentRect: __C.CGRect, screen: __C.NSScreen?, view: __C.NSView, common: macOS_swift.Common) -> macOS_swift.Window in libmpv.a(macOS_swift.o)
  "_swift_dynamicCastObjCProtocolConditional", referenced from:
      generic specialization <__C.NSObject> of Swift._ArrayBuffer._getElementSlowPath(Swift.Int) -> Swift.AnyObject in libmpv.a(macOS_swift.o)
  "_swift_endAccess", referenced from:
      macOS_swift.RemoteCommandCenter.config.modify : [__C.MPRemoteCommand : [Swift.String : Any]] with unmangled suffix ".resume.0" in libmpv.a(macOS_swift.o)
      macOS_swift.RemoteCommandCenter.start() -> () in libmpv.a(macOS_swift.o)
      macOS_swift.Common.disableDisplaySleep() -> () in libmpv.a(macOS_swift.o)
      macOS_swift.Common.initLightSensor() -> () in libmpv.a(macOS_swift.o)
      macOS_swift.Common.addAppNotifications() -> () in libmpv.a(macOS_swift.o)
      function signature specialization <Arg[4] = Owned To Guaranteed> of function signature specialization <Arg[2] = [Closure Propagated : closure #1 (Swift.Array<Swift.Optional<Swift.UnsafeMutableRawPointer>>) -> () in macOS_swift.LibmpvHelper.initRender() -> (), Argument Types : [Swift.UnsafeMutableRawPointer?macOS_swift.LibmpvHelper]> of static macOS_swift.MPVHelper.withUnsafeMutableRawPointers(_: [Any], pointers: [Swift.UnsafeMutableRawPointer?], closure: ([Swift.UnsafeMutableRawPointer?]) -> ()) -> () in libmpv.a(macOS_swift.o)
      function signature specialization <Arg[0] = Dead> of macOS_swift.Common.startDisplayLink(Swift.UnsafeMutablePointer<__C.vo>) -> () in libmpv.a(macOS_swift.o)
      ...
  "_swift_getForeignTypeMetadata", referenced from:
      merged type metadata accessor for __C.NSDeviceDescriptionKey in libmpv.a(macOS_swift.o)
  "_swift_getObjCClassFromMetadata", referenced from:
      function signature specialization <Arg[0] = Owned To Guaranteed> of (extension in macOS_swift):__C.NSColor.init(hex: Swift.String) -> __C.NSColor in libmpv.a(macOS_swift.o)
  "_swift_getObjCClassMetadata", referenced from:
      merged type metadata accessor for __C.OS_dispatch_queue in libmpv.a(macOS_swift.o)
  "_swift_getTypeByMangledNameInContext", referenced from:
      ___swift_instantiateConcreteTypeFromMangledName in libmpv.a(macOS_swift.o)
  "_swift_getTypeByMangledNameInContextInMetadataState", referenced from:
      ___swift_instantiateConcreteTypeFromMangledNameAbstract in libmpv.a(macOS_swift.o)
  "_swift_getWitnessTable", referenced from:
      merged lazy protocol witness table accessor for type __C.NSDeviceDescriptionKey and conformance __C.NSDeviceDescriptionKey : Swift.Hashable in __C_Synthesized in libmpv.a(macOS_swift.o)
      lazy protocol witness table accessor for type macOS_swift.CocoaCB.State and conformance macOS_swift.CocoaCB.State : Swift.Equatable in macOS_swift in libmpv.a(macOS_swift.o)
      lazy protocol witness table accessor for type macOS_swift.GLLayer.Draw and conformance macOS_swift.GLLayer.Draw : Swift.Equatable in macOS_swift in libmpv.a(macOS_swift.o)
      lazy protocol witness table accessor for type macOS_swift.GLLayer.Draw and conformance macOS_swift.GLLayer.Draw : Swift.RawRepresentable in macOS_swift in libmpv.a(macOS_swift.o)
      merged lazy protocol witness table accessor for type Dispatch.DispatchWorkItemFlags and conformance Dispatch.DispatchWorkItemFlags : Swift.SetAlgebra in Dispatch in libmpv.a(macOS_swift.o)
      lazy protocol witness table accessor for type Swift.UInt32 and conformance Swift.UInt32 : Swift.BinaryInteger in Swift in libmpv.a(macOS_swift.o)
      lazy protocol witness table accessor for type Swift.Int and conformance Swift.Int : Swift.FixedWidthInteger in Swift in libmpv.a(macOS_swift.o)
      ...
  "_swift_initStackObject", referenced from:
      macOS_swift.RemoteCommandCenter.init() -> macOS_swift.RemoteCommandCenter in libmpv.a(macOS_swift.o)
      macOS_swift.TitleBar.show() -> () in libmpv.a(macOS_swift.o)
      function signature specialization <Arg[1] = Owned To Guaranteed, Arg[2] = Owned To Guaranteed> of macOS_swift.TitleBar.init(frame: __C.CGRect, window: __C.NSWindow, common: macOS_swift.Common) -> macOS_swift.TitleBar in libmpv.a(macOS_swift.o)
      partial apply forwarder for closure #2 () -> () in macOS_swift.TitleBar.hide(Swift.Double) -> () in libmpv.a(macOS_swift.o)
  "_swift_initStaticObject", referenced from:
      _globalinit_33_45DC9481D72A210810CE576CCB5DA9C9_func7 in libmpv.a(macOS_swift.o)
      _globalinit_33_45DC9481D72A210810CE576CCB5DA9C9_func4Tm in libmpv.a(macOS_swift.o)
      _globalinit_33_45DC9481D72A210810CE576CCB5DA9C9_func10 in libmpv.a(macOS_swift.o)
      macOS_swift.GLLayer.updateSurfaceSize() -> () in libmpv.a(macOS_swift.o)
      function signature specialization <Arg[1] = Owned To Guaranteed, Arg[2] = Owned To Guaranteed> of macOS_swift.TitleBar.init(frame: __C.CGRect, window: __C.NSWindow, common: macOS_swift.Common) -> macOS_swift.TitleBar in libmpv.a(macOS_swift.o)
      function signature specialization <Arg[1] = Owned To Guaranteed> of macOS_swift.View.init(frame: __C.CGRect, common: macOS_swift.Common) -> macOS_swift.View in libmpv.a(macOS_swift.o)
      function signature specialization <Arg[1] = Dead, Arg[2] = Dead, Arg[3] = Dead> of closure #1 (Swift.UnsafeMutableRawPointer?, Swift.UInt32, Swift.UInt32, Swift.UnsafeMutableRawPointer?) -> () in variable initialization expression of macOS_swift.Common.lightSensorCallback : (Swift.UnsafeMutableRawPointer?, Swift.UInt32, Swift.UInt32, Swift.UnsafeMutableRawPointer?) -> () in libmpv.a(macOS_swift.o)
      ...
  "_swift_isEscapingClosureAtFileLocation", referenced from:
      macOS_swift.Window.window(_: __C.NSWindow, startCustomAnimationToEnterFullScreenWithDuration: Swift.Double) -> () in libmpv.a(macOS_swift.o)
      macOS_swift.Window.window(_: __C.NSWindow, startCustomAnimationToExitFullScreenWithDuration: Swift.Double) -> () in libmpv.a(macOS_swift.o)
      macOS_swift.Window.endAnimation(__C.CGRect) -> () in libmpv.a(macOS_swift.o)
      macOS_swift.TitleBar.show() -> () in libmpv.a(macOS_swift.o)
      macOS_swift.TitleBar.hide(Swift.Double) -> () in libmpv.a(macOS_swift.o)
      macOS_swift.CocoaCB.reconfig(Swift.UnsafeMutablePointer<__C.vo>) -> () in libmpv.a(macOS_swift.o)
      macOS_swift.CocoaCB.control(_: Swift.UnsafeMutablePointer<__C.vo>, events: Swift.UnsafeMutablePointer<Swift.Int32>, request: Swift.UInt32, data: Swift.UnsafeMutableRawPointer) -> Swift.Int32 in libmpv.a(macOS_swift.o)
      ...
  "_swift_isUniquelyReferencedNonObjC_nonNull_bridgeObject", referenced from:
      macOS_swift.TitleBar.show() -> () in libmpv.a(macOS_swift.o)
      generic specialization <__C.NSObject> of Swift.Array._makeUniqueAndReserveCapacityIfNotUnique() -> () in libmpv.a(macOS_swift.o)
      function signature specialization <Arg[1] = Owned To Guaranteed, Arg[2] = Owned To Guaranteed> of macOS_swift.TitleBar.init(frame: __C.CGRect, window: __C.NSWindow, common: macOS_swift.Common) -> macOS_swift.TitleBar in libmpv.a(macOS_swift.o)
      partial apply forwarder for closure #2 () -> () in macOS_swift.TitleBar.hide(Swift.Double) -> () in libmpv.a(macOS_swift.o)
  "_swift_isUniquelyReferenced_nonNull_native", referenced from:
      generic specialization <Any, Foundation.URL> of Swift._arrayConditionalCast<A, B>([A]) -> [B]? in libmpv.a(macOS_swift.o)
      generic specialization <Swift.String, Any> of Swift._arrayForceCast<A, B>([A]) -> [B] in libmpv.a(macOS_swift.o)
      macOS_swift.GLLayer.updateSurfaceSize() -> () in libmpv.a(macOS_swift.o)
      function signature specialization <Arg[1] = [Closure Propagated : closure #1 (Swift.UnsafeMutableRawBufferPointer) -> () in macOS_swift.LibmpvHelper.setRenderICCProfile(__C.NSColorSpace) -> (), Argument Types : [macOS_swift.LibmpvHelper]> of generic specialization <()> of Foundation.Data._Representation.withUnsafeMutableBytes<A>((Swift.UnsafeMutableRawBufferPointer) throws -> A) throws -> A in libmpv.a(macOS_swift.o)
      function signature specialization <Arg[1] = [Closure Propagated : closure #8 (Swift.UnsafeMutableRawBufferPointer) -> () in macOS_swift.Common.control(_: Swift.UnsafeMutablePointer<__C.vo>, events: Swift.UnsafeMutablePointer<Swift.Int32>, request: Swift.UInt32, data: Swift.UnsafeMutableRawPointer) -> Swift.Int32, Argument Types : [Swift.UnsafeMutablePointer<__C.bstr>]> of generic specialization <()> of Foundation.Data._Representation.withUnsafeMutableBytes<A>((Swift.UnsafeMutableRawBufferPointer) throws -> A) throws -> A in libmpv.a(macOS_swift.o)
      generic specialization <Swift.String, Any> of Swift.Dictionary._Variant.setValue(_: __owned B, forKey: A) -> () in libmpv.a(macOS_swift.o)
      generic specialization <__C.MPRemoteCommand, [Swift.String : Any]> of Swift.Dictionary._Variant.subscript.modify : (A) -> B? in libmpv.a(macOS_swift.o)
      ...
  "_swift_isaMask", referenced from:
      @objc closure #1 (__C.CVDisplayLinkRef, Swift.UnsafePointer<__C.CVTimeStamp>, Swift.UnsafePointer<__C.CVTimeStamp>, Swift.UInt64, Swift.UnsafeMutablePointer<Swift.UInt64>, Swift.UnsafeMutableRawPointer?) -> Swift.Int32 in variable initialization expression of macOS_swift.Common.linkCallback : (__C.CVDisplayLinkRef, Swift.UnsafePointer<__C.CVTimeStamp>, Swift.UnsafePointer<__C.CVTimeStamp>, Swift.UInt64, Swift.UnsafeMutablePointer<Swift.UInt64>, Swift.UnsafeMutableRawPointer?) -> Swift.Int32 in libmpv.a(macOS_swift.o)
      macOS_swift.View.magnify(with: __C.NSEvent) -> () in libmpv.a(macOS_swift.o)
      macOS_swift.Window.endAnimation(__C.CGRect) -> () in libmpv.a(macOS_swift.o)
      macOS_swift.Window.setToFullScreen() -> () in libmpv.a(macOS_swift.o)
      macOS_swift.Window.setToWindow() -> () in libmpv.a(macOS_swift.o)
      macOS_swift.Window.updateSize(__C.CGSize) -> () in libmpv.a(macOS_swift.o)
      macOS_swift.Window.windowDidChangeScreen(Foundation.Notification) -> () in libmpv.a(macOS_swift.o)
      ...
  "_swift_once", referenced from:
      macOS_swift.glDummy.unsafeMutableAddressor : @convention(c) () -> () in libmpv.a(macOS_swift.o)
      (extension in macOS_swift):__C.NSDeviceDescriptionKey.screenNumber.unsafeMutableAddressor : __C.NSDeviceDescriptionKey in libmpv.a(macOS_swift.o)
      (extension in macOS_swift):__C.NSScreen.displayID.getter : Swift.UInt32 in libmpv.a(macOS_swift.o)
      (extension in macOS_swift):__C.NSScreen.displayName.getter : Swift.String? in libmpv.a(macOS_swift.o)
      (extension in macOS_swift):__C.NSPasteboardType.fileURLCompat.unsafeMutableAddressor : __C.NSPasteboardType in libmpv.a(macOS_swift.o)
      (extension in macOS_swift):__C.NSPasteboardType.URLCompat.unsafeMutableAddressor : __C.NSPasteboardType in libmpv.a(macOS_swift.o)
      macOS_swift.glVersions.unsafeMutableAddressor : [__C._CGLOpenGLProfile] in libmpv.a(macOS_swift.o)
      ...
  "_swift_release", referenced from:
      macOS_swift.LogHelper.send(message: Swift.String, type: Swift.Int) -> () in libmpv.a(macOS_swift.o)
      macOS_swift.LibmpvHelper.drawRender(_: __C.CGSize, _: Swift.Int32, _: Swift.UnsafeMutablePointer<__C._CGLContextObject>, skip: Swift.Bool) -> () in libmpv.a(macOS_swift.o)
      macOS_swift.MPVHelper.command(Swift.String) -> () in libmpv.a(macOS_swift.o)
      (extension in macOS_swift):__C.NSScreen.displayName.getter : Swift.String? in libmpv.a(macOS_swift.o)
      macOS_swift.RemoteCommandCenter.start() -> () in libmpv.a(macOS_swift.o)
      macOS_swift.RemoteCommandCenter.stop() -> () in libmpv.a(macOS_swift.o)
      macOS_swift.Common.initApp() -> () in libmpv.a(macOS_swift.o)
      ...
  "_swift_release_n", referenced from:
      function signature specialization <Arg[1] = [Closure Propagated : closure #1 (Swift.UnsafeMutableRawBufferPointer) -> () in macOS_swift.LibmpvHelper.setRenderICCProfile(__C.NSColorSpace) -> (), Argument Types : [macOS_swift.LibmpvHelper]> of generic specialization <()> of Foundation.Data._Representation.withUnsafeMutableBytes<A>((Swift.UnsafeMutableRawBufferPointer) throws -> A) throws -> A in libmpv.a(macOS_swift.o)
      function signature specialization <Arg[0] = Owned To Guaranteed> of macOS_swift.GLLayer.init(cocoaCB: macOS_swift.CocoaCB) -> macOS_swift.GLLayer in libmpv.a(macOS_swift.o)
  "_swift_retain", referenced from:
      macOS_swift.LibmpvHelper.drawRender(_: __C.CGSize, _: Swift.Int32, _: Swift.UnsafeMutablePointer<__C._CGLContextObject>, skip: Swift.Bool) -> () in libmpv.a(macOS_swift.o)
      macOS_swift.LibmpvHelper.setRenderICCProfile(__C.NSColorSpace) -> () in libmpv.a(macOS_swift.o)
      macOS_swift.Common.init(Swift.OpaquePointer?) -> macOS_swift.Common in libmpv.a(macOS_swift.o)
      macOS_swift.Common.initApp() -> () in libmpv.a(macOS_swift.o)
      macOS_swift.Common.initWindowState() -> () in libmpv.a(macOS_swift.o)
      macOS_swift.Common.updateDisplaylink() -> () in libmpv.a(macOS_swift.o)
      macOS_swift.Common.removeAppNotifications() -> () in libmpv.a(macOS_swift.o)
      ...
  "_swift_retain_n", referenced from:
      function signature specialization <Arg[1] = [Closure Propagated : closure #1 (Swift.UnsafeMutableRawBufferPointer) -> () in macOS_swift.LibmpvHelper.setRenderICCProfile(__C.NSColorSpace) -> (), Argument Types : [macOS_swift.LibmpvHelper]> of generic specialization <()> of Foundation.Data._Representation.withUnsafeMutableBytes<A>((Swift.UnsafeMutableRawBufferPointer) throws -> A) throws -> A in libmpv.a(macOS_swift.o)
  "_swift_setDeallocating", referenced from:
      macOS_swift.RemoteCommandCenter.init() -> macOS_swift.RemoteCommandCenter in libmpv.a(macOS_swift.o)
      macOS_swift.TitleBar.show() -> () in libmpv.a(macOS_swift.o)
      function signature specialization <Arg[1] = Owned To Guaranteed, Arg[2] = Owned To Guaranteed> of macOS_swift.TitleBar.init(frame: __C.CGRect, window: __C.NSWindow, common: macOS_swift.Common) -> macOS_swift.TitleBar in libmpv.a(macOS_swift.o)
      partial apply forwarder for closure #2 () -> () in macOS_swift.TitleBar.hide(Swift.Double) -> () in libmpv.a(macOS_swift.o)
  "_swift_unexpectedError", referenced from:
      function signature specialization <Arg[1] = Dead> of macOS_swift.View.performDragOperation(__C.NSDraggingInfo) -> Swift.Bool in libmpv.a(macOS_swift.o)
  "_swift_unknownObjectRelease", referenced from:
      macOS_swift.RemoteCommandCenter.start() -> () in libmpv.a(macOS_swift.o)
      macOS_swift.Common.removeAppNotifications() -> () in libmpv.a(macOS_swift.o)
      macOS_swift.View.updateTrackingAreas() -> () in libmpv.a(macOS_swift.o)
      @objc macOS_swift.View.draggingEntered(__C.NSDraggingInfo) -> __C.NSDragOperation in libmpv.a(macOS_swift.o)
      @objc macOS_swift.View.performDragOperation(__C.NSDraggingInfo) -> Swift.Bool in libmpv.a(macOS_swift.o)
      macOS_swift.Window.toggleFullScreen(Any?) -> () in libmpv.a(macOS_swift.o)
      @objc macOS_swift.Window.toggleFullScreen(Any?) -> () in libmpv.a(macOS_swift.o)
      ...
  "_swift_unknownObjectRetain", referenced from:
      (extension in macOS_swift):__C.NSScreen.displayName.getter : Swift.String? in libmpv.a(macOS_swift.o)
      macOS_swift.Common.removeAppNotifications() -> () in libmpv.a(macOS_swift.o)
      @objc macOS_swift.View.draggingEntered(__C.NSDraggingInfo) -> __C.NSDragOperation in libmpv.a(macOS_swift.o)
      @objc macOS_swift.View.performDragOperation(__C.NSDraggingInfo) -> Swift.Bool in libmpv.a(macOS_swift.o)
      @objc macOS_swift.Window.toggleFullScreen(Any?) -> () in libmpv.a(macOS_swift.o)
      @objc macOS_swift.GLLayer.init(layer: Any) -> macOS_swift.GLLayer in libmpv.a(macOS_swift.o)
      generic specialization <__C.NSObject> of Swift._ArrayBuffer._getElementSlowPath(Swift.Int) -> Swift.AnyObject in libmpv.a(macOS_swift.o)
      ...
  "_swift_unknownObjectUnownedDestroy", referenced from:
      @objc macOS_swift.View.__ivar_destroyer in libmpv.a(macOS_swift.o)
      @objc macOS_swift.TitleBar.__ivar_destroyer in libmpv.a(macOS_swift.o)
      @objc macOS_swift.GLLayer.__ivar_destroyer in libmpv.a(macOS_swift.o)
      l_objectdestroy.238 in libmpv.a(macOS_swift.o)
  "_swift_unknownObjectUnownedInit", referenced from:
      macOS_swift.RemoteCommandCenter.start() -> () in libmpv.a(macOS_swift.o)
      macOS_swift.GLLayer.init(layer: Any) -> macOS_swift.GLLayer in libmpv.a(macOS_swift.o)
      function signature specialization <Arg[1] = Owned To Guaranteed, Arg[2] = Owned To Guaranteed> of macOS_swift.TitleBar.init(frame: __C.CGRect, window: __C.NSWindow, common: macOS_swift.Common) -> macOS_swift.TitleBar in libmpv.a(macOS_swift.o)
      function signature specialization <Arg[1] = Owned To Guaranteed> of macOS_swift.View.init(frame: __C.CGRect, common: macOS_swift.Common) -> macOS_swift.View in libmpv.a(macOS_swift.o)
      function signature specialization <Arg[0] = Owned To Guaranteed> of macOS_swift.GLLayer.init(cocoaCB: macOS_swift.CocoaCB) -> macOS_swift.GLLayer in libmpv.a(macOS_swift.o)
  "_swift_unknownObjectUnownedLoadStrong", referenced from:
      macOS_swift.View.mouseMoved(with: __C.NSEvent) -> () in libmpv.a(macOS_swift.o)
      macOS_swift.View.mouseUp(with: __C.NSEvent) -> () in libmpv.a(macOS_swift.o)
      merged macOS_swift.View.mouseDragged(with: __C.NSEvent) -> () in libmpv.a(macOS_swift.o)
      macOS_swift.View.otherMouseUp(with: __C.NSEvent) -> () in libmpv.a(macOS_swift.o)
      macOS_swift.View.magnify(with: __C.NSEvent) -> () in libmpv.a(macOS_swift.o)
      macOS_swift.View.signalMouseMovement(__C.NSEvent) -> () in libmpv.a(macOS_swift.o)
      macOS_swift.View.preciseScroll(__C.NSEvent) -> () in libmpv.a(macOS_swift.o)
      ...
  "_swift_unknownObjectWeakAssign", referenced from:
      function signature specialization <Arg[1] = Owned To Guaranteed, Arg[2] = Owned To Guaranteed, Arg[3] = Owned To Guaranteed> of macOS_swift.Window.__allocating_init(contentRect: __C.CGRect, screen: __C.NSScreen?, view: __C.NSView, common: macOS_swift.Common) -> macOS_swift.Window in libmpv.a(macOS_swift.o)
  "_swift_unknownObjectWeakDestroy", referenced from:
      @objc macOS_swift.Window.__ivar_destroyer in libmpv.a(macOS_swift.o)
      l_objectdestroy.216 in libmpv.a(macOS_swift.o)
  "_swift_unknownObjectWeakInit", referenced from:
      macOS_swift.Common.addAppNotifications() -> () in libmpv.a(macOS_swift.o)
      macOS_swift.Window.init(contentRect: __C.CGRect, styleMask: __C.NSWindowStyleMask, backing: __C.NSBackingStoreType, defer: Swift.Bool) -> macOS_swift.Window in libmpv.a(macOS_swift.o)
  "_swift_unknownObjectWeakLoadStrong", referenced from:
      macOS_swift.Common.initWindow(Swift.UnsafeMutablePointer<__C.vo>, __C.NSRunningApplication?) -> () in libmpv.a(macOS_swift.o)
      macOS_swift.View.signalMouseMovement(__C.NSEvent) -> () in libmpv.a(macOS_swift.o)
      macOS_swift.Window.toggleFullScreen(Any?) -> () in libmpv.a(macOS_swift.o)
      macOS_swift.Window.window(_: __C.NSWindow, startCustomAnimationToEnterFullScreenWithDuration: Swift.Double) -> () in libmpv.a(macOS_swift.o)
      macOS_swift.Window.window(_: __C.NSWindow, startCustomAnimationToExitFullScreenWithDuration: Swift.Double) -> () in libmpv.a(macOS_swift.o)
      macOS_swift.Window.windowDidEnterFullScreen(Foundation.Notification) -> () in libmpv.a(macOS_swift.o)
      macOS_swift.Window.windowDidExitFullScreen(Foundation.Notification) -> () in libmpv.a(macOS_swift.o)
      ...
  "_swift_willThrow", referenced from:
      function signature specialization <Arg[1] = Dead> of macOS_swift.View.performDragOperation(__C.NSDraggingInfo) -> Swift.Bool in libmpv.a(macOS_swift.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

FPS problem in qt-opengl example

In the example codes, the QOpenGLWidget updates at the same frequency as video's FPS.
When I use a QTImer to update it at fixed 60 FPS, the QOpenGLWidget also updates at the same frequency as the video's FPS. But after I paused the video, it works at 60 FPS.
I'm really puzzled by this phenomenon. How can I update the QOpenGLWidget at a fixed 60FPS?

C# example doesn't work on VS2015/Win10 with 64bit DLL

Solved (derpy me forgot the other deps)


Tried compiling the example, compiles fine, however the "video never plays"

Any idea? (tried a precompiled mpv-1.dll and my own build)

No errors either, at least none that I can see. the DLL however loads fine.
Gets up to:
DoMpvCommand("loadfile", textBoxVideoSampleFileName.Text);
and does NOT crash, it just.. seems to do nothing.
Anything I'm doing wrong?

(Also tried it with WPF and a WindowsFormsHost, not that that would make a difference)

Video playing is flickering on android 9-10

I knew mpv was most open-source cross-platform player engine.
But I didn't know it has critical error. I can't understand other developer couldn't found this.
I have built android project by using https://github.com/mpv-player/mpv-examples/tree/master/libmpv/qml.(last committed)
I have used libmpv and other libraries of https://github.com/mpv-android/mpv-android.(last committed)
On Windows and most phones, it was ok.(android 8 lower)
But on some phones(i.e. Samsung Galaxy A30, Honor 9 Lite, vivo s1, Realme 3 rmx 1825, ... . android 9 higher), videos are flickering.
Please look at this link video.
I have uploaded captured videos.
https://drive.google.com/file/d/1EaVYDEt1_nzC-UjzG1NxWeZPC7CMypzi/view?usp=sharing
https://drive.google.com/file/d/1R5OYsI3rvXPhp0Ppj32Y2K16VCvbe0Ht/view?usp=sharing
I was humiliated from my clients.

[Enhancement] Provide CSharp example for Opengl

Using libmpv with window integration in wpf is a pain due to Airspace issues.
Mouse cliks and events can be redirected with some work but the mpv ontop of everything else in the wpf app is impossible to avoid.

So I would like to follow the opengl path but I do not have a clue of how to start.

It would be really nice if some dev could give us a list of the steps to follow (or even a full example!!)

Many thanks

Vala

Hello, it would be great to have an example using Vala. I'm wanting to embed MPV into my own program using Vala.

Convert Cocoa example from opengl-cb to render API

Verified with latest mpv head sources.

clang -o cocoa-openglcb cocoa-openglcb.m -I/Users/doug/WorkSpace/mpv.git/install/include -L/Users/doug/WorkSpace/mpv.git/install/lib -lmpv -framework Cocoa -framework OpenGL

qt OpenGLWidget play hdr(10bits) video

Hi
how to play hdr videos?I mean real hdr videos,not downscale hdr to sdr
just create a 16bits texture attach to fbo?
//-----------------..............
glBindTexture(GL_TEXTURE_2D, colorBuffer);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA16F, SCR_WIDTH, SCR_HEIGHT, 0, GL_RGBA, GL_FLOAT, NULL);
//...................................
and use this fbo as param to mpv?

mpv_opengl_fbo mpfbo{static_cast(fbo_16bit_color), width(), height(), 0};
int flip_y{1};
mpv_render_param params[] = {
{MPV_RENDER_PARAM_OPENGL_FBO, &mpfbo},
{MPV_RENDER_PARAM_FLIP_Y, &flip_y},
{MPV_RENDER_PARAM_INVALID, nullptr}
};
mpv_render_context_render(mpv_gl, params);

Sorry to bother, some help needed

Hi there. I'm looking at mpv-examples/libmpv/csharp for a way to implement the player using winforms. The code executes but it doesn't seem to play any media file. If I add up the last version of mpv-1.dll inside the build location I get a blue screen inside the picturebox when opening a media file, although it still doesn't play anything.

I know I'm doing something wrong since I'm fairly unexperienced at this. Any advice to make it work?

Qt example does not work with the current release

Description of the issue
When we compile the example (qt) and run it with the current release of mpv/libmpv (0.38.0), the video is not rendered on the designated surface. Instead, a full instance of mpv is spawned, and the video is played in the mpv instance.

Steps to reproduce

  1. Compile and run the example given here.
  2. Open a video file.
  3. A full MPV instance is spawned

Expected behaviour
The video is displayed inside the qt application on the designated QWidget.

Video demo of the problem

libmpv-qtexample-bug.mp4

Qt Version
6.7.0

*MPV Version
mpv v0.38.0 Copyright ยฉ 2000-2024 mpv/MPlayer/mplayer2 projects
built on Apr 18 2024 14:22:21
libplacebo version: v6.338.2
FFmpeg version: n6.1.1
FFmpeg library versions:
libavutil 58.29.100
libavcodec 60.31.102
libavformat 60.16.100
libswscale 7.5.100
libavfilter 9.12.100
libswresample 4.12.100

angle example?

I can't find any resources online, can someone provide a code to make it work on angle?

Example of using libmpv in UWP

Hello,
I am trying to write a UWP wrapper , but I cannot find any example/guide. Can you add an example of using libmpv in UWP (Universal Windows Platform). Thank you.

mpv-examples - qt_opengl, libmpv windows crashed

I'm trying to recompile my old project with the old mpvlib, but now it crashed. Trying to solve the problem and only open the example.
An example where the version without opengl works.

https://github.com/mpv-player/mpv-examples/tree/master/libmpv/qt_opengl
Build: mpv-dev-x86_64-v3-20240218-git-bd5b80b
Windows 11. Qt 5.15.2. VS 2019.

devtools=C:/dev/develop-tools/
MPVDIR=$${devtools}/mpv/mpv-dev-x86_64-v3-20240218-git-bd5b80b

LIBS += -L$${MPVDIR} -llibmpv

QT_CONFIG -= no-pkg-config
CONFIG += link_pkgconfig debug
# PKGCONFIG += mpv

INCLUDEPATH += $${MPVDIR}/include
DEPENDPATH += $${MPVDIR}/include

Trying to open any video in mp4 format:

[cplayer] mpv v0.37.0-337-gbd5b80ba Copyright ยฉ 2000-2024 mpv/MPlayer/mplayer2 projects
[cplayer]  built on Feb 18 2024 00:09:08
[cplayer] libplacebo version: v6.338.0-77-g3ba18d5-dirty
[cplayer] FFmpeg version: N-113670-g0895ef0d6
[cplayer] FFmpeg library versions:
[cplayer]    libavutil       58.39.100
[cplayer]    libavcodec      60.39.101
[cplayer]    libavformat     60.21.100
[cplayer]    libswscale      7.6.100
[cplayer]    libavfilter     9.17.100
[cplayer]    libswresample   4.13.100
[cplayer]
[cplayer] Configuration: -Ddebug=true -Db_ndebug=true -Doptimization=3 -Db_lto=true -Db_lto_mode=thin -Dlibmpv=true -Dpdf-build=enabled -Dlua=enabled -Djavascript=enabled -Dsdl2=enabled -Dlibarchive=enabled -Dlibbluray=enabled -Ddvdnav=enabled -Duchardet=enabled -Drubberband=enabled -Dlcms2=enabled -Dopenal=enabled -Dspirv-cross=enabled -Dvulkan=enabled -Dvapoursynth=enabled -Degl-angle=enabled -Dprefix=/__w/mpv-winbuild-cmake/mpv-winbuild-cmake/build_x86_64_v3/x86_64_v3-w64-mingw32 -Dlibdir=/__w/mpv-winbuild-cmake/mpv-winbuild-cmake/build_x86_64_v3/x86_64_v3-w64-mingw32/lib -Ddefault_library=shared -Dprefer_static=True --cross-file=/__w/mpv-winbuild-cmake/mpv-winbuild-cmake/build_x86_64_v3/meson_cross.txt
[cplayer] List of enabled features: av-channel-layout avif-muxer build-date cplugins cuda-hwaccel cuda-interop d3d-hwaccel d3d11 d3d9-hwaccel debug direct3d dos-paths dvdnav egl-angle egl-angle-win32 egl-helpers ffmpeg ffnvcodec gl gl-dxinterop gl-dxinterop-d3d9 gl-win32 glob glob-win32 gpl iconv javascript jpeg jpegxl lavu-uuid lcms2 libarchive libass libavdevice libbluray libm libplacebo luajit manpage-build noexecstack openal pdf-build rubberband rubberband-3 sdl2 sdl2-audio sdl2-gamepad sdl2-video shaderc spirv-cross threads uchardet vaapi vaapi-win32 vapoursynth vector vulkan vulkan-interop wasapi win32 win32-desktop win32-executable win32-threads zimg zimg-st428 zlib
[cplayer] Built with NDEBUG.
[cplayer] Waiting for scripts...
[cplayer] Done loading scripts.
[libmpv_render] GL_VERSION='4.6.0 - Build 31.0.101.2111'
[libmpv_render] Detected desktop OpenGL 4.6.
[libmpv_render] GL_VENDOR='Intel'
[libmpv_render] GL_RENDERER='Intel(R) HD Graphics 620'
[libmpv_render] GL_SHADING_LANGUAGE_VERSION='4.60 - Build 31.0.101.2111'
[libmpv_render] Loaded extension WGL_EXT_swap_control.
[libmpv_render] Loaded extension GL_KHR_debug.
[libmpv_render] GL_*_swap_control extension missing.
[libmpv_render] Testing FBO format rgba16f
[libmpv_render] Using FBO format rgba16f.
[libmpv_render] Loading hwdec driver 'vaapi'
[libmpv_render/vaapi] VAAPI hwdec only works with OpenGL or Vulkan backends.
[libmpv_render] Loading failed.
[libmpv_render] Loading hwdec driver 'd3d11-egl'
[libmpv_render] Loading failed.
[libmpv_render] Loading hwdec driver 'dxva2-egl'
[libmpv_render] Loading failed.
[libmpv_render] Loading hwdec driver 'd3d11va'
[libmpv_render] Loading failed.
[libmpv_render] Loading hwdec driver 'dxva2-dxgi'
[libmpv_render] Loading failed.
[libmpv_render] Loading hwdec driver 'dxva2-dxinterop'
[libmpv_render] Loading failed.
[libmpv_render] Loading hwdec driver 'cuda'
[libmpv_render/cuda] cu->cuGLGetDevices(&device_count, &display_dev, 1, CU_GL_DEVICE_LIST_ALL) failed -> CUDA_ERROR_OPERATING_SYSTEM: OS call failed or operation not supported on this OS
[libmpv_render/cuda] CUDA hwdec only works with OpenGL or Vulkan backends.
[libmpv_render] Loading failed.
[libmpv_render] Loading hwdec driver 'vulkan'
[libmpv_render/vulkan] This is not a libplacebo vulkan gpu api context.
[cplayer] Running hook: auto_profiles/on_before_start_file
[cplayer] Running hook: ytdl_hook/on_load
[ytdl_hook] ytdl:// hook
[ytdl_hook] not a ytdl:// url
[cplayer] Running hook: ytdl_hook/on_load
[ytdl_hook] playlist hook
[cplayer] Running hook: auto_profiles/on_load
[ifo_dvdnav] Opening FastAPI. Project Pixels.mp4
[bdmv/bluray] Opening FastAPI. Project Pixels.mp4
[file] Opening FastAPI. Project Pixels.mp4
[demux] Trying demuxers for level=normal.
[lavf] Found 'mov,mp4,m4a,3gp,3g2,mj2' at score=100 size=2048.
[file] stream level seek from 131072 to 118008369
[demux] Detected file format: mov,mp4,m4a,3gp,3g2,mj2 (libavformat)
[cplayer] Opening done: FastAPI. Project Pixels.mp4
[find_files] Loading external files in 
[cplayer] Running hook: ytdl_hook/on_preloaded
[cplayer] Running hook: auto_profiles/on_preloaded
[lavf] select track 0
[lavf] select track 1
 (+) Video --vid=1 (*) (h264 1920x1080 30.000fps)
 (+) Audio --aid=1 (*) (aac 2ch 44100Hz)
File tags:
 Comment:
[vd] Container reported FPS: 30.000000
[vd] Codec list:
[vd]     h264 - H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
[vd]     h264_qsv (h264) - H264 video (Intel Quick Sync Video acceleration)
[vd]     h264_cuvid (h264) - Nvidia CUVID H264 decoder
[vd] Opening decoder h264
[vd] Looking at hwdec h264-d3d11va...
[vd] Could not create device.
[vd] Looking at hwdec h264-dxva2...
[vd] Could not create device.
[vd] Looking at hwdec h264-nvdec...
[vd] Could not create device.
[vd] Looking at hwdec h264-vaapi...
[vd] Could not create device.
[vd] Looking at hwdec h264-d3d11va-copy...
[vd] Trying hardware decoding via h264-d3d11va-copy.
[vd] Selected codec: H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
[vf] User filter list:
[vf]   (empty)
[ad] Codec list:
[ad]     aac - AAC (Advanced Audio Coding)
[ad]     aac_fixed (aac) - AAC (Advanced Audio Coding)
[ad] Opening decoder aac
[ad] Requesting 1 threads for decoding.
[ad] Selected codec: AAC (Advanced Audio Coding)
[af] User filter list:
[af]   (empty)
[cplayer] Starting playback...
[file] stream level seek from 118249154 to 48
[vd] Pixel formats supported by decoder: vulkan cuda dxva2_vld d3d11va_vld d3d11 d3d12 vaapi yuv420p
[vd] Codec profile: Constrained Baseline (0x242)
[vd] Requesting pixfmt 'd3d11' from decoder.
[ffmpeg/video] h264: Failed to get the decoder GUIDs
[ffmpeg/video] h264: Failed setup for format d3d11: hwaccel initialisation returned error.
[vd] Pixel formats supported by decoder: vulkan cuda dxva2_vld d3d11va_vld d3d12 vaapi yuv420p yuv420p
[vd] Codec profile: Constrained Baseline (0x242)
[vd] Requesting pixfmt 'yuv420p' from decoder.
[vd] Attempting next decoding method after failure of h264-d3d11va-copy.
[vd] Looking at hwdec h264-dxva2-copy...
[vd] Trying hardware decoding via h264-dxva2-copy.
[vd] Pixel formats supported by decoder: vulkan cuda dxva2_vld d3d11va_vld d3d11 d3d12 vaapi yuv420p
[vd] Codec profile: Constrained Baseline (0x242)
[vd] Requesting pixfmt 'dxva2_vld' from decoder.
[ffmpeg/video] h264: Failed to retrieve decoder device GUIDs
[ffmpeg/video] h264: Failed setup for format dxva2_vld: hwaccel initialisation returned error.
[vd] Pixel formats supported by decoder: vulkan cuda d3d11va_vld d3d11 d3d12 vaapi yuv420p yuv420p
[vd] Codec profile: Constrained Baseline (0x242)
[vd] Requesting pixfmt 'yuv420p' from decoder.
[vd] Attempting next decoding method after failure of h264-dxva2-copy.
[vd] Looking at hwdec h264-nvdec-copy...
[vd] Trying hardware decoding via h264-nvdec-copy.
[vd] Pixel formats supported by decoder: vulkan cuda dxva2_vld d3d11va_vld d3d11 d3d12 vaapi yuv420p
[vd] Codec profile: Constrained Baseline (0x242)
[vd] Requesting pixfmt 'cuda' from decoder.
[ffmpeg/video] h264: Cannot load cuvidGetDecodeStatus
[ffmpeg/video] h264: Failed loading nvcuvid.
[ffmpeg/video] h264: Failed setup for format cuda: hwaccel initialisation returned error.
[vd] Pixel formats supported by decoder: vulkan dxva2_vld d3d11va_vld d3d11 d3d12 vaapi yuv420p yuv420p
[vd] Codec profile: Constrained Baseline (0x242)
[vd] Requesting pixfmt 'yuv420p' from decoder.
[vd] Attempting next decoding method after failure of h264-nvdec-copy.
[vd] Looking at hwdec h264-vaapi-copy...
[vaapi] libva: VA-API version 1.21.0
[vaapi] libva: Trying to open /__w/mpv-winbuild-cmake/mpv-winbuild-cmake/build_x86_64_v3/x86_64_v3-w64-mingw32/bin\vaon12_drv_video.dll
[vaapi] libva: va_openDriver() returns -1
[vd] Could not create device.
[vd] Looking at hwdec h264-d3d12va...
[vd] Could not create device.
[vd] Looking at hwdec h264-vulkan...
[vd] Could not create device.
[vd] Looking at hwdec h264_qsv-qsv...
[vd] Could not create device.
[vd] Looking at hwdec h264_cuvid-cuda...
[vd] Could not create device.
[vd] Looking at hwdec h264-d3d12va-copy...
[ffmpeg] av_log callback called with bad parameters (NULL AVClass).
[ffmpeg] This is a bug in one of FFmpeg libraries used.
[ffmpeg] Using device 10de:134f (NVIDIA GeForce 920MX).
[ffmpeg] av_log callback called with bad parameters (NULL AVClass).
[ffmpeg] This is a bug in one of FFmpeg libraries used.
[ffmpeg] Failed to create Direct 3D 12 device (887a0004)
[vd] Could not create device.
[vd] Looking at hwdec h264-vulkan-copy...
qtc.process_stub: Inferior error:  QProcess::Crashed "Process crashed"
Terminal process exited with code -1073741819

Playing videos are strange on samsung phones

I have built QT project using your example on android.

I used this recent libraries built by using the following github,
https://github.com/mpv-android/mpv-android
But on all new Samsung phones(Android 9-10) and few phones playing video is strange.
most Other phones are ok.
Please look at this link video.
https://drive.google.com/file/d/1R5OYsI3rvXPhp0Ppj32Y2K16VCvbe0Ht/view?usp=sharing
are there anyone to help?

I used this options
mpvSetProperty("hwdec", "auto-safe");
mpvSetProperty("interpolation", "yes");
mpvSetProperty("video-sync", "audio");
mpvSetProperty("vo", "libmpv");

I used Qt.5.14.2. libmpv for android is recent on above github.
This is very urgent. please help me.
Best Regards.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.