minitube icon indicating copy to clipboard operation
minitube copied to clipboard

Building fails with newer versions of mpv: api change in mpv >= 0.34

Open Kieltux opened this issue 3 years ago • 4 comments

Hello Flavio, I am the maintainer of your great and useful application minitube in openSUSE. openSUSE Factory and Tumbleweed switched to libmpv2-0.34.1+git.20220117T134844.22b and now building fails.

https://build.opensuse.org/package/live_build_log/openSUSE:Factory/minitube/standard/x86_64

[   97s] lib/media/src/mpv/mpvwidget.cpp: In member function 'virtual void MpvWidget::initializeGL()':
[   97s] lib/media/src/mpv/mpvwidget.cpp:33:74: error: too many initializers for 'mpv_opengl_init_params'
[   97s]    33 |     mpv_opengl_init_params gl_init_params{get_proc_address, this, nullptr};
[   97s]       |                                                                          ^
[   97s] make: *** [Makefile:2550: build/obj/lib/media/src/mpv/mpvwidget.o] Error 1

There seems to be an api change in mpv >= 0.34, because I also found this issue in another project based on mpv: https://github.com/mpc-qt/mpc-qt/issues/17

I could fix building minitube with this patch (based on https://github.com/mpc-qt/mpc-qt/commit/a880cb84511d18af26dcd136fac62932e775f475)

diff -Nur minitube-3.9.2/lib/media/src/mpv/mpvwidget.cpp new/lib/media/src/mpv/mpvwidget.cpp
--- minitube-3.9.2/lib/media/src/mpv/mpvwidget.cpp	2021-11-11 13:11:41.000000000 +0100
+++ new/lib/media/src/mpv/mpvwidget.cpp	2022-01-21 18:07:34.170765429 +0100
@@ -30,7 +30,11 @@
     qDebug() << "initializeGL" << nativeParent;
     if (nativeParent == nullptr) qFatal("No native parent");
 
-    mpv_opengl_init_params gl_init_params{get_proc_address, this, nullptr};
+    #if MPV_CLIENT_API_VERSION < MPV_MAKE_VERSION(2,0)
+	mpv_opengl_init_params gl_init_params{get_proc_address, this, nullptr};
+    #else
+	mpv_opengl_init_params gl_init_params{get_proc_address, this};
+    #endif
     mpv_render_param params[]{{MPV_RENDER_PARAM_API_TYPE, (void *)MPV_RENDER_API_TYPE_OPENGL},
                               {MPV_RENDER_PARAM_OPENGL_INIT_PARAMS, &gl_init_params},
                               {MPV_RENDER_PARAM_INVALID, nullptr},

As I am not an experienced git user, I attached the patch.

Best wishes. minitube-fix-mpv-api-change.zip

Kieltux avatar Jan 21 '22 17:01 Kieltux

Hi, thank you this is very helpful. I'll test and integrate the patch the next time I update Minitube.

Flavio

On Fri, Jan 21, 2022 at 6:39 PM Kieltux @.***> wrote:

Hello Flavio, I am the maintainer of your great and useful application minitube in openSUSE. openSUSE Factory and Tumbleweed switched to libmpv2-0.34.1+git.20220117T134844.22b and now building fails.

https://build.opensuse.org/package/live_build_log/openSUSE:Factory/minitube/standard/x86_64

[ 97s] lib/media/src/mpv/mpvwidget.cpp: In member function 'virtual void MpvWidget::initializeGL()': [ 97s] lib/media/src/mpv/mpvwidget.cpp:33:74: error: too many initializers for 'mpv_opengl_init_params' [ 97s] 33 | mpv_opengl_init_params gl_init_params{get_proc_address, this, nullptr}; [ 97s] | ^ [ 97s] make: *** [Makefile:2550: build/obj/lib/media/src/mpv/mpvwidget.o] Error 1

There seems to be an api change in mpv >= 0.34, because I also found this issue in another project based on mpv: mpc-qt/mpc-qt#17 https://github.com/mpc-qt/mpc-qt/issues/17

I could fix building minitube with this patch (based on mpc-qt/mpc-qt@ a880cb8 https://github.com/mpc-qt/mpc-qt/commit/a880cb84511d18af26dcd136fac62932e775f475 )

diff -Nur minitube-3.9.2/lib/media/src/mpv/mpvwidget.cpp new/lib/media/src/mpv/mpvwidget.cpp --- minitube-3.9.2/lib/media/src/mpv/mpvwidget.cpp 2021-11-11 13:11:41.000000000 +0100 +++ new/lib/media/src/mpv/mpvwidget.cpp 2022-01-21 18:07:34.170765429 +0100 @@ -30,7 +30,11 @@ qDebug() << "initializeGL" << nativeParent; if (nativeParent == nullptr) qFatal("No native parent");

  • mpv_opengl_init_params gl_init_params{get_proc_address, this, nullptr};
  • #if MPV_CLIENT_API_VERSION < MPV_MAKE_VERSION(2,0)
  • mpv_opengl_init_params gl_init_params{get_proc_address, this, nullptr};
  • #else
  • mpv_opengl_init_params gl_init_params{get_proc_address, this};
  • #endif mpv_render_param params[]{{MPV_RENDER_PARAM_API_TYPE, (void *)MPV_RENDER_API_TYPE_OPENGL}, {MPV_RENDER_PARAM_OPENGL_INIT_PARAMS, &gl_init_params}, {MPV_RENDER_PARAM_INVALID, nullptr},

As I am not an experienced git user, I attached the patch.

Best wishes. minitube-fix-mpv-api-change.zip https://github.com/flaviotordini/minitube/files/7915605/minitube-fix-mpv-api-change.zip

— Reply to this email directly, view it on GitHub https://github.com/flaviotordini/minitube/issues/217, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA2AV35GAEKXK5QNBOS5W4DUXGK53ANCNFSM5MQDGD2A . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you are subscribed to this thread.Message ID: @.***>

flaviotordini avatar Jan 22 '22 16:01 flaviotordini

@flaviotordini mpv 0.35 has now been released and the build fails. Can you please integrate this and create a new release? That would be very helpful for downstream packagers! :)

dvzrv avatar Nov 13 '22 13:11 dvzrv

https://github.com/freebsd/freebsd-ports/commit/ac9b20c88deb90ca6604c7a07f4e36f826bffd6c

VVD avatar Nov 14 '22 08:11 VVD

Already fixed.

Vistaus avatar Nov 25 '23 16:11 Vistaus