Giter Club home page Giter Club logo

Comments (26)

zaps166 avatar zaps166 commented on June 2, 2024 1

Use qt4 branch instead of tag, because it contain a bugfix. It was ~5 years ago, I don't remember, Qt4 is very old.

from qmplay2.

zaps166 avatar zaps166 commented on June 2, 2024 1

JS syntax is obsolete in Qt4, so it'll not run the scripts properly.

from qmplay2.

zaps166 avatar zaps166 commented on June 2, 2024 1

This software is for Qt 5.10 and above 😄

What "YouTube search does not work with Qt4 version" does mean? Doesn't compile? Maybe you did something wrong with porting, it uses custom networking class which uses FFmpeg + maybe you need to do something with JSON lib for Qt4.

The old code in qt4 branch is obsolete and might not be compatible with youtube anymore.

from qmplay2.

zaps166 avatar zaps166 commented on June 2, 2024 1

The old branch is obsolete and search doesn't work because of YouTube website changes. You need to port most QMPlay2's youtube patches to make it work correctly.

from qmplay2.

barracuda156 avatar barracuda156 commented on June 2, 2024

Leaving aside FFMpeg incompatibilities with current versions, there are some other errors:

:info:build /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_multimedia_QMPlay2/QMPlay2/work/compwrap/cxx/opt/local/bin/g++-mp-13 -c -I/opt/local/include -Os -D_GLIBCXX_USE_CXX11_ABI=0 -arch ppc -O2 -arch ppc -Wall -W -DQMPlay2_TagEditor -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/opt/local/libexec/qt4/share/mkspecs/macx-g++ -I. -Ibuild/moc -I/opt/local/libexec/qt4/Library/Frameworks/QtCore.framework/Versions/4/Headers -I/opt/local/libexec/qt4/Library/Frameworks/QtNetwork.framework/Versions/4/Headers -I/opt/local/libexec/qt4/Library/Frameworks/QtGui.framework/Versions/4/Headers -I. -I../qmplay2/headers -I/opt/local/include/taglib -I/opt/local/libexec/qt4/Library/Frameworks/QtGui.framework/Versions/4/Headers -I/opt/local/libexec/qt4/Library/Frameworks/QtNetwork.framework/Versions/4/Headers -I/opt/local/libexec/qt4/Library/Frameworks/QtCore.framework/Versions/4/Headers -I/opt/local/libexec/qt4/include -F/opt/local/libexec/qt4/Library/Frameworks -F/opt/local/libexec/qt4/lib -o build/obj/PlaylistDock.o PlaylistDock.cpp
:info:build MainWidget.cpp: In member function 'void MainWidget::createMenuBar()':
:info:build MainWidget.cpp:697:9: error: 'qt_mac_set_dock_menu' was not declared in this scope
:info:build   697 |         qt_mac_set_dock_menu(secondMenu);
:info:build       |         ^~~~~~~~~~~~~~~~~~~~
:info:build /opt/local/libexec/qt4/include/QtGui/qtransform.h:136:17: note: because 'QTransform' has user-provided 'QTransform& QTransform::operator=(const QTransform&)'
:info:build   136 |     QTransform &operator=(const QTransform &);
:info:build       |                 ^~~~~~~~
:info:build PlayClass.cpp: In member function 'void PlayClass::loadSubsFile(const QString&)':
:info:build PlayClass.cpp:327:74: error: 'QRawFont' was not declared in this scope; did you mean 'QFont'?
:info:build   327 |                                                 const QString fontName = QRawFont(fontData, 0.0).familyName();
:info:build       |                                                                          ^~~~~~~~
:info:build       |                                                                          QFont

from qmplay2.

barracuda156 avatar barracuda156 commented on June 2, 2024

qt_mac_set_dock_menu issue can be fixed with this: https://www.qtcentre.org/threads/13749-Problem-with-QSystemTrayIcon-on-Mac-OS
Then, disabling OpenGL2 and QRawFont, I could make the app compile. Playback does not work, however: possibly, need to properly backport compatibility with modern FFMpeg.

from qmplay2.

barracuda156 avatar barracuda156 commented on June 2, 2024

No, I was wrong, this should still build: https://github.com/zaps166/QMPlay2/releases/tag/17.10.24
Or maybe try reverting 672f317 with a newer version.

from qmplay2.

zaps166 avatar zaps166 commented on June 2, 2024

Also macOS 10.6 is ~15 years old, many things has changed. Recently I improved OpenGL code, but it's for Qt5/Qt6. Try to declare missing types, get from newer headers somehow, maybe it'll work (or add possibly missing GL includes).

from qmplay2.

barracuda156 avatar barracuda156 commented on June 2, 2024

@zaps166 Thank you, I will try.

Use qt4 branch instead of tag

I actually tried already, but turned out it still forces Qt5 (Qt5MacExtras and non-existing with Qt4 headers in a few spots), but that it fixable.

Basically I need to revert everything which breaks Qt4, but backport support for FFMpeg 4.x+. Looks doable, but perhaps already not tonight.
(Nothing reverts or cherry-picks cleanly, so while perhaps most of that will be mechanical, it likely gonna take some time.)

from qmplay2.

zaps166 avatar zaps166 commented on June 2, 2024

I don't remember, but maybe I always used Qt5 for macOS builds. You can disable everything which needs Qt5MacExtras.

from qmplay2.

barracuda156 avatar barracuda156 commented on June 2, 2024

@zaps166 I actually got it working on PowerPC with Qt4. (And on Sonoma with Qt5, but that is no big deal.)

qmplay2

Took infinite number of rebuilds and quite substantial patching for Qt4 case, but I can play the videos now. Did not test further, need some sleep :)

If you will have a bit of time to look through and suggest improvements, it would be awesome.
This branch has a set of patches which fix the build and apparently make the app functional: https://github.com/barracuda156/QMPlay2/tree/qt4-rev2
I had to revert a number of commits which did not build. Quite possibly reverting is suboptimal, and I just did not know how to backport the new code to Qt4. (There is also an issue with SDK: Obj C stuff is unlikely to work on older systems, and something will be missing in system headers. However aside of Obj C things can be backported, perhaps.)

Most of the problematic code is from 17.x branch (which is also present in Qt4 branch). The last 16.x release built rather neatly with minimal patching, as I mention above.

If you have Macports, this should build: macports/macports-ports@7a76ba2
Or if that is rebased, branch: https://github.com/barracuda156/macports-ports/tree/QMPlay2

P. S. Most of multimedia players are broken on old macOS (primary issue are bugs in X11 and SDL2, which prevent them from working correctly, especially on Big-endian platforms; for instance, I could fix the build of VLC2 eventually, but colors are wrong with X11 output, while SDL is just broken). It was great to find your project – which looks a very promising option, as of now.

from qmplay2.

barracuda156 avatar barracuda156 commented on June 2, 2024

@zaps166 A quick update: video seems to work fine, though with 4K PowerPC machine is really struggling. Menus pretty much all work, scrolling via scrolling works, via clicking on scroll bars does not.

Youtube browsing seems dead on Qt4 version, but works on Qt5 one. (Can we backport a fix for it?)

Anime browsing is dead on Qt4 and missing on Qt5.

Later on the rest.

from qmplay2.

barracuda156 avatar barracuda156 commented on June 2, 2024

@zaps166 Could you say if this c8fb2b0 is portable to Qt4 or not? (I am not asking you to port it, to be clear. I just wanna know if it is feasible.)

For the context: I wanna try fixing YouTube and Mediabrowser, which are broken in Qt4-based version.

UPD. It might, possibly, via https://github.com/eteran/qjson4

UPD2. It looks like QJson4 in fact works. What does not work is QLoggingCategory, I have to drop backporting that part, I guess.

from qmplay2.

barracuda156 avatar barracuda156 commented on June 2, 2024

@zaps166 Thank you. Maybe you have a guess why YouTube search does not work with Qt4 version?

If we know the likely cause, I can try backporting specific patches rather than blindly trying to backport everything that touched YouTube module (and then dropping some chunks, since not everything gonna build or link).

(I sort of did backport a large part of later changes, but the build erred out on YouTube.cpp, likely due to what you point out – scripts behave differently, even though some of Qt5 code can work via Qtjson4 library.)

I added support for QMPlay2 into SMtube today (in Macports, not upstream), and it works for playback of YouTube vids beautifully. But it would be more logical and user-friendly just to make internal YouTube module of QMPlay2 work (for Qt4; with Qt5 it does work perfectly as-is).

from qmplay2.

barracuda156 avatar barracuda156 commented on June 2, 2024

@zaps166 Yes, I have been referring to your Qt4 branch :)

Everything builds fine, and video playback works with no issues, but everything online-search related does not work. Modules are built, but if I try inputting a keyword to search for whatever on Youtube, no output is produced, it remains blank.

I just built it on 10.6.8 x86_64 (so the issue is not PowerPC-specific at least):
Untitled
(It reports version 17.10.24.)

With backporting, it is pretty likely I got something wrong or trivially incomplete, but perhaps to make Youtube search working we do not need to backport everything committed for related module ever since. I just have no idea what prevents it from working.
I could try to do incremental backporting with rebuilds per-commit to see if any change occurs.

from qmplay2.

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.