Help about gstreamer h264 in buildroot
Hello,
I'm trying to play mp4 h264 video files on a RPi.
Attached there is the .config file.
When I try to play such a file I get this error:
Warning: "No decoder available for type 'video/x-h264, stream-format=(string)avc, alignment=(string)au, level=(string)4, profile=(string)main, codec_data=(buffer)014d4028ffe10016274d4028a9180f0044fcb8035010101b6c2b5ef7c04001000428de09c8, width=(int)1920, height=(int)1080, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)1/1, parsed=(boolean)true'."
Error: "Your GStreamer installation is missing a plug-in."
Anyway I selected (and checked with gst-inspect) the x264parse plugin (from bad- ones).
After a search on the web it seems I need also the gst-ffmpeg but this requires libavcodec which cannot compile:
libavcodec/arm/ac3dsp_armv6.S: Assembler messages:libavcodec/arm/ac3dsp_armv6.S:40: Error: selected processor does not support ARM mode `movw r8,#0x1fe0'
I was working on a 2014.05-git-00366-gba25b12-dirty version. I tried on a newer one (2014.08-git-00302-g712414c) but there is the same error.
What am I missing?
Thanks!
Marco
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config
Type: application/xml
Size: 53179 bytes
Desc: not available
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20140614/6604f687/attachment.wsdl>
Dear Marco Trapanese,
Quoted 7 lines · Marco Trapanese
libavcodec/arm/ac3dsp_armv6.S: Assembler messages:libavcodec/arm/ac3dsp_armv6.S:40: Error: selected processor does not support ARM mode `movw r8,#0x1fe0'I was working on a 2014.05-git-00366-gba25b12-dirty version. I tried on a newer one (2014.08-git-00302-g712414c) but there is the same error.
I tried building your configuration, and here it fails with a different issue:
.obj/qeglfshooks_pi.o: In function `QEglFSPiHooks::destroyNativeWindow(void*)':
qeglfshooks_pi.cpp:(.text+0x2c): undefined reference to vc_dispmanx_update_start' qeglfshooks_pi.cpp:(.text+0x38): undefined reference to vc_dispmanx_element_remove' qeglfshooks_pi.cpp:(.text+0x40): undefined reference to vc_dispmanx_update_submit_sync' .obj/qeglfshooks_pi.o: In function QEglFSPiHooks::platformDestroy()':
qeglfshooks_pi.cpp:(.text+0x90): undefined reference to vc_dispmanx_display_close' .obj/qeglfshooks_pi.o: In function QEglFSPiHooks::platformDisplay() const':
qeglfshooks_pi.cpp:(.text+0xa0): undefined reference to `vc_dispmanx_display_open'.obj/qeglfshooks_pi.o: In function `QEglFSPiHooks::createNativeWindow(QPlatformWindow*, QSize const&, QSurfaceFormat const&)':
qeglfshooks_pi.cpp:(.text+0x10c): undefined reference to vc_dispmanx_update_start' qeglfshooks_pi.cpp:(.text+0x15c): undefined reference to vc_dispmanx_element_add' qeglfshooks_pi.cpp:(.text+0x168): undefined reference to `vc_dispmanx_update_submit_sync'
collect2: error: ld returned 1 exit status
That's an issue with the RPi OpenGL implementation, I think we have had a couple of similar failures in the autobuilders. Maxime, Yann, any suggestion?
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
Il 14/06/2014 14:14, Thomas Petazzoni ha scritto:
Quoted 8 lines
I tried building your configuration, and here it fails with a different issue:
.obj/qeglfshooks_pi.o: In function `QEglFSPiHooks::destroyNativeWindow(void*)':
qeglfshooks_pi.cpp:(.text+0x2c): undefined reference to `vc_dispmanx_update_start' qeglfshooks_pi.cpp:(.text+0x38): undefined reference to
How is it possible?
Shouldn't the same configuration lead to the same output?
Quoted 3 lines
That's an issue with the RPi OpenGL implementation, I think we have had a couple of similar failures in the autobuilders. Maxime, Yann, any suggestion? Thomas
Well, given that this currently doesn't work in buildroot, is there another way to play an mp4/h264 video from Qt5?
Thanks!
Marco
Dear Marco Trapanese,
Quoted 8 lines · Marco Trapanese
Quoted 5 lines
.obj/qeglfshooks_pi.o: In function `QEglFSPiHooks::destroyNativeWindow(void*)':
qeglfshooks_pi.cpp:(.text+0x2c): undefined reference to `vc_dispmanx_update_start' qeglfshooks_pi.cpp:(.text+0x38): undefined reference toHow is it possible?
Shouldn't the same configuration lead to the same output?
Two possibilities:
1/ We're not using exactly the same Buildroot version, so that might
affect the build.
2/ Sometimes, the host environment has some impact on the build.
Buildroot tries to avoid this as much as possible, but the cross-compilation is never fully guaranteed from being isolated of the host machine configuration.
Quoted 6 lines
Quoted 3 lines
That's an issue with the RPi OpenGL implementation, I think we have had a couple of similar failures in the autobuilders. Maxime, Yann, any suggestion? Thomas
Well, given that this currently doesn't work in buildroot, is there another way to play an mp4/h264 video from Qt5?
I think we should rather fix the problems :)
Thanks,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
Il 15/06/2014 00:34, Thomas Petazzoni ha scritto:
Quoted 3 lines
Well, given that this currently doesn't work in buildroot, is there another way to play an mp4/h264 video from Qt5?
I think we should rather fix the problems :)
Hi Thomas,
I appreciate a lot your efforts, anyway I have to ask you any news because Thursday I must show my project and if I can't play mp4 h264 video with buildroot I have to rely on another distro.
Of course I don't request anything! It's just to know if it's easy enough to fix, otherwise I need to restart from scratch another time.
Thanks!
Marco
Dear Marco Trapanese,
Quoted 6 lines · Marco Trapanese
I appreciate a lot your efforts, anyway I have to ask you any news because Thursday I must show my project and if I can't play mp4 h264 video with buildroot I have to rely on another distro.
Of course I don't request anything! It's just to know if it's easy enough to fix, otherwise I need to restart from scratch another time.
So far, I haven't been able to look further into the problem, and I don't expect to be able to do so before your deadline on Thursday.
Hopefully, another Buildroot person can have a look and give you some insight.
Best regards,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
Il 14/06/2014 14:14, Thomas Petazzoni ha scritto:
Quoted 17 lines
I tried building your configuration, and here it fails with a different issue:
.obj/qeglfshooks_pi.o: In function `QEglFSPiHooks::destroyNativeWindow(void*)':
qeglfshooks_pi.cpp:(.text+0x2c): undefined reference tovc_dispmanx_update_start' qeglfshooks_pi.cpp:(.text+0x38): undefined reference tovc_dispmanx_element_remove' qeglfshooks_pi.cpp:(.text+0x40): undefined reference tovc_dispmanx_update_submit_sync' .obj/qeglfshooks_pi.o: In functionQEglFSPiHooks::platformDestroy()':
qeglfshooks_pi.cpp:(.text+0x90): undefined reference tovc_dispmanx_display_close' .obj/qeglfshooks_pi.o: In functionQEglFSPiHooks::platformDisplay()const':
qeglfshooks_pi.cpp:(.text+0xa0): undefined reference to `vc_dispmanx_display_open'.obj/qeglfshooks_pi.o: In function `QEglFSPiHooks::createNativeWindow(QPlatformWindow*, QSize const&, QSurfaceFormat const&)':
qeglfshooks_pi.cpp:(.text+0x10c): undefined reference tovc_dispmanx_update_start' qeglfshooks_pi.cpp:(.text+0x15c): undefined reference tovc_dispmanx_element_add' qeglfshooks_pi.cpp:(.text+0x168): undefined reference to `vc_dispmanx_update_submit_sync'
collect2: error: ld returned 1 exit status
Quoted 3 lines
That's an issue with the RPi OpenGL implementation, I think we have had a couple of similar failures in the autobuilders. Maxime, Yann, any suggestion?
Hi Thomas, after fixing the gst-ffmpeg issue thanks to Arnout Vandecappelle, I'm still trying to compile buildroot and now I'm facing the problem you reported above.
Do you confirm this doesn't work?
I'm very confused how to skip around all those bugs in order to have a functional buildroot environment.
Marco
Dear Marco Trapanese,
Quoted 3 lines · Marco Trapanese
Hi Thomas, after fixing the gst-ffmpeg issue thanks to Arnout Vandecappelle, I'm still trying to compile buildroot and now I'm facing the problem you reported above.
Weird that I didn't fall into the issue you reported originally, despite using the Buildroot configuration you provided.
Quoted 1 line
Do you confirm this doesn't work?
I don't confirm anything, it just didn't build here, with the error messages that I've posted.
Quoted 2 lines
I'm very confused how to skip around all those bugs in order to have a functional buildroot environment.
You shouldn't try to "skip around", but instead you should help us to _fix_ those issues. The support for Qt5+OpenGL is still fairly, and since there are multiple OpenGL implementation, generally one for each platform, we haven't yet tested and fixed all the possible combinations. It is thanks to bug reports provided by users like you that we can progressively fix those issues, and provide a build system that is more and more capable to build all configurations correctly out-of-the-box.
Best regards,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
Il 21/06/2014 15:04, Thomas Petazzoni ha scritto:
Quoted 2 lines
I don't confirm anything, it just didn't build here, with the error messages that I've posted.
Ok, you confirm it doesn't build there. I confirm it doesn't build here.
Quoted 8 lines
You shouldn't try to "skip around", but instead you should help us to _fix_ those issues. The support for Qt5+OpenGL is still fairly, and since there are multiple OpenGL implementation, generally one for each platform, we haven't yet tested and fixed all the possible combinations. It is thanks to bug reports provided by users like you that we can progressively fix those issues, and provide a build system that is more and more capable to build all configurations correctly out-of-the-box. Best regards, Thomas
I understand your point-of-view.
I hope you also understand the frustration of a normal user which try to configure its own embedded system.
In the website of buildroot I read:
"Is very easy to set up, thanks to its menuconfig, gconfig and xconfig configuration interfaces, familiar to all embedded Linux developers. Building a basic embedded Linux system with Buildroot typically takes 15-30 minutes."
I never had a working buildroot environment since several months! Of course I know I'm not an expert so I cannot fix the bugs by myself. I'm talking about a standard embedded systems (i.MX6 or RPi) with very common packages (Qt5, gstreamer).
I also understand no charge is required and in fact I don't expect anything from the buildroot staff! But for a user it's not an option to delay for days or weeks a project because buildroot doesn't build.
So I'm just wondering if it is possible to know which combination of kernel/buildroot version leads to a working environment with basic packages. For my current project based upon RPi I need only:
- common utility: ssh (dropbear or openssh), lighttpd, etc (no problem here!)
- Qt5 (all modules, egl platform)
- gstreamer with mp3, mp4 h264 and qtmultimedia support
By the way, I don't need Qt5.3, I could use 5.2 as well.
Best regards
Marco
Il 21/06/2014 15:23, Marco Trapanese ha scritto:
Quoted 8 lines
So I'm just wondering if it is possible to know which combination of kernel/buildroot version leads to a working environment with basic packages. For my current project based upon RPi I need only:
- common utility: ssh (dropbear or openssh), lighttpd, etc (no problem here!)
- Qt5 (all modules, egl platform)
- gstreamer with mp3, mp4 h264 and qtmultimedia support
I'm close to find a working solution.
Attached there is the current .config file.
Qt5 is working
QtMultimedia is working
gstreamer for mp3 decoding is working
I can't play only mp4 video files. GStreamer tells me there are no video sinks available.
Which buildroot package contains a gstreamer video sink that works without X (egl/gles) ?
Thanks again
Marco
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config
Type: application/xml
Size: 53785 bytes
Desc: not available
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20140621/0c4c1a5c/attachment.wsdl>
Quoted 13 lines · Marco Trapanese
Hello,
I'm trying to play mp4 h264 video files on a RPi.
Attached there is the .config file.
When I try to play such a file I get this error:Warning: "No decoder available for type 'video/x-h264, stream-format=(string)avc, alignment=(string)au, level=(string)4, profile=(string)main, codec_data=(buffer)014d4028ffe10016274d4028a9180f0044fcb8035010101b6c2b5ef7c04001000428de09c8, width=(int)1920, height=(int)1080, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)1/1, parsed=(boolean)true'."
Error: "Your GStreamer installation is missing a plug-in."
Quoted 8 lines
Anyway I selected (and checked with gst-inspect) the x264parse plugin (from bad- ones).
After a search on the web it seems I need also the gst-ffmpeg but this requires libavcodec which cannot compile:
libavcodec/arm/ac3dsp_armv6.S: Assembler messages:libavcodec/arm/ac3dsp_armv6.S:40: Error: selected processor does not support ARM mode `movw r8,#0x1fe0'
This is a bug in gst-ffmpeg's libavcodec: we explicitly pass
--enable-armv6 --disable-armv6t2
to configure, but it still uses armv6t2 instructions (movw with 16-bit immediate).
The upstream ffmpeg patch that fixes it is in
http://git.videolan.org/?p=ffmpeg.git;a=commit;h=9a83adaf346bc5e38183427b2bd11084c11d1c8b
I'll post a patch in a minute.
Regards,
Arnout
Quoted 18 lines
I was working on a 2014.05-git-00366-gba25b12-dirty version.
I tried on a newer one (2014.08-git-00302-g712414c) but there is the same error.What am I missing?
Thanks!
Marco_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F