Comments (26)
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.
JS syntax is obsolete in Qt4, so it'll not run the scripts properly.
from qmplay2.
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.
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.
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.
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.
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.
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.
@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.
I don't remember, but maybe I always used Qt5 for macOS builds. You can disable everything which needs Qt5MacExtras
.
from qmplay2.
@zaps166 I actually got it working on PowerPC with Qt4. (And on Sonoma with Qt5, but that is no big deal.)
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.
@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.
@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.
@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.
@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):
(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)
- QMPlay2 can not open video files named in Arabic HOT 10
- Impossible to play videos from https://my.mail.ru/video HOT 13
- Difference between the "video" widget and the shortcut "o" which disable video HOT 2
- yt-dlp failing HOT 2
- Audio stuttering when playing any video HOT 15
- "Vulkan" not active despite all controllers installed (Ryzen + Radeon) HOT 14
- Youtube subtitle encoding problem
- Full dark mode theme even in the top bar HOT 2
- QMPlay2 crashed HOT 6
- Start and Stop recordig video
- Changing volume control while a video is playing crashes app HOT 19
- runtime selection of YT video stream HOT 4
- Radio Station Icons Missing HOT 1
- How can I prevent the channels from skipping when the channel is frozen? HOT 7
- MediaBrowser results not playable HOT 1
- FFmpeg 4 build broken HOT 2
- YT video doesn't open, downloads with yt_dlp HOT 21
- Issues for TV Arib Subtitle HOT 4
- Establish compatibility with taglib 2.0 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from qmplay2.