Code Monkey home page Code Monkey logo

Comments (41)

SonaliBendre avatar SonaliBendre commented on June 14, 2024 3

Or just use Windows.

from mpc-qt.

cmdrkotori avatar cmdrkotori commented on June 14, 2024 3

Thanks to everyone who has supported this issue thus far.
After much thinking I have decided to use an AppImage for this purpose instead.

from mpc-qt.

g-fb avatar g-fb commented on June 14, 2024 2

Here's flatpak manifest (edited from the one for my own player). The app runs, but playback fails.
You build and run it with flatpak-builder build com.github.mpc-qt.yml mpc-qt --force-clean --ccache && flatpak-builder --run build com.github.mpc-qt.yml mpc-qt

Log:

[0.555290817] [glwidget] assigning x11 display
[0.636945489] [mpvobject] paused-for-cache property changed, but was not in dispatch list.
[2.647292110] [file] error: Cannot open file '/run/user/1000/doc/817faea5/file.mkv': No such file or directory
[2.647300530] [stream] error: Failed to open /run/user/1000/doc/817faea5/file.mkv.
[2.668615370] [qt] warn: QFSFileEngine::open: No file name specified

com.github.mpc-qt.yml:

---
app-id: com.github.mpc-qt
runtime: org.kde.Platform
runtime-version: '5.15-21.08'
sdk: org.kde.Sdk
command: mpc-qt
rename-icon: mpc-qt
rename-desktop-file: mpc-qt.desktop
copy-icon: true
finish-args:
  - '--share=ipc'
  - '--share=network'
  - '--socket=fallback-x11'
  - '--socket=wayland'
  - '--socket=pulseaudio'
  - '--device=dri'
  - '--filesystem=host'
  - '--talk-name=org.freedesktop.ScreenSaver'
  - '--env=LC_NUMERIC=C'
modules:
  - name: mpc-qt
    buildsystem: qmake
    sources:
      - type: archive
        url: 'https://github.com/mpc-qt/mpc-qt/archive/refs/tags/v22.02.tar.gz'
        sha256: 'fa6cffd6bde1304b6c0ec3aba8e98d03f4d73999fee4e4546026ec159530350d'
        # comment the above type, url and sha256 lines and uncomment this to build local code
        #type: dir
        #path: '/path/to/mpc-qt'
        
    modules:
      - name: libmpv
        cleanup:
          - /include
          - /lib/pkgconfig
          - /share/man
        buildsystem: simple
        build-commands:
          - python3 waf configure --prefix=/app --enable-libmpv-shared --disable-cplayer --disable-build-date --disable-alsa
          - python3 waf build
          - python3 waf install
        sources:
          - type: archive
            url: 'https://github.com/mpv-player/mpv/archive/refs/tags/v0.34.1.tar.gz'
            sha256: '32ded8c13b6398310fa27767378193dc1db6d78b006b70dbcbd3123a1445e746'
          - type: file
            url: 'https://waf.io/waf-2.0.23'
            sha256: '28a2e4583314a162cfcbffefb8a9202c1d7869040d30b5852da479b76d9c0491'
            dest-filename: waf
        modules:
          - name: luajit
            no-autogen: true
            cleanup:
              - /bin
              - /lib/*.a
              - /include
              - /lib/pkgconfig
              - /share/man
            sources:
              - type: archive
                url: 'https://luajit.org/download/LuaJIT-2.1.0-beta3.tar.gz'
                sha256: '1ad2e34b111c802f9d0cdf019e986909123237a28c746b21295b63c9e785d9c3'
              - type: shell
                commands:
                  - sed -i 's|/usr/local|/app|' ./Makefile

          - name: libv4l2
            cleanup:
              - /sbin
              - /bin
              - /include
              - /lib/*.la
              - /lib/*/*.la
              - /lib*/*/*/*.la
              - /lib/pkgconfig
              - /share/man
            config-opts:
              - '--disable-static'
              - '--disable-bpf'
              - '--with-udevdir=/app/lib/udev'
            sources:
              - type: archive
                url: 'https://linuxtv.org/downloads/v4l-utils/v4l-utils-1.22.1.tar.bz2'
                sha256: '65c6fbe830a44ca105c443b027182c1b2c9053a91d1e72ad849dfab388b94e31'

          - name: nv-codec-headers
            cleanup:
              - '*'
            no-autogen: true
            make-install-args:
              - PREFIX=/app
            sources:
              - type: archive
                url: 'https://github.com/FFmpeg/nv-codec-headers/releases/download/n11.1.5.1/nv-codec-headers-11.1.5.1.tar.gz'
                sha256: 'a28cdde3ac0e9e02c2dde7a1b4de5333b4ac6148a8332ca712da243a3361a0d9'

          - name: ffmpeg
            cleanup:
              - /include
              - /lib/pkgconfig
              - /share/ffmpeg/examples
            config-opts:
              - '--enable-shared'
              - '--disable-static'
              - '--enable-gnutls'
              - '--enable-gpl'
              - '--disable-doc'
              - '--disable-programs'
              - '--disable-encoders'
              - '--disable-muxers'
              - '--enable-encoder=png,libwebp'
              - '--enable-libv4l2'
              - '--enable-libdav1d'
              - '--enable-libfontconfig'
              - '--enable-libfreetype'
              - '--enable-libopus'
              - '--enable-librsvg'
              - '--enable-libvpx'
              - '--enable-libmp3lame'
              - '--enable-libwebp'
            sources:
              - type: archive
                url: 'https://ffmpeg.org/releases/ffmpeg-4.4.1.tar.gz'
                sha256: '82c98f74777f623710b72f9a3389fd38c1ed93bc661107e65df19234e395f6b9'

          - name: libass
            cleanup:
              - /include
              - /lib/*.la
              - /lib/pkgconfig
            config-opts:
              - '--disable-static'
            sources:
              - type: archive
                url: 'https://github.com/libass/libass/releases/download/0.15.2/libass-0.15.2.tar.gz'
                sha256: '1b2a54dda819ef84fa2dee3069cf99748a886363d2adb630fde87fe046e2d1d5'

          - name: uchardet
            buildsystem: cmake-ninja
            config-opts:
              - '-DCMAKE_BUILD_TYPE=Release'
              - '-DBUILD_STATIC=0'
            cleanup:
              - /bin
              - /include
              - /lib/pkgconfig
              - /share/man
            sources:
              - type: archive
                url: 'https://gitlab.freedesktop.org/uchardet/uchardet/-/archive/v0.0.7/uchardet-v0.0.7.tar.gz'
                sha256: 'f3635d1d10e1470452bc42c1bf509451a9926b399a11740a9949e86069d69f58'

      - name: yt-dlp
        no-autogen: true
        no-make-install: true
        make-args:
          - yt-dlp
          - PYTHON=/usr/bin/python3
        post-install:
          - install yt-dlp /app/bin
        sources:
          - type: archive
            url: 'https://github.com/yt-dlp/yt-dlp/archive/refs/tags/2021.12.27.tar.gz'
            sha256: '7b659b2e71362a5a5c524368efa2009f98f5c92e4ec924fe0ebe3d2a08fb4643'

from mpc-qt.

g-fb avatar g-fb commented on June 14, 2024 2

Works once it's installed.

flatpak-builder --user --install --force-clean build com.github.mpc-qt.yml
flatpak run  com.github.mpc-qt

from mpc-qt.

ahjolinna avatar ahjolinna commented on June 14, 2024 2

Thanks to everyone who has supported this issue thus far. After much thinking I have decided to use an AppImage for this purpose instead.

well thats little bit disappointing to hear (but I understand) ....personally not really fond of AppImage ..especially after when of their main devs had some "interesting views of wayland"

Honestly? It's too much maintenance burden for me, as evidenced by my adventure in the PR and my botching the last two releases in some way that made it incompatible with flatpak (to begin with no appdata in one release, incorrect appdata in the next release, etc). I had enough of it not working around a month ago when I stripped flatpak-isms from the repo.

Call it one too many balls to juggle. I'm not a package manager.

there could be a "unofficial" flatpak version for flathub, so its split from your/this repo ...so you dont need to worry about this... I can help with maintaining the pkgs

also, you can make it "official" later if you want to, and it still have it split

Anyways....Happy New Year

from mpc-qt.

cmdrkotori avatar cmdrkotori commented on June 14, 2024 1

Works once it's installed.

flatpak-builder --user --install --force-clean build com.github.mpc-qt.yml
flatpak run  com.github.mpc-qt

Awesome, I'll look into submitting an application.

from mpc-qt.

cmdrkotori avatar cmdrkotori commented on June 14, 2024 1

flathub/flathub#2888

from mpc-qt.

cmdrkotori avatar cmdrkotori commented on June 14, 2024 1

Honestly? It's too much maintenance burden for me, as evidenced by my adventure in the PR and my botching the last two releases in some way that made it incompatible with flatpak (to begin with no appdata in one release, incorrect appdata in the next release, etc). I had enough of it not working around a month ago when I stripped flatpak-isms from the repo.

Call it one too many balls to juggle. I'm not a package manager.

from mpc-qt.

ahjolinna avatar ahjolinna commented on June 14, 2024

also isn't OSTree (Fedora's Silverblue/Kinoite, SteamOS v3 and SUSEs MicroOS) becoming more relevant which means flatpak would be needed more for these 3rd-party apps

from mpc-qt.

ahjolinna avatar ahjolinna commented on June 14, 2024

@SuNNjek I was wondering what is flathub/flatpaks policy on some codecs or/and supporting stuff like CUDA, are there some restrictions? (because patents or proprietary)

(I assume mpc-qt need to have its own mpv & maybe ffmpeg)

from mpc-qt.

SuNNjek avatar SuNNjek commented on June 14, 2024

Looking at mpv's manifest, they include nv-codec-headers, so I'm assuming that's alright to include

from mpc-qt.

cmdrkotori avatar cmdrkotori commented on June 14, 2024

I can confirm on my system with a flatpak build, that opening a file copies it to /run/user/1000/doc/9465a534/$file, but mpc-qt (flatpak) is unable to open it. The URL mpc-qt is given can be obtained by right-clicking the file in the playlist and selecting copy to clipboard. I'm a bit miffed, because mpc-qt (system) can open the same url fine. So it might be a sandbox/permissions problem.

from mpc-qt.

ahjolinna avatar ahjolinna commented on June 14, 2024

KDE has their own media player using (lib)MPV called Haruna (really basic) and has official flatpak version, I didn't look into yet but here link: https://github.com/flathub/org.kde.haruna/blob/master/org.kde.haruna.yml

from mpc-qt.

cmdrkotori avatar cmdrkotori commented on June 14, 2024

We've got a website now; I'll get to this tomorrow all things going well.

from mpc-qt.

cmdrkotori avatar cmdrkotori commented on June 14, 2024

Our last release is missing bundled appdata, so it looks it'll have to wait until the next release.

from mpc-qt.

ahjolinna avatar ahjolinna commented on June 14, 2024

any progress on this? I would love to test mpc-qt on my SteamDeck (as it requires flatpak)

from mpc-qt.

cmdrkotori avatar cmdrkotori commented on June 14, 2024

I was going to wait until the next release for this, as the flatpak requires that appdata is in the release.
At the moment not enough work has been done to warrant another release, so this has to sit on the backburner for a bit.

from mpc-qt.

ahjolinna avatar ahjolinna commented on June 14, 2024

well there is now a new release and I just moved to openSUSE MicroOS so a flatpak version would be nice.

btw. I checked the com.github.mpc-qt.yml, wouldn't there need to be more option enabled for ffmpeg? (for better codec support ...if possible just use "org.freedesktop.Platform.ffmpeg-full" -extension instead (for All ffmpeg codecs)

from mpc-qt.

cmdrkotori avatar cmdrkotori commented on June 14, 2024

Oh no, I forgot to update the appdata before making the latest release! Check the repo or the latest tarball. The appdata file literally says its the old version (22.02, not 23.02), so everyone now has wrong appdata in their /usr until the next release! Even if I went and reopened the old flatpak PR and fixed the yml, I can't make a flatpak with the wrong appdata in the release zip/tarball!

I think what I will do is drop the releases section from the appdata so this does not happen again. According to the spec the section is not necessary.

I suppose this will again have to wait until next release. It can't be helped. 🙏

from mpc-qt.

ahjolinna avatar ahjolinna commented on June 14, 2024

not an issue, just wondered and wanted to remind you.

also if its possible check if you can use the "org.freedesktop.Platform.ffmpeg-full" -extension instead as I mentioned before

from mpc-qt.

SuNNjek avatar SuNNjek commented on June 14, 2024

Is there any reason to not also have a flatpak? I personally prefer to use flatpaks whenever possible.

from mpc-qt.

ahjolinna avatar ahjolinna commented on June 14, 2024

@g-fb : I made my own (first) flatpak version, main idea is that it would be using already provided ffmpeg-full runtime instead of having to your own version (for bloat). Currently my version does build but wont run, any suggestion?

io.github.mpc_qt.Mpc-Qt.json

{
  "app-id": "io.github.mpc_qt.Mpc-Qt",
  "runtime": "org.kde.Platform",
  "runtime-version": "6.6",
  "add-extensions": {
    "org.freedesktop.Platform.ffmpeg-full": {
      "directory": "lib/ffmpeg",
      "add-ld-path": ".",
      "version": "*runtime-version",
      "no-autodownload": false,
      "autodelete": false
    },
    "org.freedesktop.Platform.ffmpeg_full.i386": {
      "directory": "lib32/ffmpeg",
      "add-ld-path": ".",
      "version": "*runtime-version",
      "no-autodownload": true,
      "autodelete": false
    }
  },
  "sdk": "org.kde.Sdk",
  "command": "mpc-qt",
  "rename-icon": "mpc-qt",
  "rename-desktop-file": "mpc-qt.desktop",
  "copy-icon": true,
  "finish-args": [
    "--share=ipc",
    "--share=network",
    "--socket=fallback-x11",
    "--socket=wayland",
    "--socket=pulseaudio",
    "--device=dri",
    "--filesystem=host:ro",
    "--filesystem=home",
    "--filesystem=xdg-run/pipewire-0:ro",
    "--talk-name=org.freedesktop.ScreenSaver",
    "--own-name=org.mpris.MediaPlayer2.mpc-qt",
    "--env=LC_NUMERIC=C",
    "--env=XCURSOR_PATH=/run/host/user-share/icons:/run/host/share/icons"
  ],
  "cleanup": [
    "*.a",
    "*.la",
    "/include",
    "/lib/cmake",
    "/lib/pkgconfig",
    "/share/man"
  ],
  "modules": [
    {
      "name": "shaderc",
      "buildsystem": "cmake-ninja",
      "builddir": true,
      "config-opts": [
        "-DSHADERC_SKIP_COPYRIGHT_CHECK=ON",
        "-DSHADERC_SKIP_EXAMPLES=ON",
        "-DSHADERC_SKIP_TESTS=ON",
        "-DSPIRV_SKIP_EXECUTABLES=ON",
        "-DENABLE_GLSLANG_BINARIES=OFF"
      ],
      "cleanup": [
        "/bin",
        "/include",
        "/lib/cmake",
        "/lib/pkgconfig"
      ],
      "sources": [
        {
          "type": "git",
          "url": "https://github.com/google/shaderc.git",
          "commit": "40bced4e1e205ecf44630d2dfa357655b6dabd04"
        },
        {
          "type": "git",
          "url": "https://github.com/KhronosGroup/SPIRV-Tools.git",
          "tag": "v2024.1",
          "commit": "04896c462d9f3f504c99a4698605b6524af813c1",
          "dest": "third_party/spirv-tools"
        },
        {
          "type": "git",
          "url": "https://github.com/KhronosGroup/SPIRV-Headers.git",
          "commit": "4f7b471f1a66b6d06462cd4ba57628cc0cd087d7",
          "dest": "third_party/spirv-headers"
        },
        {
          "type": "git",
          "url": "https://github.com/KhronosGroup/glslang.git",
          "tag": "14.1.0",
          "commit": "ee2f5d09eaf8f4e8d0d598bd2172fce290d4ca60",
          "dest": "third_party/glslang",
          "x-checker-data": {
            "type": "git",
            "tag-pattern": "^(\\d{1,2}\\.\\d{1,2}\\.\\d{1,4})$"
          }
        }
      ]
    },
    {
      "name": "libass",
      "cleanup": [
        "/include",
        "/lib/pkgconfig"
      ],
      "config-opts": [
        "--disable-static"
      ],
      "sources": [
        {
          "type": "git",
          "url": "https://github.com/libass/libass.git",
          "tag": "0.17.1",
          "commit": "e8ad72accd3a84268275a9385beb701c9284e5b3",
          "x-checker-data": {
            "type": "git",
            "tag-pattern": "^(\\d\\.\\d{1,3}\\.\\d{1,2})$"
          }
        }
      ]
    },
    {
      "name": "luajit",
      "no-autogen": true,
      "cleanup": [
        "/bin",
        "/include",
        "/lib/pkgconfig",
        "/share/man"
      ],
      "sources": [
        {
          "type": "git",
          "url": "https://github.com/LuaJIT/LuaJIT.git",
          "mirror-urls": [
            "https://luajit.org/git/luajit.git"
          ],
          "disable-shallow-clone": true,
          "commit": "b3e498738962cdb08686f3dd612cf060382d88f2",
          "x-checker-data": {
            "type": "json",
            "url": "https://api.github.com/repos/LuaJIT/LuaJIT/commits",
            "commit-query": "first( .[].sha )",
            "version-query": "first( .[].sha )",
            "timestamp-query": "first( .[].commit.committer.date )"
          }
        },
        {
          "type": "shell",
          "commands": [
            "sed -i 's|/usr/local|/app|' ./Makefile"
          ]
        }
      ]
    },
    {
      "name": "libplacebo",
      "buildsystem": "meson",
      "config-opts": [
        "-Dvulkan=enabled",
        "-Dshaderc=enabled"
      ],
      "cleanup": [
        "/include",
        "/lib/pkgconfig"
      ],
      "sources": [
        {
          "type": "git",
          "url": "https://github.com/haasn/libplacebo.git",
          "mirror-urls": [
            "https://code.videolan.org/videolan/libplacebo.git"
          ],
          "tag": "v6.338.2",
          "commit": "64c1954570f1cd57f8570a57e51fb0249b57bb90",
          "x-checker-data": {
            "type": "git",
            "tag-pattern": "^v([\\d.]+)$"
          }
        }
      ]
    },
        {
  "name": "libmpv",
  "buildsystem": "meson",
  "config-opts": [
    "-Dlibmpv=true",
    "-Dlua=enabled",
    "-Ddebug=false",
    "-Dbuild-date=false",
    "-Dalsa=disabled",
    "-Dmanpage-build=disabled"
  ],
  "cleanup": [ "/lib/pkgconfig", "/share", "/include" ],
  "dependencies": [
    "libplacebo",
    "libass",
    "luajit"
  ],
  "sources": [
    {
      "type": "archive",
      "url": "https://github.com/mpv-player/mpv/archive/refs/tags/v0.38.0.tar.gz",
      "sha256": "86d9ef40b6058732f67b46d0bbda24a074fae860b3eaae05bab3145041303066"
    }
  ]
},

    {
      "name": "mpc-qt",
      "buildsystem": "qmake",
      "dependencies": [
        "libmpv"
      ],
      "sources": [
        {
          "type": "archive",
          "url": "https://github.com/mpc-qt/mpc-qt/archive/refs/tags/v23.12.tar.gz",
          "sha256": "6a639bc7911a8972cb7d7e207d3cb24606d2439af2665c373745ae8a6ced65be"
        }
      ]
    }
  ]
}
 

the current error;

flatpak run io.github.mpc_qt.Mpc-Qt
F: Not sharing "/usr/share/icons" with sandbox: Path "/usr" is reserved by Flatpak
qt.qpa.xcb: could not connect to display  
qt.qpa.plugin: From 6.5.0, xcb-cursor0 or libxcb-cursor0 is needed to load the Qt xcb platform plugin.
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vkkhrdisplay, vnc, wayland-egl, wayland, xcb.

from mpc-qt.

cmdrkotori avatar cmdrkotori commented on June 14, 2024

There's a bug in the runtime, it's missing a library. Why is it searching for xcb-cursor? Because by default the application uses X11 because some things are broken on wayland. So wayland is opt-in, not by default.

from mpc-qt.

ahjolinna avatar ahjolinna commented on June 14, 2024

oh I thought wayland thing was resolved as KDE own mpv frontend Haruna and mpv has wayland by default..hmm
https://github.com/flathub/org.kde.haruna/blob/master/org.kde.haruna.yml#L12
https://github.com/flathub/io.mpv.Mpv/blob/master/io.mpv.Mpv.yml#L12

from mpc-qt.

cmdrkotori avatar cmdrkotori commented on June 14, 2024

Nah we do more with the desktop than those do. We center our window to the center of the screen at the beginning of every video.

That said I've been running wayland myself ever since plasma 6 came out, so perhaps when ubuntu lts gets it we can drop this default behavior. It's only a pain having part of the window suddenly offscreen when you're running 1080p videos on a 1080p monitor; I'll be joining the 1440p master race later this year if all goes well.

from mpc-qt.

ahjolinna avatar ahjolinna commented on June 14, 2024

okay, yeah I was also running plasma6 as git since beta days.
hopefully when plasma 6 and wayland in general becomes default on more distros this year we can start to see more fixes for wayland.

btw. I changed "--socket=fallback-x11", to just "--socket=x11", ...and the app runs now

from mpc-qt.

ahjolinna avatar ahjolinna commented on June 14, 2024

well this version works now, and as it seems you can "enable wayland" from app settings and it runs just fine. its possible that we need to add/enable something for mpv but currently it seems to have all the needed basic stuff, and as its uses the already provided ffmpeg-full no need to worry about maintaining that or worry about some licence issues

image

just need to fix the versioning, and the generic wayland icon thing (not sure if its a bug)

{
  "app-id": "io.github.mpc_qt.Mpc-Qt",
  "runtime": "org.kde.Platform",
  "runtime-version": "6.6",
  "add-extensions": {
    "org.freedesktop.Platform.ffmpeg-full": {
      "directory": "lib/ffmpeg",
      "add-ld-path": ".",
      "version": "*runtime-version",
      "no-autodownload": false,
      "autodelete": false
    },
    "org.freedesktop.Platform.ffmpeg_full.i386": {
      "directory": "lib32/ffmpeg",
      "add-ld-path": ".",
      "version": "*runtime-version",
      "no-autodownload": true,
      "autodelete": false
    }
  },
  "sdk": "org.kde.Sdk",
  "command": "mpc-qt",
  "rename-icon": "mpc-qt",
  "rename-desktop-file": "mpc-qt.desktop",
  "copy-icon": true,
  "finish-args": [
    "--share=ipc",
    "--share=network",
    "--socket=x11",
    "--socket=wayland",
    "--socket=pulseaudio",
    "--device=dri",
    "--filesystem=host:ro",
    "--filesystem=home",
    "--filesystem=xdg-run/pipewire-0:ro",
    "--talk-name=org.freedesktop.ScreenSaver",
    "--own-name=org.mpris.MediaPlayer2.mpc-qt",
    "--env=LC_NUMERIC=C",
    "--env=XCURSOR_PATH=/run/host/user-share/icons:/run/host/share/icons"
  ],
  "environment": {
    "QT_QPA_PLATFORM": "wayland"
  },
  "cleanup": [
    "*.a",
    "*.la",
    "/include",
    "/lib/cmake",
    "/lib/pkgconfig",
    "/share/man"
  ],
  "modules": [
    {
      "name": "shaderc",
      "buildsystem": "cmake-ninja",
      "builddir": true,
      "config-opts": [
        "-DSHADERC_SKIP_COPYRIGHT_CHECK=ON",
        "-DSHADERC_SKIP_EXAMPLES=ON",
        "-DSHADERC_SKIP_TESTS=ON",
        "-DSPIRV_SKIP_EXECUTABLES=ON",
        "-DENABLE_GLSLANG_BINARIES=OFF"
      ],
      "cleanup": [
        "/bin",
        "/include",
        "/lib/cmake",
        "/lib/pkgconfig"
      ],
      "sources": [
        {
          "type": "git",
          "url": "https://github.com/google/shaderc.git",
          "commit": "40bced4e1e205ecf44630d2dfa357655b6dabd04"
        },
        {
          "type": "git",
          "url": "https://github.com/KhronosGroup/SPIRV-Tools.git",
          "tag": "v2024.1",
          "commit": "04896c462d9f3f504c99a4698605b6524af813c1",
          "dest": "third_party/spirv-tools"
        },
        {
          "type": "git",
          "url": "https://github.com/KhronosGroup/SPIRV-Headers.git",
          "commit": "4f7b471f1a66b6d06462cd4ba57628cc0cd087d7",
          "dest": "third_party/spirv-headers"
        },
        {
          "type": "git",
          "url": "https://github.com/KhronosGroup/glslang.git",
          "tag": "14.1.0",
          "commit": "ee2f5d09eaf8f4e8d0d598bd2172fce290d4ca60",
          "dest": "third_party/glslang",
          "x-checker-data": {
            "type": "git",
            "tag-pattern": "^(\\d{1,2}\\.\\d{1,2}\\.\\d{1,4})$"
          }
        }
      ]
    },
    {
      "name": "libass",
      "cleanup": [
        "/include",
        "/lib/pkgconfig"
      ],
      "config-opts": [
        "--disable-static"
      ],
      "sources": [
        {
          "type": "git",
          "url": "https://github.com/libass/libass.git",
          "tag": "0.17.1",
          "commit": "e8ad72accd3a84268275a9385beb701c9284e5b3",
          "x-checker-data": {
            "type": "git",
            "tag-pattern": "^(\\d\\.\\d{1,3}\\.\\d{1,2})$"
          }
        }
      ]
    },
    {
      "name": "luajit",
      "no-autogen": true,
      "cleanup": [
        "/bin",
        "/include",
        "/lib/pkgconfig",
        "/share/man"
      ],
      "sources": [
        {
          "type": "git",
          "url": "https://github.com/LuaJIT/LuaJIT.git",
          "mirror-urls": [
            "https://luajit.org/git/luajit.git"
          ],
          "disable-shallow-clone": true,
          "commit": "b3e498738962cdb08686f3dd612cf060382d88f2",
          "x-checker-data": {
            "type": "json",
            "url": "https://api.github.com/repos/LuaJIT/LuaJIT/commits",
            "commit-query": "first( .[].sha )",
            "version-query": "first( .[].sha )",
            "timestamp-query": "first( .[].commit.committer.date )"
          }
        },
        {
          "type": "shell",
          "commands": [
            "sed -i 's|/usr/local|/app|' ./Makefile"
          ]
        }
      ]
    },
    {
      "name": "libplacebo",
      "buildsystem": "meson",
      "config-opts": [
        "-Dvulkan=enabled",
        "-Dshaderc=enabled"
      ],
      "cleanup": [
        "/include",
        "/lib/pkgconfig"
      ],
      "sources": [
        {
          "type": "git",
          "url": "https://github.com/haasn/libplacebo.git",
          "mirror-urls": [
            "https://code.videolan.org/videolan/libplacebo.git"
          ],
          "tag": "v6.338.2",
          "commit": "64c1954570f1cd57f8570a57e51fb0249b57bb90",
          "x-checker-data": {
            "type": "git",
            "tag-pattern": "^v([\\d.]+)$"
          }
        }
      ]
    },
        {
  "name": "libmpv",
  "buildsystem": "meson",
  "config-opts": [
    "-Dlibmpv=true",
    "-Dlua=enabled",
    "-Ddebug=false",
    "-Dbuild-date=false",
    "-Dalsa=disabled",
    "-Dmanpage-build=disabled"
  ],
  "cleanup": [ "/lib/pkgconfig", "/share", "/include" ],
  "dependencies": [
    "libplacebo",
    "libass",
    "luajit"
  ],
  "sources": [
    {
      "type": "archive",
      "url": "https://github.com/mpv-player/mpv/archive/refs/tags/v0.38.0.tar.gz",
      "sha256": "86d9ef40b6058732f67b46d0bbda24a074fae860b3eaae05bab3145041303066"
    }
  ]
},

    {
      "name": "mpc-qt",
      "buildsystem": "qmake",
      "dependencies": [
        "libmpv"
      ],
      "sources": [
        {
          "type": "archive",
          "url": "https://github.com/mpc-qt/mpc-qt/archive/refs/tags/v23.12.tar.gz",
          "sha256": "6a639bc7911a8972cb7d7e207d3cb24606d2439af2665c373745ae8a6ced65be"
        }
      ]
    }
  ]
}

from mpc-qt.

ahjolinna avatar ahjolinna commented on June 14, 2024

here is (hopefully) the last version of my part with all the needed pkgs added/enabled...I think, the same remaining issue do still exist (general wayland icon and app version number) : io.github.mpc_qt.Mpc-Qt.json

also I notice that you had removed the "io.github.mpc_qt.Mpc-Qt.appdata.xml" file:

<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop">
 <id>io.github.mpc_qt.Mpc-Qt</id>
 <metadata_license>CC0-1.0</metadata_license>
 <project_license>GPL-2.0+</project_license>
 <name>Media Player Classic Qute Theater</name>
 <summary>A clone of Media Player Classic reimplemented in Qt.</summary>
 <launchable type="desktop-id">io.github.mpc_qt.Mpc-Qt.desktop</launchable>
 <content_rating type="oars-1.1" />
 <description>
  <p>
   Media Player Classic Qute Theater (Mpc-Qt) is a cross-platform application that uses Qt to reproduce most of the interface and functionality of Media Player Classic Home Cinema (Mpc-Hc), and uses libmpv's powerful media presentation framework to play video instead of DirectShow. It is not a strict clone; there are some improvements.
  </p>
  <p>Features:</p>
  <ul>
   <li>libmpv backend</li>
   <li>Multiple playlists</li>
   <li>Quick queueing like xmms/qmmp</li>
   <li>Mpris - multimedia keys support</li>
   <li>Web interface like Mpc-Hc's</li>
   <li>Flatpak: Filesystem access for writing screenshots</li>
  </ul>
 </description>
 <screenshots>
  <screenshot type="default">
   <image>https://mpc-qt.github.io/images/Screenshot_20220226_155532.png</image>
   <caption>The main window showing the application in action</caption>
  </screenshot>
 </screenshots>
 <url type="homepage">https://mpc-qt.github.io/</url>
 <url type="bugtracker">https://github.com/mpc-qt/mpc-qt/issues</url>
</component>

these dont need to be merger to this repo but can directly put to flathub.
when? maybe with next release

I just put these here if someone wants to make a local build to test until then

from mpc-qt.

g-fb avatar g-fb commented on June 14, 2024

general wayland icon

Maybe it's this issue https://nicolasfella.de/posts/fixing-wayland-taskbar-icons/

from mpc-qt.

cmdrkotori avatar cmdrkotori commented on June 14, 2024

Yeah that would work. Unfortunately we have to support qt 6.4.2(!) for the next two years due to ubuntu not shipping recent qt in their latest lts (24.04).

from mpc-qt.

ahjolinna avatar ahjolinna commented on June 14, 2024

well yeah this ubuntu thing sucks. what about instead of thinking about direct backward compatibility could a fallback mechanisms work?:
aka" implement fallback mechanisms or conditional code paths to handle cases where certain Qt features or APIs are unavailable or behave differently on the target system's Qt version."

also isn't ubuntu trying to push snap pkgs instead of flatpak? which is why flatpak isnt even installed/enabled by default with 24.04? so does it really matter if we support it?

from mpc-qt.

cmdrkotori avatar cmdrkotori commented on June 14, 2024

We support ubuntu lts because that's what the CI uses.

aka" implement fallback mechanisms or conditional code paths to handle cases where certain Qt features or APIs are unavailable or behave differently on the target system's Qt version."

Yeah this is the usual way to do it. I haven't until now (except for platform/unify.h) because the C macro system leads to unmaintainable vomit in my opinion.

from mpc-qt.

cmdrkotori avatar cmdrkotori commented on June 14, 2024

Yeah that would work. Unfortunately we have to support qt 6.4.2(!) for the next two years due to ubuntu not shipping recent qt in their latest lts (24.04).

Ah right, I coincidentally looked again at that function Nicolas Fella pointed out, and it was added in 5.7, not 6.7. Sorry it's been a long day.

from mpc-qt.

ahjolinna avatar ahjolinna commented on June 14, 2024

We support ubuntu lts because that's what the CI uses.

I wonder if that will change, especially now that ubuntu is trying to move away from flatpak to their own snap solution...time will tell. I never got why ubuntu is the standard in so many places...its so horrible distro..oh well.

also Ubuntu 24.04 is using v1.14.4 flatpak version, which isn't that surprising as 1.15.x -branch that has so many more features is "Pre-release" ...for some reason a new (major) stable version has taken forever

aka" implement fallback mechanisms or conditional code paths to handle cases where certain Qt features or APIs are unavailable or behave differently on the target system's Qt version."

Yeah this is the usual way to do it. I haven't until now (except for platform/unify.h) because the C macro system leads to unmaintainable vomit in my opinion.

yeah I get this, its a pain in the ass. Thankfully when the next Ubuntu LTS arrives wayland, flatpak and Qt etc should have matured so there shouldn't be need for this anymore

recent qt in their latest lts (24.04).

Ah right, I coincidentally looked again at that function Nicolas Fella pointed out, and it was added in 5.7, not 6.7. Sorry it's been a long day.

that's a good news, you dont have to vomit that much after all

(I haven't been sleeping either that much this weekend, which is why this)

from mpc-qt.

cmdrkotori avatar cmdrkotori commented on June 14, 2024

Does adding this to the top of main() fix the desktop icon issue for you?

    if (!qEnvironmentVariableIsEmpty("FLATPAK_ID"))
        QGuiApplication::setDesktopFileName("io.github.mpc_qt.Mpc-Qt");

from mpc-qt.

ahjolinna avatar ahjolinna commented on June 14, 2024

yeah seems to be working, at least for me:
image
image

from mpc-qt.

cmdrkotori avatar cmdrkotori commented on June 14, 2024

Brilliant! I'll set about adding that code.

from mpc-qt.

ahjolinna avatar ahjolinna commented on June 14, 2024

I just tried this on my AMD laptop with Fedora (40) kinoite, and it seems to work just fine on it as well.

anyway, one minor issue I forgot to mention was that on wayland the cursor keeps vanishing in settings menu. (which is kinda annoying)...this happens on my both PCs so its not nvidia only issue or just openSUSE (MicroOS/Kalpa)

(and the old app version issue is still a thing, not sure if its flatpak mainifest issue or app one)

io.github.mpc_qt.Mpc-Qt.json

from mpc-qt.

ahjolinna avatar ahjolinna commented on June 14, 2024

hmm...I just only now notice that at least x265 videos don't work....well the video is blank and audio is only playing.
(both PC, and I tried with and without hardware acceleration)
(logs says: error: Failed to initialize a decoder for codec 'hevc')

I tried if adding x265 would help (for some reason) ...no it didn't

and I checked mpv and haruna ..the flatpak versions, and they both did play the x265 videos

from mpc-qt.

ahjolinna avatar ahjolinna commented on June 14, 2024

so apparently the "org.freedesktop.Platform.ffmpeg-full" isn't that full version and wont have all codecs like x265 ...for one reason or another (my guess is patents/license, which I thought flatpak could avoid these type of issues).

anyway. so it seems we have to add ffmpeg and other pkgs that is needed to mpc-qt pkgs:

io.github.mpc_qt.Mpc-Qt.json

from mpc-qt.

ahjolinna avatar ahjolinna commented on June 14, 2024

sigh okay I was wrong, or my json pkgs is broken or there is issue with the app as even adding own ffmpeg version (x265 enabled) didnt help, still wont play, I tried these demo files: https://x265.com/hevc-video-files/

those demo files worked fine on mpv and KDE's haruna player (flatpak version) and as they both uses their own ffmpeg I thought that was the issue...but no

from mpc-qt.

Related Issues (20)

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.