Skip to content

Conversation

@Portisch
Copy link
Contributor

1. Tell us something about your changes.

Fixed and reworked Amlogic "ge2d" mode. Added a option to use a single ioctl call to grab a frame instead of single ioctl calls. For this "ge2d" mode CoreELEC hyperion patch got fixed too:
CoreELEC/CoreELEC@62346cc
CoreELEC/CoreELEC@6db794c
CoreELEC/CoreELEC@2f6adf4

Also added paramter to use amvideocap0 or ge2d grabber device. If ge2d is choosen the ioctl method can also be chossen by "ge2d_mode".

2. If this changes affect the .conf file. Please provide the changed section

"framegrabber": {
    "amlogic_grabber": "amvideocap0/ge2d",
    "ge2d_mode": 0/1
},

3. Reference an issue (optional)

Note: For further discussions use our forum: forum.hyperion-project.org

Portisch added a commit to CoreELEC/CoreELEC that referenced this pull request Jan 29, 2019
@Paulchen-Panther Paulchen-Panther mentioned this pull request Feb 6, 2019
@RickDB
Copy link

RickDB commented Feb 6, 2019

Hi,

We had a recent rework merged in which broke this PR sadly, could you please rebase it on our current master?

@Portisch
Copy link
Contributor Author

Portisch commented Feb 7, 2019

First hyperion.ng have to be patched to be compiling with coreelec. The state of the addon is e438bc6.

@Portisch
Copy link
Contributor Author

Portisch commented Feb 7, 2019

Since 2dca1c9 it fails to build for amlogic:

[232/232] Linking CXX executable bin/hyperiond
FAILED: bin/hyperiond
: && /home/stephan/CoreELEC/build.CoreELEC-S912.arm-9.0-devel/toolchain/bin/armv8a-libreelec-linux-gnueabi-g++ -march=armv8-a+crc -mtune=cortex-a53 -mabi=aapcs-linux -Wno-psabi -Wa,-mno-warn-deprecated -mcpu=cortex-a53 -mfloat-abi=hard -mfpu=neon-fp-armv8 -fomit-frame-pointer -Wall -pipe -Os -Wall -std=c++11 -O3 -DNDEBUG -march=armv8-a+crc -mtune=cortex-a53 -Wl,--as-needed -fuse-ld=gold -rdynamic src/hyperiond/CMakeFiles/hyperiond.dir/hyperiond.cpp.o src/hyperiond/CMakeFiles/hyperiond.dir/systray.cpp.o src/hyperiond/CMakeFiles/hyperiond.dir/main.cpp.o src/hyperiond/CMakeFiles/hyperiond.dir/hyperiond_autogen/mocs_compilation.cpp.o -o bin/hyperiond -Wl,-rpath,"$ORIGIN/../lib" lib/libcommandline.a lib/libhyperion.a lib/libeffectengine.a lib/libjsonserver.a lib/libudplistener.a lib/libflatbufserver.a lib/libwebserver.a lib/libbonjour.a lib/libssdp.a lib/libpython.a lib/libresources.a -lpython3.7 lib/libframebuffer-grabber.a lib/libv4l2-grabber.a lib/libamlogic-grabber.a lib/libqt-grabber.a -lflatbuffers lib/libwebserver.a lib/libhyperion-api.a lib/libhyperion.a lib/libeffectengine.a lib/libbonjour.a lib/libpython.a lib/libblackborder.a lib/libhyperion-utils.a lib/libleddevice.a lib/libboblightserver.a lib/libhyperion.a lib/libeffectengine.a lib/libbonjour.a lib/libpython.a lib/libblackborder.a lib/libhyperion-utils.a lib/libleddevice.a lib/libboblightserver.a -Wl,-Bstatic -lpng -Wl,-Bdynamic -ldns_sd -lavahi-client -lavahi-common -lavahi-core -ldbus-1 -lpython3.7 /home/stephan/CoreELEC/build.CoreELEC-S912.arm-9.0-devel/toolchain/armv8a-libreelec-linux-gnueabi/sysroot/usr/lib/libQt5Network.a /home/stephan/CoreELEC/build.CoreELEC-S912.arm-9.0-devel/toolchain/armv8a-libreelec-linux-gnueabi/sysroot/usr/lib/libQt5SerialPort.a lib/libhidapi-libusb.a -lpthread -lusb-1.0 -lpthread -lpcre16 -ldl -lz /home/stephan/CoreELEC/build.CoreELEC-S912.arm-9.0-devel/toolchain/armv8a-libreelec-linux-gnueabi/sysroot/usr/lib/libQt5Widgets.a /home/stephan/CoreELEC/build.CoreELEC-S912.arm-9.0-devel/toolchain/armv8a-libreelec-linux-gnueabi/sysroot/usr/lib/libQt5Gui.a /home/stephan/CoreELEC/build.CoreELEC-S912.arm-9.0-devel/toolchain/armv8a-libreelec-linux-gnueabi/sysroot/usr/lib/libQt5Core.a && :
/home/stephan/CoreELEC/build.CoreELEC-S912.arm-9.0-devel/toolchain/armv8a-libreelec-linux-gnueabi/sysroot/usr/lib/libQt5Core.a(qregularexpression.o):qregularexpression.cpp:function pcre16SafeExec(real_pcre8_or_16 const*, pcre16_extra const*, unsigned short const*, int, int, int, int*, int): error: undefined reference to 'pcre16_exec'
/home/stephan/CoreELEC/build.CoreELEC-S912.arm-9.0-devel/toolchain/armv8a-libreelec-linux-gnueabi/sysroot/usr/lib/libQt5Core.a(qregularexpression.o):qregularexpression.cpp:function pcre16SafeExec(real_pcre8_or_16 const*, pcre16_extra const*, unsigned short const*, int, int, int, int*, int): error: undefined reference to 'pcre16_jit_stack_alloc'
/home/stephan/CoreELEC/build.CoreELEC-S912.arm-9.0-devel/toolchain/armv8a-libreelec-linux-gnueabi/sysroot/usr/lib/libQt5Core.a(qregularexpression.o):qregularexpression.cpp:function pcre16SafeExec(real_pcre8_or_16 const*, pcre16_extra const*, unsigned short const*, int, int, int, int*, int): error: undefined reference to 'pcre16_exec'
/home/stephan/CoreELEC/build.CoreELEC-S912.arm-9.0-devel/toolchain/armv8a-libreelec-linux-gnueabi/sysroot/usr/lib/libQt5Core.a(qregularexpression.o):qregularexpression.cpp:function QRegularExpressionPrivate::~QRegularExpressionPrivate(): error: undefined reference to 'pcre16_free_study'
/home/stephan/CoreELEC/build.CoreELEC-S912.arm-9.0-devel/toolchain/armv8a-libreelec-linux-gnueabi/sysroot/usr/lib/libQt5Core.a(qregularexpression.o):qregularexpression.cpp:function QRegularExpressionPrivate::~QRegularExpressionPrivate(): error: undefined reference to 'pcre16_free'
/home/stephan/CoreELEC/build.CoreELEC-S912.arm-9.0-devel/toolchain/armv8a-libreelec-linux-gnueabi/sysroot/usr/lib/libQt5Core.a(qregularexpression.o):qregularexpression.cpp:function QRegularExpressionPrivate::cleanCompiledPattern(): error: undefined reference to 'pcre16_free_study'
/home/stephan/CoreELEC/build.CoreELEC-S912.arm-9.0-devel/toolchain/armv8a-libreelec-linux-gnueabi/sysroot/usr/lib/libQt5Core.a(qregularexpression.o):qregularexpression.cpp:function QRegularExpressionPrivate::cleanCompiledPattern(): error: undefined reference to 'pcre16_free'
/home/stephan/CoreELEC/build.CoreELEC-S912.arm-9.0-devel/toolchain/armv8a-libreelec-linux-gnueabi/sysroot/usr/lib/libQt5Core.a(qregularexpression.o):qregularexpression.cpp:function QRegularExpressionPrivate::getPatternInfo(): error: undefined reference to 'pcre16_fullinfo'
/home/stephan/CoreELEC/build.CoreELEC-S912.arm-9.0-devel/toolchain/armv8a-libreelec-linux-gnueabi/sysroot/usr/lib/libQt5Core.a(qregularexpression.o):qregularexpression.cpp:function QRegularExpressionPrivate::getPatternInfo(): error: undefined reference to 'pcre16_fullinfo'
/home/stephan/CoreELEC/build.CoreELEC-S912.arm-9.0-devel/toolchain/armv8a-libreelec-linux-gnueabi/sysroot/usr/lib/libQt5Core.a(qregularexpression.o):qregularexpression.cpp:function QRegularExpressionPrivate::getPatternInfo(): error: undefined reference to 'pcre16_fullinfo'
/home/stephan/CoreELEC/build.CoreELEC-S912.arm-9.0-devel/toolchain/armv8a-libreelec-linux-gnueabi/sysroot/usr/lib/libQt5Core.a(qregularexpression.o):qregularexpression.cpp:function QRegularExpressionPrivate::getPatternInfo(): error: undefined reference to 'pcre16_config'
/home/stephan/CoreELEC/build.CoreELEC-S912.arm-9.0-devel/toolchain/armv8a-libreelec-linux-gnueabi/sysroot/usr/lib/libQt5Core.a(qregularexpression.o):qregularexpression.cpp:function QRegularExpressionPrivate::compilePattern(): error: undefined reference to 'pcre16_free_study'
/home/stephan/CoreELEC/build.CoreELEC-S912.arm-9.0-devel/toolchain/armv8a-libreelec-linux-gnueabi/sysroot/usr/lib/libQt5Core.a(qregularexpression.o):qregularexpression.cpp:function QRegularExpressionPrivate::compilePattern(): error: undefined reference to 'pcre16_compile2'
/home/stephan/CoreELEC/build.CoreELEC-S912.arm-9.0-devel/toolchain/armv8a-libreelec-linux-gnueabi/sysroot/usr/lib/libQt5Core.a(qregularexpression.o):qregularexpression.cpp:function QRegularExpressionPrivate::compilePattern(): error: undefined reference to 'pcre16_free'
/home/stephan/CoreELEC/build.CoreELEC-S912.arm-9.0-devel/toolchain/armv8a-libreelec-linux-gnueabi/sysroot/usr/lib/libQt5Core.a(qregularexpression.o):qregularexpression.cpp:function QRegularExpressionPrivate::optimizePattern(QRegularExpressionPrivate::OptimizePatternOption): error: undefined reference to 'pcre16_study'
/home/stephan/CoreELEC/build.CoreELEC-S912.arm-9.0-devel/toolchain/armv8a-libreelec-linux-gnueabi/sysroot/usr/lib/libQt5Core.a(qregularexpression.o):qregularexpression.cpp:function QRegularExpressionPrivate::optimizePattern(QRegularExpressionPrivate::OptimizePatternOption): error: undefined reference to 'pcre16_assign_jit_stack'
/home/stephan/CoreELEC/build.CoreELEC-S912.arm-9.0-devel/toolchain/armv8a-libreelec-linux-gnueabi/sysroot/usr/lib/libQt5Core.a(qregularexpression.o):qregularexpression.cpp:function QRegularExpressionPrivate::captureIndexForName(QString const&) const: error: undefined reference to 'pcre16_get_stringnumber'
/home/stephan/CoreELEC/build.CoreELEC-S912.arm-9.0-devel/toolchain/armv8a-libreelec-linux-gnueabi/sysroot/usr/lib/libQt5Core.a(qregularexpression.o):qregularexpression.cpp:function QRegularExpression::operator=(QRegularExpression const&): error: undefined reference to 'pcre16_free_study'
/home/stephan/CoreELEC/build.CoreELEC-S912.arm-9.0-devel/toolchain/armv8a-libreelec-linux-gnueabi/sysroot/usr/lib/libQt5Core.a(qregularexpression.o):qregularexpression.cpp:function QRegularExpression::operator=(QRegularExpression const&): error: undefined reference to 'pcre16_free'
/home/stephan/CoreELEC/build.CoreELEC-S912.arm-9.0-devel/toolchain/armv8a-libreelec-linux-gnueabi/sysroot/usr/lib/libQt5Core.a(qregularexpression.o):qregularexpression.cpp:function QRegularExpressionMatch::captured(QString const&) const: error: undefined reference to 'pcre16_get_stringnumber'
/home/stephan/CoreELEC/build.CoreELEC-S912.arm-9.0-devel/toolchain/armv8a-libreelec-linux-gnueabi/sysroot/usr/lib/libQt5Core.a(qregularexpression.o):qregularexpression.cpp:function QRegularExpressionMatch::capturedRef(QString const&) const: error: undefined reference to 'pcre16_get_stringnumber'
/home/stephan/CoreELEC/build.CoreELEC-S912.arm-9.0-devel/toolchain/armv8a-libreelec-linux-gnueabi/sysroot/usr/lib/libQt5Core.a(qregularexpression.o):qregularexpression.cpp:function QRegularExpressionMatch::capturedStart(QString const&) const: error: undefined reference to 'pcre16_get_stringnumber'
/home/stephan/CoreELEC/build.CoreELEC-S912.arm-9.0-devel/toolchain/armv8a-libreelec-linux-gnueabi/sysroot/usr/lib/libQt5Core.a(qregularexpression.o):qregularexpression.cpp:function QRegularExpression::namedCaptureGroups() const: error: undefined reference to 'pcre16_fullinfo'
/home/stephan/CoreELEC/build.CoreELEC-S912.arm-9.0-devel/toolchain/armv8a-libreelec-linux-gnueabi/sysroot/usr/lib/libQt5Core.a(qregularexpression.o):qregularexpression.cpp:function QThreadStorage<QPcreJitStackPointer*>::deleteData(void*): error: undefined reference to 'pcre16_jit_stack_free'
collect2: error: ld returned 1 exit status

@RickDB
Copy link

RickDB commented Feb 7, 2019

Thanks, asked @Paulchen-Panther to take a look.
At first glance it might be a new reference which is not available for that platform or named differently.

@RickDB
Copy link

RickDB commented Feb 7, 2019

Found something PCRE16 related which is required for Hyperion.ng it seems:

https://github.com/CoreELEC/CoreELEC/blob/master/packages/addons/service/hyperion.ng/patches/hyperion.ng-0001-add-extra-linking-libraries.patch

@Portisch
Copy link
Contributor Author

Portisch commented Feb 7, 2019

I know about the library patch but I could not fix it yet. This is the difference of the commits what break the compile:
https://github.com/hyperion-project/hyperion.ng/compare/7352ff4d42883bce4f388b0bccb00d2cc4c08170..2dca1c93e63bff2fd00484b36e5302294d299f96

Also I do know nothing about the "Docker" and if it is aviable for Amlogic.

@Paulchen-Panther
Copy link
Member

Only Travis uses Docker, not Hyperion.
I think it's the new QT Grabber. Since all grabbers except the QT Grabber are included in the patch. The QT grabber was created in commit 1d9165f.

@Portisch
Copy link
Contributor Author

Portisch commented Feb 7, 2019

Any hint how to show more debug when compiling? I use this script to compile Hyperion: https://github.com/CoreELEC/CoreELEC/blob/master/scripts/create_addon

@Paulchen-Panther
Copy link
Member

Could you try this CoreElec patch for the master branch?
https://gist.github.com/Paulchen-Panther/d703e885647dc84b177eec80c4c55d4e

@Portisch
Copy link
Contributor Author

Portisch commented Feb 8, 2019

I tried it already yesterday to add the librarys but same error as above.

fix ge2d mode
added ge2d single/combined ioctl call
speed up imageresampler
speed up amvideocap0 mode
added config to choose if amvideocap0 or ge2d grabber should be used
@Portisch
Copy link
Contributor Author

#538

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants