Bug #352
closedUpstream repo is deprecated
100%
Description
I'm currently using the huecke repository: https://github.com/huceke/omxplayer/
However this repo is marked as deprecated. The official repository is popcornmix: https://github.com/popcornmix/omxplayer/
The switch is easy - just update OMX_URL in configs/omx.cfg. However, popcornmix now has a dependency on openssl that is not resolved even though the staging tree has that library. I can either try to find out why the library is not being found (by the ffmpeg build) or patch the Makefile.ffmpeg to disable use of openssl.
My build already copies in a modified version of the top level Makefile. I should diff it with the huecke repo to see if there is anything there that tells me why popcornmix is not finding the openssl library.
Updated by Hammel over 10 years ago
- Status changed from New to In Progress
- Severity changed from 03 - Medium to 01 - Critical
Updated by Hammel over 10 years ago
- % Done changed from 0 to 10
Here is a discussion on the ffmpeg build problem in the popcornmix repo.
I got around it by disabling openssl for the ffmpeg. But a better solution would be to use my own ffmpeg compilation in the buildroot staging tree. I'll have to look into that possibility a bit more.
For now, ffmpeg builds but there are errors with the omxplayer build:
utils/log.cpp: In static member function 'static void CLog::Log(int, const char*, ...)': utils/log.cpp:74:5: error: 'SYSTEMTIME' was not declared in this scope utils/log.cpp:74:16: error: expected ';' before 'time' utils/log.cpp:75:10: error: request for member 'wHour' in 'time', which is of non-class type 'time_t(time_t*)throw () {aka long int(long int*)throw ()}' utils/log.cpp:76:10: error: request for member 'wMinute' in 'time', which is of non-class type 'time_t(time_t*)throw () {aka long int(long int*)throw ()}' utils/log.cpp:77:10: error: request for member 'wSecond' in 'time', which is of non-class type 'time_t(time_t*)throw () {aka long int(long int*)throw ()}' utils/log.cpp:96:43: error: request for member 'wHour' in 'time', which is of non-class type 'time_t(time_t*)throw () {aka long int(long int*)throw ()}' utils/log.cpp:96:55: error: request for member 'wMinute' in 'time', which is of non-class type 'time_t(time_t*)throw () {aka long int(long int*)throw ()}' utils/log.cpp:96:69: error: request for member 'wSecond' in 'time', which is of non-class type 'time_t(time_t*)throw () {aka long int(long int*)throw ()}' utils/log.cpp:98:57: error: expected ')' before 'LINE_ENDING' utils/log.cpp:126:27: error: 'LINE_ENDING' was not declared in this scope utils/log.cpp:129:41: error: request for member 'wHour' in 'time', which is of non-class type 'time_t(time_t*)throw () {aka long int(long int*)throw ()}' utils/log.cpp:129:53: error: request for member 'wMinute' in 'time', which is of non-class type 'time_t(time_t*)throw () {aka long int(long int*)throw ()}' utils/log.cpp:129:67: error: request for member 'wSecond' in 'time', which is of non-class type 'time_t(time_t*)throw () {aka long int(long int*)throw ()}' utils/log.cpp: In static member function 'static bool CLog::Init(const char*)': utils/log.cpp:152:17: error: aggregate 'CLog::Init(const char*)::stat info' has incomplete type and cannot be defined utils/log.cpp:153:41: error: invalid use of incomplete type 'struct CLog::Init(const char*)::stat' utils/log.cpp:152:12: error: forward declaration of 'struct CLog::Init(const char*)::stat' utils/log.cpp:156:38: error: invalid use of incomplete type 'struct CLog::Init(const char*)::stat' utils/log.cpp:152:12: error: forward declaration of 'struct CLog::Init(const char*)::stat' make[1]: *** [utils/log.o] Error 1 make[1]: Leaving directory `/home/mjhammel/src/ximba/omxplayer/bld/omxplayer'
I think this may be due to my using my modified huecke makefile with the popcornmix repo. I'm going to have to figure out the diffs for the huecke file and then apply them to the popcornmix file, possibly manually.
Updated by Hammel over 10 years ago
- add to LDFLAGS: -lpng -lbz2
- add clobber target:
clobber: @make -f Makefile.ffmpeg clobber @make --no-print-directory clean
- Remove from ffmpeg target: @rm -rf ffmpeg
- Replace configuration settings (remove ifeq). BUILDROOT should be set by build system.
PREFIX :=/usr BUILDROOT :=/home/mjhammel/src/ximba/raspberrypi/bld/buildroot-2013.11 SDKSTAGE :=$(BUILDROOT)/output/staging TARGETFS :=$(BUILDROOT)/output/target TOOLCHAIN :=/opt/rpiTC HOST :=arm-unknown-linux-gnueabi SYSROOT :=$(TOOLCHAIN)/$(HOST)/sysroot JOBS=2 CFLAGS += -mfloat-abi=hard -mcpu=arm1176jzf-s -fomit-frame-pointer -mabi=aapcs-linux -mtune=arm1176jzf-s -mfpu=vfp -Wno-psabi -mno-apcs-stack-check -O3 -mstructure-size-boundary=32 -mno-sched-prolog -march=armv6zk LDFLAGS := \ -Lffmpeg_compiled/usr/local/lib \ -L$(SYSROOT)/lib \ -L$(SYSROOT)/usr/lib \ -L$(TARGETFS)/opt/vc/lib/ \ -L$(STAGING)/usr/lib PATH := $(TOOLCHAIN)/bin:$(PATH) INCLUDES = \ -I$(SYSROOT)/usr/include \ -I$(TARGETFS)/opt/vc/include \ -I$(TARGETFS)/opt/vc/include/interface/vcos/pthreads \ -I$(TARGETFS)/opt/vc/include/interface/vmcs_host \ -isystem$(SDKSTAGE)/usr/include
Updated by Hammel over 10 years ago
- % Done changed from 10 to 30
Made these mods and it got further but still dies:
In file included from OMXVideo.cpp:28:0: OMXVideo.h:59:13: error: 'OMX_IMAGEFILTERANAGLYPHTYPE' has not been declared OMXVideo.h:105:3: error: 'OMX_IMAGEFILTERANAGLYPHTYPE' does not name a type OMXVideo.h:59:52: error: 'OMX_ImageFilterAnaglyphNone' was not declared in this scope OMXVideo.cpp: In constructor 'COMXVideo::COMXVideo()': OMXVideo.cpp:66:3: error: 'm_anaglyph' was not declared in this scope OMXVideo.cpp:66:25: error: 'OMX_ImageFilterAnaglyphNone' was not declared in this scope OMXVideo.cpp: In member function 'bool COMXVideo::PortSettingsChanged()': OMXVideo.cpp:179:80: error: 'm_anaglyph' was not declared in this scope OMXVideo.cpp:209:92: error: 'm_anaglyph' was not declared in this scope OMXVideo.cpp:265:23: error: 'OMX_ImageFilterAnaglyphNone' was not declared in this scope OMXVideo.cpp:284:23: error: 'OMX_ImageFilterAnaglyphNone' was not declared in this scope OMXVideo.cpp:288:35: error: 'OMX_ImageFilterAnaglyph' was not declared in this scope OMXVideo.cpp:295:37: error: 'OMX_ImageFilterDeInterlaceFast' was not declared in this scope OMXVideo.cpp: At global scope: OMXVideo.cpp:376:22: error: 'OMX_IMAGEFILTERANAGLYPHTYPE' has not been declared OMXVideo.cpp: In member function 'bool COMXVideo::Open(COMXStreamInfo&, OMXClock*, const CRect&, float, EDEINTERLACEMODE, int, bool, int, float)': OMXVideo.cpp:522:3: error: 'm_anaglyph' was not declared in this scope OMXVideo.cpp: In member function 'void COMXVideo::Close()': OMXVideo.cpp:722:23: error: 'm_anaglyph' was not declared in this scope OMXVideo.cpp:730:23: error: 'm_anaglyph' was not declared in this scope OMXVideo.cpp:743:3: error: 'm_anaglyph' was not declared in this scope OMXVideo.cpp:743:25: error: 'OMX_ImageFilterAnaglyphNone' was not declared in this scope OMXVideo.cpp: In member function 'void COMXVideo::Reset()': OMXVideo.cpp:864:23: error: 'm_anaglyph' was not declared in this scope make[1]: *** [OMXVideo.o] Error 1 make[1]: Leaving directory `/home/mjhammel/src/ximba/omxplayer/bld/omxplayer' make: *** [.omx] Error 2
Now I need to see if there is a stable commit I can use.
Updated by Hammel over 10 years ago
The problem is that the vc firmware is not up to date on PiBox. To update that I have to rev to kernel 3.12.25, which is currently the default kernel for the Pi repos.
Sooooo- Rev kernel to 3.12.25
- Rev firmware to latest
- Test distro build + opkgs
If all that works, then I can retry the omxplayer build.
Updated by Hammel over 10 years ago
- Status changed from In Progress to New
- % Done changed from 30 to 40
Turned out simpler than that. I just did an update of the gles tree and that got past the previous error, but now I've hit a dbus compile error.
In file included from OMXControl.cpp:7:0: /usr/include/dbus-1.0/dbus/dbus.h:29:33: fatal error: dbus/dbus-arch-deps.h: No such file or directory compilation terminated.
Updated by Hammel over 10 years ago
- Status changed from New to In Progress
- % Done changed from 40 to 50
Fixed this with proper use of targetfs and sdkstage. But then I ran into a packaging problem. Turns out there is a bug in the dist target of the omxplayer Makefile:
cd $(DIST); tar -czf ../$(DIST).tgz *
This doesn't make any sense unless DIST is a relative directory. I'll need to patch this in my copy of the Makefile. That should be the final problem. I'll try the fix tomorrow.
Updated by Hammel over 10 years ago
- % Done changed from 50 to 70
Migrated to master branch of popcornmix repo. Verified missing library and font files are in the opkg.
Just need to test the new binary on the current distribution. If it works at all (even if with some bugs) then this issue can be closed.
Updated by Hammel over 10 years ago
- Status changed from In Progress to Closed
- % Done changed from 70 to 100
Works great on the hardware. All updates checked in an pushed upstream.
Closing issue.