Re: [linux-sunxi] Does anyone have interest in porting allwinner cedarx decoder to vlc player?

3,194 views
Skip to first unread message

Henrik Nordström

unread,
Oct 26, 2012, 8:13:20 AM10/26/12
to linux...@googlegroups.com
fre 2012-10-26 klockan 03:00 -0700 skrev wills:

> I am porting allwinner cedarx decoder to native vlc player(direct
> render to linuxfb, not android version), does anyone have interest in
> it?

Yes, Of course.

Don't have much time to help you however, need to spend the little time
I have available on u-boot.

Regards
Henrik


Neal Peacock

unread,
Oct 26, 2012, 8:26:31 AM10/26/12
to linux...@googlegroups.com

I am very interested.  Do you have the code posted somewhere?

On Oct 26, 2012 6:03 AM, "wills" <wills.w...@gmail.com> wrote:
Hi, All,

I am porting allwinner cedarx decoder to native vlc player(direct render to linuxfb, not android version), does anyone have interest in it?
This porting based on libcedarx(a wrapper library used libvecore, instead of libcedarv, lower level API than libcedarv).

Best Regards
WIlls

--
 
 

wills

unread,
Oct 27, 2012, 12:54:42 AM10/27/12
to linux...@googlegroups.com
I want to push it into github.
I hope more people will join the development.

BTW, how to post message into arm-n...@lists.phcomp.co.uk?
My mail seems to be filtered out.

在 2012年10月26日星期五UTC+8下午8时26分32秒,npeacock写道:

Dmitriy B.

unread,
Oct 27, 2012, 1:45:17 AM10/27/12
to linux...@googlegroups.com
BTW, how to post message into arm-n...@lists.phcomp.co.uk?
My mail seems to be filtered out.
 
Before posting you need to subscribe to the list and maybe wait for moderation approval. Anyway, you should post linux-sunxi stuff here, in this mailing list, ARM-Netbook is generic mailing list not headed just for sunxi. Afaik we did notice arm-netbook about this mailing list, so people who was interested in sunxi are already here.

Best Regards,
Dmitriy Beykun 

wills

unread,
Oct 27, 2012, 10:53:54 PM10/27/12
to linux...@googlegroups.com
I am not familiar with github.
How to fork the external office repository into github, such as vlc?
I plan to push libcedarx today. 

On Saturday, October 27, 2012 10:01:55 PM UTC+8, Tim Feng wrote:
I am interested. Have you set up on github?

wills

unread,
Oct 27, 2012, 11:08:35 PM10/27/12
to linux...@googlegroups.com

Dmitriy B.

unread,
Oct 27, 2012, 11:28:20 PM10/27/12
to linux...@googlegroups.com
Here is a good tutorial about git, I use it from time to time. http://gitready.com/

2012/10/28 wills <wills.w...@gmail.com>
--
 
 

Alejandro Mery

unread,
Oct 28, 2012, 4:24:46 AM10/28/12
to linux...@googlegroups.com

Hi,

El 28/10/2012 04:08, "wills" <wills.w...@gmail.com> escribió:
>
> https://github.com/willswang/libcedarx
>

Can you refactor that to use the lib and headers from our cedarx-libs repo as external instead? Leaving only the vlc-related code here so to avoid a maintenance and license  mess.

Thanks!
Alejandro Mery

Tim Feng

unread,
Oct 29, 2012, 8:17:01 PM10/29/12
to linux...@googlegroups.com
Hi Wills,

  Just cloned a local copy.
  Not very familiar with libcedarx yet, just get started.
  What's you plan?

Regards,
Tim

Tim Feng

unread,
Oct 30, 2012, 6:11:24 PM10/30/12
to linux...@googlegroups.com
Hi Wills,

  Checked this out:  http://linux-sunxi.org/XBMC  , in case you have not noticed ;)
  
Regards,
Tim

wills

unread,
Oct 30, 2012, 9:09:49 PM10/30/12
to linux...@googlegroups.com
Sorry, Tim,  I'm a little busy these days, i  plan on pushing the first working version in this week.

Tim Feng

unread,
Oct 31, 2012, 12:47:44 AM10/31/12
to linux...@googlegroups.com
Awesome, can't wait to give it a try.

Regards,
Tim

cnxsoft

unread,
Oct 31, 2012, 12:50:59 AM10/31/12
to linux...@googlegroups.com
--
 
 
I thought Linux based video players / media centers such as VideoLAN or XBMC on A10 could not be developed due to poor CedarX libraries. Has anything changed in this regard?
Or is it just that it can work, but it's just many video files won't be able to be played?

Alejandro Mery

unread,
Oct 31, 2012, 4:13:16 AM10/31/12
to linux...@googlegroups.com
On 31 October 2012 05:50, cnxsoft <cnx...@cnx-software.com> wrote:
> I thought Linux based video players / media centers such as VideoLAN or XBMC
> on A10 could not be developed due to poor CedarX libraries. Has anything
> changed in this regard?
> Or is it just that it can work, but it's just many video files won't be able
> to be played?

The libs aren't perfect, but empat0
<https://github.com/empatzero/xbmca10> got basic xbmc support working
without hackery and using the same old libs. It seems more coding,
reading and testing than politics, pride and whining did the trick.

We recently received debian/ubuntu armhf libs
<https://github.com/linux-sunxi/cedarx-libs>.

See <http://linux-sunxi.org/CedarX> and <http://linux-sunxi.org/XBMC>
for more details.

cheers,
Alejandro Mery

Henrik Nordström

unread,
Oct 31, 2012, 5:05:33 AM10/31/12
to linux...@googlegroups.com
ons 2012-10-31 klockan 11:50 +0700 skrev cnxsoft:

> I thought Linux based video players / media centers such as VideoLAN
> or XBMC on A10 could not be developed due to poor CedarX libraries.
> Has anything changed in this regard?

Yes, much.

The CedarX libraries are much better understood now, and more people are
working on integrating them, this time in the open, and available for
hardfloat as well.

> Or is it just that it can work, but it's just many video files won't
> be able to be played?

There is support for most formats, in addition to software decoders
there is hardware acceleration for many formats. But it's unclear which
formats works well.

Regards
Henrik

Tim Feng

unread,
Oct 31, 2012, 6:43:44 AM10/31/12
to linux...@googlegroups.com
Seems some one have already patched ffmpeg libraries for CedarX. It save tons of work since most media player utilize ffmpeg, such as VLC ;)
But I couldn't find the patched ffmpeg, does anyone knows?

Regard,
Tim

Henrik Nordström

unread,
Oct 31, 2012, 8:39:33 AM10/31/12
to linux...@googlegroups.com
ons 2012-10-31 klockan 03:43 -0700 skrev Tim Feng:
> I just come across
> this: http://comments.gmane.org/gmane.comp.hardware.netbook.arm/3454
>
> Seems some one have already patched ffmpeg libraries for CedarX.

No. That is an old discussion on what would be required to do it, not
that someone have done it.

Regards
Henrik


Tim Feng

unread,
Oct 31, 2012, 9:02:27 PM10/31/12
to linux...@googlegroups.com
In the first reply,  the guy called lkcl luck says ffmpeg done already. I am a bit confusing though.

Regards
Henrik


Henrik Nordström

unread,
Nov 1, 2012, 7:46:23 AM11/1/12
to linux...@googlegroups.com
ons 2012-10-31 klockan 18:02 -0700 skrev Tim Feng:

> In the first reply, the guy called lkcl luck says ffmpeg done
> already. I am a bit confusing though.

Confusing, but no, he did not mean that cedarx ffmpeg integration is
done already.

Regards
Henrik


wills

unread,
Nov 7, 2012, 1:36:23 AM11/7/12
to linux...@googlegroups.com
I have pushed the first work version into github.
You must build libcedarx before vlc.

https://github.com/willswang/vlc 

Tim Feng

unread,
Nov 7, 2012, 1:45:51 AM11/7/12
to linux...@googlegroups.com
Awesome ;) I will give it a try shortly.
Great work~

Dmitriy B.

unread,
Nov 7, 2012, 5:25:29 AM11/7/12
to linux...@googlegroups.com
Great work! Could you please document your progress and known stuff (how to compile, dependencies, bugs) at http://linux-sunxi.org/VLC ?

Best Regards,
Dmitriy Beykun

2012/11/7 wills <wills.w...@gmail.com>
--
 
 

wills

unread,
Nov 7, 2012, 7:30:47 AM11/7/12
to linux...@googlegroups.com
OK, i intend to do it after the next version of libcedarx.
I want to use cmake instead of autotools in next version because i can't install prebuild binary library by autotools, such as libvecore.so.
In next version, i will use libvecore.so from https://github.com/linux-sunxi/cedarx-libs.

wills

unread,
Nov 7, 2012, 7:30:47 AM11/7/12
to linux...@googlegroups.com
OK, i intend to do it after the next version of libcedarx.
I want to use cmake instead of autotools in next version because i can't install prebuild binary library by autotools, such as libvecore.so.
In next version, i will use libvecore.so from https://github.com/linux-sunxi/cedarx-libs.

On Wednesday, November 7, 2012 6:25:50 PM UTC+8, Dmitriy B. wrote:

wills

unread,
Nov 7, 2012, 7:53:11 AM11/7/12
to linux...@googlegroups.com
You need run "automake -a -c" to generate configure script and  specify "--host=arm-linux-gnueabi" option to configure cross-compiling in this version.
I use ubuntu 12.04, the cross toolchains was install by "apt-get install gcc-arm-linux-gnueabi".
The following is decoder status in this version:
MPEG1/2/4 VP8 VC1 H263 XVID FLV H264 can decode
AVS/MJPEG not test
REALVIDEO not work

Dmitriy B.

unread,
Nov 8, 2012, 5:25:43 AM11/8/12
to linux...@googlegroups.com
Please, move to armhf (arm hard float) target rootfs and cross compiling toolchain, we have armhf Mali-400 libraries and armhf CedarX libraries, so nothing limits us to armel (arm soft float) anymore.
I will create the page at wiki for this info, if it is working well, I think this should eventually became default player for A10 boards. Thanks for your work!

Best Regards,
Dmitriy Beykun

2012/11/7 wills <wills.w...@gmail.com>
--
 
 

Dmitriy B.

unread,
Nov 8, 2012, 6:55:04 AM11/8/12
to linux...@googlegroups.com
Unfortunatelly, that doesnt work well.
First run was with AC_DEPLIBS_CHECK_METHOD, I've commented it out and run second time.

And this happens when I'm trying to do the standard autoreconf -vi: http://pastebin.com/a9zRRP76

Please, git clone your own repos, step-by-step do the compilation and write down your command history. Then everybody could do the same and test your work.

Best Regards,
Dmitriy Beykun

2012/11/7 wills <wills.w...@gmail.com>
--
 
 

wills

unread,
Nov 8, 2012, 8:11:36 AM11/8/12
to linux...@googlegroups.com
I have submitted autogen.sh script for generating configure file. 

Dmitriy B.

unread,
Nov 8, 2012, 8:31:22 AM11/8/12
to linux...@googlegroups.com
Thanks, libcedarx compiles now, but where in VLC tree libcedarx should be? I keep getting 
configure: error: "Could not find Cedar development headers"
I've tried to put libcedarx/ in vlc compilation directory, src/, include/ and in my /usr/include
Nothing of these make configure see the headers. (I know that this is extremely dumb question and I probably miss something obvious).

2012/11/8 wills <wills.w...@gmail.com>
--
 
 

Tim Feng

unread,
Nov 8, 2012, 5:24:08 PM11/8/12
to linux...@googlegroups.com
+1, I'm getting the same error message.

wills

unread,
Nov 8, 2012, 7:56:10 PM11/8/12
to linux...@googlegroups.com
You need type "make install" to install lincedarx header.
Vlc' compiling need this header.

wills

unread,
Nov 8, 2012, 8:07:49 PM11/8/12
to linux...@googlegroups.com
The header was installed into folder specified by "--prefix" option when configuration.
Example:
./configure --host=arm-linux-gnueabi --prefix=${PWD}/install
make
make install
ls  ${PWD}/install

Wills Wang

unread,
Nov 8, 2012, 11:25:06 PM11/8/12
to linux...@googlegroups.com
I have completed this page http://linux-sunxi.org/VLC#Compilation 

2012/11/9 wills <wills.w...@gmail.com>
--
 
 

Tim Feng

unread,
Nov 8, 2012, 11:29:41 PM11/8/12
to linux...@googlegroups.com
Thanks Wills.
While I am execute vlc ./configure, i have to specifically disable a few modules/features:
    --disable-mad --disable-postproc --disable-a52
Then I got:
  No package 'xcb-composite' found
I think i have a few packages missing. Working on it ;)

Regards,
Tim

Tim Feng

unread,
Nov 9, 2012, 1:32:22 AM11/9/12
to linux...@googlegroups.com
After installed couple packages, ./configure works for me:
  sudo apt-get install libxcb-composite0-dev libxcb-xv0-dev

Although I have to disable a few moduels/features:
 ./configure --host=arm-linux-gnueabi --disable-mad --disable-postproc --disable-a52  --disable-qt4 --disable-skins2 --disable-libgcrypt --enable-cedar --prefix=${PWD}/install

During the compiling, it complained about zlib.h, zconf.h missing, as well as libdbus-1.so. I copied them from my arm rootfs to corresponding folders in /usr/arm-linux-gnueabi/, then it went through.

Then I got:

avio.c:76:5: error: unknown type name 'URLContext'
avio.c:80:5: error: unknown type name 'URLContext'
avio.c:86:5: warning: "LIBAVFORMAT_VERSION_MAJOR" is not defined [-Wundef]
avio.c: In function 'SetupAvioCb':

looks like some kind of ffmpeg related issue. 

Regards,
Tim

Dmitriy B.

unread,
Nov 9, 2012, 2:08:03 PM11/9/12
to linux...@googlegroups.com
Thank you, I was able to test and compile everything on armel rootfs, but for armhf using libcedarxalloc.a is really not going to happen. It was replaced with https://github.com/linux-sunxi/cedarx-libs/tree/master/libcedarv/linux-armhf/adapter/avheap (also one more blob gone opensource and readable). Please, convert your work for armhf and use our cedarx sources, they seem to be newer than armel and also will totally be faster. For many users Linaro is default rootfs and it is armhf. Our new sunxi-bsp will probably produce armhf image too.

Anyway, thanks for your work!

Best Regards,
Dmitriy Beykun

2012/11/9 Wills Wang <wills.w...@gmail.com>
--
 
 

Dmitriy B.

unread,
Nov 9, 2012, 2:08:46 PM11/9/12
to linux...@googlegroups.com
Try:
apt-get build-dep vlc

2012/11/9 Tim Feng <uce...@gmail.com>
--
 
 

Jari Helaakoski

unread,
Nov 9, 2012, 2:44:28 PM11/9/12
to linux...@googlegroups.com


2012/11/9 Dmitriy B. <rzk...@gmail.com>

Thank you, I was able to test and compile everything on armel rootfs, but for armhf using libcedarxalloc.a is really not going to happen. It was replaced with https://github.com/linux-sunxi/cedarx-libs/tree/master/libcedarv/linux-armhf/adapter/avheap (also one more blob gone opensource and readable). Please, convert your work for armhf and use our cedarx sources, they seem to be newer than armel and also will totally be faster. For many users Linaro is default rootfs and it is armhf. Our new sunxi-bsp will probably produce armhf image too.
sunxi-bsp livesuit image support is currently WIP and also untested. I'll hope we verify functionality during this weekend.

wills

unread,
Nov 10, 2012, 7:41:47 AM11/10/12
to linux...@googlegroups.com
Now, armhf is available.

Dmitriy B.

unread,
Nov 10, 2012, 7:25:38 PM11/10/12
to linux...@googlegroups.com
Cool, thanks, but now there's an error:

 COMPILE : libcedar_plugin_la-cedar.lo
cedar.c: In function 'OpenDecoder':
ERROR   : cedar.c:270: 11:  'decoder_sys_t' has no member named 'data'
ERROR   : cedar.c:270: 26:  'decoder_sys_t' has no member named 'data_size'
ERROR   : cedar.c:271: 13:  'decoder_sys_t' has no member named 'data'
cedar.c: In function 'DecodeBlock':
WARNING : cedar.c:375: 38:  assignment makes pointer from integer without a cast [enabled by default]
WARNING : cedar.c:376: 38:  assignment from incompatible pointer type [enabled by default]
make: *** [all] Error 2
Its in the 'out:' marker and the logic is freeing memory and then freeing whole structure, I've commented it out for a successfull build, not a good idea, I know.

2012/11/10 wills <wills.w...@gmail.com>
--
 
 

Dmitriy B.

unread,
Nov 10, 2012, 9:07:50 PM11/10/12
to linux...@googlegroups.com
I've finally compiled it and have http://pastebin.com/JW4H0hW7 in logs, any ideas?

2012/11/10 wills <wills.w...@gmail.com>
--
 
 

wills

unread,
Nov 10, 2012, 10:29:36 PM11/10/12
to linux...@googlegroups.com
I have fix it up.
The two was add for realvideo decoding, but it not work, i don't submit this part.

wills

unread,
Nov 10, 2012, 10:52:03 PM11/10/12
to linux...@googlegroups.com
libve_close was defined by libvecore.so,  i have add  the building dependence for this lib
I have submit a path, pls update and try again.

Dmitriy B.

unread,
Nov 11, 2012, 12:49:36 PM11/11/12
to linux...@googlegroups.com
Are you completely sure that you've pushed everything to your github? Because even having successfull build I have this: http://pastebin.com/9j2AZbwb

[0xf2e1f8] main video output debug: Deinterlacing available
[0xf2e1f8] main video output debug: deinterlace 0, mode blend, is_needed 0
[0xf2e1f8] main video output debug: Opening vout display wrapper
[0x426447f8] main vout display debug: looking for vout display module: 1 candidate
[0x426447f8] main vout display debug: no vout display module matching "cedarfb" could be loaded
[0x426447f8] main vout display debug: TIMER module_need() : 2.908 ms - Total 2.908 ms / 1 intvls (Avg 2.908 ms)

How do I debug cedar output? So basically cedar (decoder?) plugin loads up, but cedarfb (video output?) dont. I use Linaro latest, tried using both xf86-video-mali and plain fbdev. My build is --enable-cedar, --enable-egl, --enable-neon. I will try to recompile everything from scratch now just to be sure that I didnt do something wrong.

2012/11/11 wills <wills.w...@gmail.com>
--
 
 

wills

unread,
Nov 11, 2012, 9:22:52 PM11/11/12
to linux...@googlegroups.com
Pls check
1,{vlc source}/modules/video_out/cedarfb.c was compiled
2,libcedarfb.so exist in  {target rootfs}/usr/lib/vlc/plugins/video_out 

wills

unread,
Nov 11, 2012, 9:32:10 PM11/11/12
to linux...@googlegroups.com
You should run "cvlc --demux ffmpeg --codec cedar --vout cedarfb --no-osd {media file}".
The picture format from cedar decoder isn't YUV420,  VLC cann't process it, so you must specify "--no-osd" option to avoid doing these. 

Dmitriy B.

unread,
Nov 12, 2012, 5:35:51 AM11/12/12
to linux...@googlegroups.com
Yes, I have libcedarfb_plugin.la/libcedarfb_plugin_la-cedarfb.lo and /usr/lib/vlc/plugins/video_output/libcedarfb_plugin.so

2012/11/12 wills <wills.w...@gmail.com>

You should run "cvlc --demux ffmpeg --codec cedar --vout cedarfb --no-osd {media file}".
The picture format from cedar decoder isn't YUV420,  VLC cann't process it, so you must specify "--no-osd" option to avoid doing these. 
 
I've tried this too, still same YUV convertions happen even with --no-osd. http://pastebin.com/iE0jTzqm - avi file, http://pastebin.com/5gUwyw0R x264 .mkv

Wills Wang

unread,
Nov 12, 2012, 6:45:09 AM11/12/12
to linux...@googlegroups.com
Do you have this device file “/dev/disp“?
You can add same printouts in cedarfb.c and libcedarx.c
This status look like display initialization failure.

2012/11/12 Dmitriy B. <rzk...@gmail.com>

--
 
 

Dmitriy B.

unread,
Nov 12, 2012, 7:12:30 AM11/12/12
to linux...@googlegroups.com
Yes, of course I have, X11 runs fine both with FBDEV and xf86-video-mali. My resolution is 1080p VGA, I set it in script.bin.

Might be that you are using older kernel before libv changed a lot of stuff in /dev/disp, check http://linux-sunxi.org/Sunxi_disp_driver and drv_display.h is now https://github.com/linux-sunxi/linux-sunxi/blob/sunxi-3.0/include/video/sunxi_disp_ioctl.h You should not rely on /dev/disp anyway because it will vanish at some point. Having such device is not a "linux way", everything will be replaced.

Also, is it possible to use CedarX as a codec only? We can show picture with X11/SDL/EGL outputs that might work (first two work fine in default VLC), if CedarFB relies on /dev/disp too much because of the default Cedar implementation from allwinner sources, we should fix that.

Best Regards,
Dmitriy Beykun


2012/11/12 Wills Wang <wills.w...@gmail.com>
--
 
 

Wills Wang

unread,
Nov 12, 2012, 7:51:45 AM11/12/12
to linux...@googlegroups.com
How many screens(dual or single) and layers(FBDEV) was used in you target board?
Dose FBDEV use scaler mode?
Libcedarx need request a scalable layer, but A10 just have two scaler pipe.


2012/11/12 Dmitriy B. <rzk...@gmail.com>
Yes, of course I have, X11 runs fine both with FBDEV and xf86-video-mali. My resolution is 1080p VGA, I set it in script.bin.

Might be that you are using older kernel before libv changed a lot of stuff in /dev/disp, check http://linux-sunxi.org/Sunxi_disp_driver and drv_display.h is now https://github.com/linux-sunxi/linux-sunxi/blob/sunxi-3.0/include/video/sunxi_disp_ioctl.h You should not rely on /dev/disp anyway because it will vanish at some point. Having such device is not a "linux way", everything will be replaced.

Also, is it possible to use CedarX as a codec only? We can show picture with X11/SDL/EGL outputs that might work (first two work fine in default VLC), if CedarFB relies on /dev/disp too much because of the default Cedar implementation from allwinner sources, we should fix that.

Best Regards,
Dmitriy Beykun


2012/11/12 Wills Wang <wills.w...@gmail.com>
Do you have this device file “/dev/disp“?
You can add same printouts in cedarfb.c and libcedarx.c
This status look like display initialization failure.

2012/11/12 Dmitriy B. <rzk...@gmail.com>
Yes, I have libcedarfb_plugin.la/libcedarfb_plugin_la-cedarfb.lo and /usr/lib/vlc/plugins/video_output/libcedarfb_plugin.so

2012/11/12 wills <wills.w...@gmail.com>
You should run "cvlc --demux ffmpeg --codec cedar --vout cedarfb --no-osd {media file}".
The picture format from cedar decoder isn't YUV420,  VLC cann't process it, so you must specify "--no-osd" option to avoid doing these. 
 
I've tried this too, still same YUV convertions happen even with --no-osd. http://pastebin.com/iE0jTzqm - avi file, http://pastebin.com/5gUwyw0R x264 .mkv

--
 
 

--
 
 

--
 
 

Wills Wang

unread,
Nov 12, 2012, 7:55:02 AM11/12/12
to linux...@googlegroups.com
Can you disable "fb0_scaler_mode_enable/fb1_scaler_mode_enable" in script.fex?

2012/11/12 Wills Wang <wills.w...@gmail.com>

Dmitriy B.

unread,
Nov 12, 2012, 9:46:02 AM11/12/12
to linux...@googlegroups.com
Here is my disp section from script.bin http://pastebin.com/auE5P5bE
I will try to disable scaler mode on both fb's.

2012/11/12 Wills Wang <wills.w...@gmail.com>
--
 
 

Dmitriy B.

unread,
Nov 12, 2012, 10:08:23 AM11/12/12
to linux...@googlegroups.com
I've tried, no effect, still same fault. Could you please download linaro-alip and install it on sdcard and compile your VLC there?
Also I have lots of tearing on any refresh of my screen when scaler is disabled, looks like screen memory filling is now software and done in blocks of around 300 pixels.

And also, can anyone with Linaro help us here to confirm the issue? Knowing myself, I still might doing something wrong.

Best Regards,
Dmitriy Beykun

2012/11/12 Dmitriy B. <rzk...@gmail.com>

Jari Helaakoski

unread,
Nov 12, 2012, 3:46:35 PM11/12/12
to linux...@googlegroups.com


2012/11/12 Dmitriy B. <rzk...@gmail.com>

I've tried, no effect, still same fault. Could you please download linaro-alip and install it on sdcard and compile your VLC there?
Also I have lots of tearing on any refresh of my screen when scaler is disabled, looks like screen memory filling is now software and done in blocks of around 300 pixels.

Dmitriy B.

unread,
Nov 13, 2012, 8:40:33 AM11/13/12
to linux...@googlegroups.com
Oh god, I've found why cedarfb was failing for me.
/dev/cedar_dev and /dev/disp both must be accesible by the user, I thought only first one is needed. I've updated wiki page too

My benchmarks:
35% cpu at 720p x264/aac .mkv
90% cpu at 1080p VQ1 blu ray rip with multichannel sound.

Best Regards,
Dmitriy Beykun

2012/11/13 Jari Helaakoski <tek...@gmail.com>

--
 
 

wills

unread,
Nov 13, 2012, 9:32:04 AM11/13/12
to linux...@googlegroups.com
In my platform
15% CPU at 1080p MPEG2 mpg
8% CPU at 720p H264 mkv

wills

unread,
Nov 13, 2012, 9:53:40 AM11/13/12
to linux...@googlegroups.com
About your question:
1.Is fb0_scaler_mode_enable/fb1_scaler_mode_enable needs to be disabled for cedarfb?
  Video rendering need a scalable layer because of different video resolution.
2.No output modules support apart from cedarfb which uses raw framebuffer access (not compatible with xf86-video-mali and any other driver/device that wants to write raw at the same moment).
  The picture format of cedar output is private, other display back-end can't process this format, we must use scaler engine from A10 display unit.
3.No support for GUI of the VLC, only command line VLC is supported
  As above, you have no way to render picture into the UI widget buffer.
4.1080p and such movies with high bitrate sometimes buffer too slow and frames are dropping.
  Need test and fixup.
5.No support for OSD because of lack of YUV420
  As above, because of private pixel format, you can't overlay anything into picture.

wills

unread,
Nov 13, 2012, 10:01:36 AM11/13/12
to linux...@googlegroups.com
Vlc have some bugs about CPU occupancy,  you can remove the audio  plugin "resample" or disable  this  plugin when compiling.

Dmitriy B.

unread,
Nov 13, 2012, 10:08:44 AM11/13/12
to linux...@googlegroups.com
So there is no way to write decoder from CedarX output to something more usual and feed this to, for example, X11 window? 

VLC has wide range of output modules (xcb, x11, xvideo, SDL, GLX, EGL, direct framebuffer access, file output), we can even implement something like null output framebuffer, draw it offscreen, capture it and send into GUI with scaling done software. Sounds horrible, though, but thats only first idea.

2012/11/13 wills <wills.w...@gmail.com>
--
 
 

Dmitriy B.

unread,
Nov 13, 2012, 10:09:52 AM11/13/12
to linux...@googlegroups.com
Yeah my VQ1 movies are from my friends HDD from 5.1 home theatre, might be VLC is going hard decoding all 6 channels and resampling them to our ALSA outputs. Need to check that.

2012/11/13 Dmitriy B. <rzk...@gmail.com>

Dmitriy B.

unread,
Nov 13, 2012, 10:16:32 AM11/13/12
to linux...@googlegroups.com
XBMC (http://linux-sunxi.org/XBMC) can use CedarX and draw On-Screen Display without problems, they even have EGL acceleration of drawing the GUI planes and etc. Might be the source of solution for this problem. Sources for XBMC for A10 is available.

2012/11/13 wills <wills.w...@gmail.com>
--
 
 

wills

unread,
Nov 13, 2012, 8:42:23 PM11/13/12
to linux...@googlegroups.com
No DRI, you must do memcpy 3 times for every frame as follow, the performance is very very low, .
decoder----------->scaler ----------- >video out(widget buffer) ----------- >FBDEV
           hw dma           sw copy                                    sw copy
In current source, the follow like this:
decoder -----------> FBDEV  
           pointer handle 
In this way, it isn't possible for decoding 1080P smoothly.
Actually, Xf86-video-mali just work on FBDEV, no any hardware acceleration.
If video out can do DRI, like this
decoder -----------> scaler ----------- >video out(widget buffer)-----------> FBDEV  
           hw dma            pointer handle                           pointer handle 
I think it is meaningful to do convertion.

wills

unread,
Nov 13, 2012, 8:48:52 PM11/13/12
to linux...@googlegroups.com, lops...@gmail.com
Do you use this code base?

On Wednesday, November 14, 2012 2:43:54 AM UTC+8, lops...@gmail.com wrote:
El viernes, 26 de octubre de 2012 12:00:35 UTC+2, wills  escribió:
> Hi, All,
>
>
> I am porting allwinner cedarx decoder to native vlc player(direct render to linuxfb, not android version), does anyone have interest in it?
> This porting based on libcedarx(a wrapper library used libvecore, instead of libcedarv, lower level API than libcedarv).
>
>
> Best Regards
> WIlls

Great!

I really worked perfectly.
Does anyone know if there is a port for gstreamer?

Thanks!!!

Dmitriy B.

unread,
Nov 14, 2012, 11:51:23 AM11/14/12
to linux...@googlegroups.com
Yes, xf86-video-mali does DRI/DRI2 rendering and thats what it is wrote for. Just render the output from Mali libraries and place it to FBDEV. Check https://github.com/linux-sunxi/xf86-video-mali for "ready to go" version. Be aware that this driver is really is not in the best condition in terms of code quality, it is done with old X11 API and is compatible with xservers only up to 1.12.x, 1.13.x changed the API and many stuff behind rendering driver to just segfault trying to call the fbdev module. This means that Gentoo and ArchLinux-ARM guys are out of the loop for now.

Also looks like thats how it is done in XBMC, they render CedarX output to 2D texture and show it using EGL. Check https://github.com/rellla/xbmca10/blob/master/xbmc/cores/VideoRenderers/LinuxRendererA10.cpp for details.

About the pixel format conversions, there is a bunch of conversions ported to NEON https://github.com/willswang/vlc/tree/master/modules/arm_neon, can we use them? Looks like in XBMC only yuv2rgb is used.

2012/11/14 wills <wills.w...@gmail.com>

martin brook

unread,
Nov 14, 2012, 5:51:37 PM11/14/12
to linux...@googlegroups.com
Dmitry Hi,

1.13 is working fine for me with the patch below on mele a1000

http://www.youtube.com/watch?v=TWFvkZniHZc

BR

vgrade


diff --git a/src/mali_fbdev.c b/src/mali_fbdev.c
index 4a3ec1f..73e984d 100644
--- a/src/mali_fbdev.c
+++ b/src/mali_fbdev.c
@@ -58,8 +58,8 @@ static const OptionInfoRec *
MaliAvailableOptions(int chipid, int busid);
static void MaliIdentify(int flags);
static Bool MaliProbe(DriverPtr drv, int flags);
static Bool MaliPreInit(ScrnInfoPtr pScrn, int flags);
-static Bool MaliScreenInit(int Index, ScreenPtr pScreen, int argc,
char **argv);
-static Bool MaliCloseScreen(int scrnIndex, ScreenPtr pScreen);
+static Bool MaliScreenInit(ScreenPtr pScreen, int argc, char **argv);
+static Bool MaliCloseScreen(ScreenPtr pScreen);

static int pix24bpp = 0;
static int malihwPrivateIndex = -1;
@@ -1056,9 +1056,9 @@ static Bool MaliPreInit(ScrnInfoPtr pScrn, int flags)
}


-static Bool MaliScreenInit(int scrnIndex, ScreenPtr pScreen, int
argc, char **argv)
+static Bool MaliScreenInit(ScreenPtr pScreen, int argc, char **argv)
{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
MaliPtr fPtr = MALIPTR(pScrn);
VisualPtr visual;
int init_picture = 0;
@@ -1084,12 +1084,12 @@ static Bool MaliScreenInit(int scrnIndex,
ScreenPtr pScreen, int argc, char **ar
fPtr->dri_render = DRI_2;
fPtr->dri_open = TRUE;
}
- else xf86DrvMsg(scrnIndex,X_ERROR,"DRI2 initialization failed\n");
+ else xf86DrvMsg(pScrn->scrnIndex,X_ERROR,"DRI2 initialization failed\n");
}

if (NULL == (fPtr->fbmem = MaliHWMapVidmem(pScrn)))
{
- xf86DrvMsg(scrnIndex,X_ERROR,"mapping of video memory failed\n");
+ xf86DrvMsg(pScrn->scrnIndex,X_ERROR,"mapping of video memory failed\n");
return FALSE;
}
fPtr->fboff = MaliHWLinearOffset(pScrn);
@@ -1098,11 +1098,11 @@ static Bool MaliScreenInit(int scrnIndex,
ScreenPtr pScreen, int argc, char **ar

if (!MaliHWModeInit(pScrn, pScrn->currentMode))
{
- xf86DrvMsg(scrnIndex,X_ERROR,"mode initialization failed\n");
+ xf86DrvMsg(pScrn->scrnIndex,X_ERROR,"mode initialization failed\n");
return FALSE;
}
MaliHWSaveScreen(pScreen, SCREEN_SAVER_ON);
- MaliHWAdjustFrame(scrnIndex,0,0,0);
+ MaliHWAdjustFrame(pScrn->scrnIndex,0,0,0);

/* mi layer */
miClearVisualTypes();
@@ -1110,7 +1110,7 @@ static Bool MaliScreenInit(int scrnIndex,
ScreenPtr pScreen, int argc, char **ar
{
if (!miSetVisualTypes(pScrn->depth, TrueColorMask, pScrn->rgbBits,
TrueColor))
{
- xf86DrvMsg(scrnIndex,X_ERROR,"visual type setup failed for %d bits
per pixel [1]\n", pScrn->bitsPerPixel);
+ xf86DrvMsg(pScrn->scrnIndex,X_ERROR,"visual type setup failed for
%d bits per pixel [1]\n", pScrn->bitsPerPixel);
return FALSE;
}
}
@@ -1118,13 +1118,13 @@ static Bool MaliScreenInit(int scrnIndex,
ScreenPtr pScreen, int argc, char **ar
{
if (!miSetVisualTypes(pScrn->depth,
miGetDefaultVisualMask(pScrn->depth), pScrn->rgbBits,
pScrn->defaultVisual))
{
- xf86DrvMsg(scrnIndex,X_ERROR,"visual type setup failed for %d bits
per pixel [2]\n", pScrn->bitsPerPixel);
+ xf86DrvMsg(pScrn->scrnIndex,X_ERROR,"visual type setup failed for
%d bits per pixel [2]\n", pScrn->bitsPerPixel);
return FALSE;
}
}
if (!miSetPixmapDepths())
{
- xf86DrvMsg(scrnIndex,X_ERROR,"pixmap depth setup failed\n");
+ xf86DrvMsg(pScrn->scrnIndex,X_ERROR,"pixmap depth setup failed\n");
return FALSE;
}

@@ -1192,7 +1192,7 @@ static Bool MaliScreenInit(int scrnIndex,
ScreenPtr pScreen, int argc, char **ar

if (!miCreateDefColormap(pScreen))
{
- xf86DrvMsg(scrnIndex, X_ERROR,
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
"internal error: miCreateDefColormap failed in
FBDevScreenInit()\n");
return FALSE;
}
@@ -1232,9 +1232,9 @@ static Bool MaliScreenInit(int scrnIndex,
ScreenPtr pScreen, int argc, char **ar
return TRUE;
}

-static Bool MaliCloseScreen(int scrnIndex, ScreenPtr pScreen)
+static Bool MaliCloseScreen(ScreenPtr pScreen)
{
- ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
MaliPtr fPtr = MALIPTR(pScrn);

TRACE_ENTER();
@@ -1246,7 +1246,7 @@ static Bool MaliCloseScreen(int scrnIndex,
ScreenPtr pScreen)
pScreen->CreateScreenResources = fPtr->CreateScreenResources;
pScreen->CloseScreen = fPtr->CloseScreen;

- (*pScreen->CloseScreen)(scrnIndex, pScreen);
+ (*pScreen->CloseScreen)(pScreen);

if ( fPtr->dri_open && fPtr->dri_render == DRI_2 )
{
> --
>
>

Dmitriy B.

unread,
Nov 14, 2012, 6:01:05 PM11/14/12
to linux...@googlegroups.com
Awesome! Please form a pull req. to this repo https://github.com/rzk/xf86-video-mali/commits/r3p0-04rel0 or send a proper git patch to this mailing list.
This is my "development" repo, main linux-sunxi's will recieve this soon after I will have some free time and figure out how to detect API change (#ifdef xorg > 1.12+ probably)

If you can fix compilation for both Linaro's 1.12 and current 1.13 yourself, we can push this to linux-sunxi's repos directly.

Best Regards,
Dmitriy Beykun

2012/11/15 martin brook <martin....@googlemail.com>
--



Dmitriy B.

unread,
Nov 19, 2012, 4:34:37 PM11/19/12
to linux...@googlegroups.com
Interesting, are you sure that you have complete working xserver setup? Looks like you have libexa missing or you need to LD_PRELOAD it. 
I had mali loading with ArchLinux-ARM, but it segfault in libfb.so because I didnt fix all pScreen stuff that changed between 1.12 and 1.13.

2012/11/20 <vishnu...@gmail.com>
On Wednesday, November 14, 2012 5:55:09 PM UTC-5, martin brook wrote:
> Dmitry Hi,
>
>
>
> 1.13 is working fine for me with the patch below on mele a1000
>

Hi Martin,

I applied the patch and managed to build against Xorg 1.13 but I'm unable to load the driver when I attempt to start X with an unresolved symbol - exaDriverAlloc

[445141.330] (II) LoadModule: "mali"
[445141.330] (II) Loading /usr/lib/xorg/modules/drivers/mali_drv.so
[445141.341] (EE) Failed to load /usr/lib/xorg/modules/drivers/mali_drv.so: /usr/lib/xorg/modules/drivers/mali_drv.so: undefined symbol: exaDriverAlloc
[445141.341] (II) UnloadModule: "mali"
[445141.342] (II) Unloading mali
[445141.342] (EE) Failed to load module "mali" (loader failed, 7)
[445141.342] (EE) No drivers available.

Any thoughts?

Thanks,
Vishnu

Full Xorg.1.log below:
X.Org X Server 1.13.0
Release Date: 2012-09-05
[445141.317] X Protocol Version 11, Revision 0
[445141.318] Build Operating System: Linux 3.6.6-gentoo x86_64 Gentoo
[445141.318] Current Operating System: Linux mele 3.0.42+ #24 Mon Nov 19 11:50:20 EST 2012 armv7l
[445141.318] Kernel command line: console=ttyS0,115200 root=/dev/sda3 loglevel=8 panic=10 rootwait rootfstype=ext4 console=tty0
[445141.319] Build Date: 19 November 2012  12:15:16AM
[445141.319]
[445141.319] Current version of pixman: 0.28.0
[445141.319]    Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
[445141.320] Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[445141.321] (==) Log file: "/var/log/Xorg.1.log", Time: Mon Nov 19 16:17:19 2012
[445141.322] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[445141.323] (==) No Layout section.  Using the first Screen section.
[445141.323] (**) |-->Screen "Mali Screen" (0)
[445141.323] (**) |   |-->Monitor "<default monitor>"
[445141.323] (**) |   |-->Device "Mali FBDEV"
[445141.323] (==) No monitor specified for screen "Mali Screen".
        Using a default monitor configuration.
[445141.324] (==) Automatically adding devices
[445141.324] (==) Automatically enabling devices
[445141.324] (==) Automatically adding GPU devices
[445141.324] (WW) The directory "/usr/share/fonts/TTF/" does not exist.
[445141.324]    Entry deleted from font path.
[445141.324] (WW) The directory "/usr/share/fonts/OTF/" does not exist.
[445141.324]    Entry deleted from font path.
[445141.324] (WW) The directory "/usr/share/fonts/Type1/" does not exist.
[445141.324]    Entry deleted from font path.
[445141.324] (WW) `fonts.dir' not found (or not valid) in "/usr/share/fonts/100dpi/".
[445141.324]    Entry deleted from font path.
[445141.324]    (Run 'mkfontdir' on "/usr/share/fonts/100dpi/").
[445141.324] (WW) `fonts.dir' not found (or not valid) in "/usr/share/fonts/75dpi/".
[445141.324]    Entry deleted from font path.
[445141.324]    (Run 'mkfontdir' on "/usr/share/fonts/75dpi/").
[445141.324] (==) FontPath set to:
        /usr/share/fonts/misc/
[445141.324] (==) ModulePath set to "/usr/lib/xorg/modules"
[445141.324] (II) The server relies on udev to provide the list of input devices.
        If no devices become available, reconfigure udev or disable AutoAddDevices.
[445141.324] (II) Loader magic: 0x402e7e38
[445141.324] (II) Module ABI versions:
[445141.324]    X.Org ANSI C Emulation: 0.4
[445141.325]    X.Org Video Driver: 13.0
[445141.325]    X.Org XInput driver : 18.0
[445141.325]    X.Org Server Extension : 7.0
[445141.326] (II) config/udev: Adding drm device (/dev/dri/card0)
[445141.326] (II) config/udev: Adding drm device (/dev/dri/card1)
[445141.326] Initializing built-in extension Generic Event Extension
[445141.326] Initializing built-in extension SHAPE
[445141.327] Initializing built-in extension MIT-SHM
[445141.327] Initializing built-in extension XInputExtension
[445141.327] Initializing built-in extension XTEST
[445141.327] Initializing built-in extension BIG-REQUESTS
[445141.327] Initializing built-in extension SYNC
[445141.327] Initializing built-in extension XKEYBOARD
[445141.327] Initializing built-in extension XC-MISC
[445141.327] Initializing built-in extension XINERAMA
[445141.327] Initializing built-in extension XFIXES
[445141.327] Initializing built-in extension RENDER
[445141.327] Initializing built-in extension RANDR
[445141.327] Initializing built-in extension COMPOSITE
[445141.327] Initializing built-in extension DAMAGE
[445141.327] Initializing built-in extension MIT-SCREEN-SAVER
[445141.327] Initializing built-in extension DOUBLE-BUFFER
[445141.327] Initializing built-in extension RECORD
[445141.327] Initializing built-in extension DPMS
[445141.328] Initializing built-in extension X-Resource
[445141.328] Initializing built-in extension XVideo
[445141.328] Initializing built-in extension XVideo-MotionCompensation
[445141.328] Initializing built-in extension XFree86-VidModeExtension
[445141.328] Initializing built-in extension XFree86-DGA
[445141.328] Initializing built-in extension XFree86-DRI
[445141.328] Initializing built-in extension DRI2
[445141.328] (II) LoadModule: "glx"
[445141.329] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[445141.330] (II) Module glx: vendor="X.Org Foundation"
[445141.330]    compiled for 1.13.0, module version = 1.0.0
[445141.330]    ABI class: X.Org Server Extension, version 7.0
[445141.330] (==) AIGLX enabled
[445141.330] Loading extension GLX
[445141.330] (II) LoadModule: "mali"
[445141.330] (II) Loading /usr/lib/xorg/modules/drivers/mali_drv.so
[445141.341] (EE) Failed to load /usr/lib/xorg/modules/drivers/mali_drv.so: /usr/lib/xorg/modules/drivers/mali_drv.so: undefined symbol: exaDriverAlloc
[445141.341] (II) UnloadModule: "mali"
[445141.342] (II) Unloading mali
[445141.342] (EE) Failed to load module "mali" (loader failed, 7)
[445141.342] (EE) No drivers available.
[445141.342]
Fatal server error:
[445141.342] no screens found
[445141.343] (EE)
Please consult the The X.Org Foundation support
         at http://wiki.x.org
 for help.
[445141.343] (EE) Please also check the log file at "/var/log/Xorg.1.log" for additional information.
[445141.344] (EE)
[445141.345] Server terminated with error (1). Closing log file.

--



martin brook

unread,
Nov 19, 2012, 4:41:38 PM11/19/12
to vishnu...@gmail.com, linux...@googlegroups.com
Vishnu Hi,

My Xorg,0,log at http://pastie.org/5403268

I'm building on mer, Xorg source packages can be found at
http://gitweb.merproject.org/gitweb/

BR

vgrade

On Mon, Nov 19, 2012 at 9:20 PM, <vishnu...@gmail.com> wrote:
> On Wednesday, November 14, 2012 5:55:09 PM UTC-5, martin brook wrote:
>> Dmitry Hi,
>>
>>
>>
>> 1.13 is working fine for me with the patch below on mele a1000
>>
>

Roman Mamedov

unread,
Nov 19, 2012, 11:11:40 PM11/19/12
to linux...@googlegroups.com, vishnu...@gmail.com, martin....@googlemail.com
On Mon, 19 Nov 2012 13:56:37 -0800 (PST)
vishnu...@gmail.com wrote:

> On Monday, November 19, 2012 4:42:18 PM UTC-5, martin brook wrote:
> > Vishnu Hi,
> >
> > My Xorg,0,log at http://pastie.org/5403268
> >
> Thanks for reminding me to use pastie for logs :)

On the development mailing lists pasting logs inline is strongly preferred for
archiving purposes, 'pastie' sites come and go, so your message will be
incomplete to someone who finds it in Google 3 years later, when that
'pastie' website is already down or has deleted/expired your pasted content.

--
With respect,
Roman

~~~~~~~~~~~~~~~~~~~~~~~~~~~
"Stallman had a printer,
with code he could not see.
So he began to tinker,
and set the software free."
signature.asc

Dmitriy B.

unread,
Nov 22, 2012, 10:28:40 PM11/22/12
to linux...@googlegroups.com
I've completed your patch with fallbacks for old versions, hopefully, this should work for Linaro, Mer and ALARM.

btw, we should start a new thread for this :/

Best Regards,
Dmitriy Beykun

2012/11/20 <vishnu...@gmail.com>
On Wednesday, November 14, 2012 5:55:09 PM UTC-5, martin brook wrote:
> Dmitry Hi,
>
>
>
> 1.13 is working fine for me with the patch below on mele a1000
>


--



Dmitriy B.

unread,
Nov 22, 2012, 10:30:32 PM11/22/12
to linux...@googlegroups.com
You dont need mali drivers for CedarX output at all, I've tested Wills VLC with plain fbdev on Linaro.

2012/11/20 <vishnu...@gmail.com>
On Monday, November 19, 2012 11:11:44 PM UTC-5, Roman Mamedov wrote:
> On the development mailing lists pasting logs inline is strongly preferred for
>
> archiving purposes, 'pastie' sites come and go, so your message will be
>
> incomplete to someone who finds it in Google 3 years later, when that
>
> 'pastie' website is already down or has deleted/expired your pasted content.
>
Balancing the ability to be informative, concise and precise without being too verbose is a fine art, but I see your point about the ephemeral nature of pasties :)

I did manage to get the driver built and working but the instructions I attempted to follow on http://linux-sunxi.org/Mali400 page will need to be updated as they didn't quite work for me when followed to the letter.

I'll post an update on what worked for me shortly and we can decide how to best to restructure the wiki page. I'll be happy to update it once we agree.

Also, should this conversation be moved to a separate thread since I feel it got hijacked by the xorg 1.13 changes needed for the xf86-video-mali driver to compile and no longer has much to do with CedarX?

That said, I am very interested in getting CedarX working with VLC as I've been trying to build a minimal distro of Gentoo for TVHeadend with a HDHomerun Prime on the Mele A2000.

--



Lonsn

unread,
Nov 29, 2012, 9:47:42 AM11/29/12
to linux...@googlegroups.com, Tim Feng
Hi,
1: I also meet with zlib,zlib.h, dbus package not found.
Copy the libz and libdbus to the arm-linux-gnueabihf toolchain lib dir
doesn't work. How can I solve it?
2: If I disable the dbus support, I meet with the
configure: error: "Could not find Cedar development headers"
./configure --host=arm-linux-gnueabihf --disable-mad --disable-postproc
--disable-a52 --disable-qt4 --disable-skins2 --disable-libgcrypt
--disable-dbus --disable-lua --enable-cedar --prefix=${PWD}/install
I have done following in libcedarx src dir:
./configure --host=arm-linux-gnueabihf --prefix=${PWD}/install
make
make install

Regards,

于 2012/11/9 14:32, Tim Feng 写道:
> After installed couple packages, ./configure works for me:
> sudo apt-get install libxcb-composite0-dev libxcb-xv0-dev
>
> Although I have to disable a few moduels/features:
> ./configure --host=arm-linux-gnueabi --disable-mad --disable-postproc
> --disable-a52 --disable-qt4 --disable-skins2 --disable-libgcrypt
> --enable-cedar --prefix=${PWD}/install
>
> During the compiling, it complained about zlib.h, zconf.h missing, as
> well as libdbus-1.so. I copied them from my arm rootfs to
> corresponding folders in /usr/arm-linux-gnueabi/, then it went through.
>
> Then I got:
>
> avio.c:76:5: error: unknown type name 'URLContext'
> avio.c:80:5: error: unknown type name 'URLContext'
> avio.c:86:5: warning: "LIBAVFORMAT_VERSION_MAJOR" is not defined [-Wundef]
> avio.c: In function 'SetupAvioCb':
>
> looks like some kind of ffmpeg related issue.
>
> Regards,
> Tim
>
> On Friday, November 9, 2012 3:29:41 PM UTC+11, Tim Feng wrote:
>
> Thanks Wills.
> While I am execute vlc ./configure, i have to specifically disable
> a few modules/features:
> --disable-mad --disable-postproc --disable-a52
> Then I got:
> No package 'xcb-composite' found
> I think i have a few packages missing. Working on it ;)
>
> Regards,
> Tim
>
> On Friday, November 9, 2012 3:25:10 PM UTC+11, wills wrote:
>
> I have completed this page
> http://linux-sunxi.org/VLC#Compilation
> <http://linux-sunxi.org/VLC#Compilation>
>
> 2012/11/9 wills <wills.w...@gmail.com>
>
> The header was installed into folder specified by
> "--prefix" option when configuration.
> Example:
>
> ./configure --host=arm-linux-gnueabi
> --prefix=${PWD}/install
> make
> make install
> ls ${PWD}/install
>
>
> On Friday, November 9, 2012 8:56:10 AM UTC+8, wills wrote:
>
> You need type "make install" to install lincedarx header.
> Vlc' compiling need this header.
>
> On Friday, November 9, 2012 6:24:08 AM UTC+8, Tim Feng
> wrote:
>
> +1, I'm getting the same error message.
>
> On Friday, November 9, 2012 12:31:45 AM UTC+11,
> Dmitriy B. wrote:
>
> Thanks, libcedarx compiles now, but where in
> VLC tree libcedarx should be? I keep getting
>
> configure: error: "Could not find Cedar
> development headers"
>
> I've tried to put libcedarx/ in vlc
> compilation directory, src/, include/ and in
> my /usr/include
> Nothing of these make configure see the
> headers. (I know that this is extremely dumb
> question and I probably miss something obvious).
>
> 2012/11/8 wills <wills.w...@gmail.com>
>
> I have submitted autogen.sh script for
> generating configure file.
>
> On Thursday, November 8, 2012 7:55:25 PM
> UTC+8, Dmitriy B. wrote:
>
> Unfortunatelly, that doesnt work well.
> http://pastebin.com/4VEwpU5v
> First run was
> with AC_DEPLIBS_CHECK_METHOD, I've
> commented it out and run second time.
>
> And this happens when I'm trying to do
> the standard autoreconf -vi:
> http://pastebin.com/a9zRRP76
> <http://pastebin.com/a9zRRP76>
>
> Please, git clone your own repos,
> step-by-step do the compilation and
> write down your command history. Then
> everybody could do the same and test
> your work.
>
> Best Regards,
> Dmitriy Beykun
>
> 2012/11/7 wills <wills.w...@gmail.com>
>
> You need run "automake -a -c" to
> generate configure script and
> specify "--host=arm-linux-gnueabi"
> option to
> configure cross-compiling in this
> version.
> I use ubuntu 12.04, the cross
> toolchains was install by "apt-get
> install gcc-arm-linux-gnueabi".
> The following is decoder status in
> this version:
> MPEG1/2/4 VP8 VC1 H263 XVID FLV
> H264 can decode
> AVS/MJPEG not test
> REALVIDEO not work
>
> On Wednesday, November 7, 2012
> 8:30:47 PM UTC+8, wills wrote:
>
> OK, i intend to do it after
> the next version of libcedarx.
> I want to use cmake instead of
> autotools in next version
> because i can't install
> prebuild binary library by
> autotools, such as libvecore.so.
> In next version, i will
> use libvecore.so from
> https://github.com/linux-sunxi/cedarx-libs
> <https://github.com/linux-sunxi/cedarx-libs>.
>
> On Wednesday, November 7, 2012
> 6:25:50 PM UTC+8, Dmitriy B.
> wrote:
>
> Great work! Could you
> please document your
> progress and known stuff
> (how to compile,
> dependencies, bugs) at
> http://linux-sunxi.org/VLC ?
>
> Best Regards,
> Dmitriy Beykun
>
> 2012/11/7 wills
> <wills.w...@gmail.com>
>
> I have pushed
> the first work
> version into github.
> You must build
> libcedarx before vlc.
>
> https://github.com/willswang/vlc
> <https://github.com/willswang/vlc>
>
> https://github.com/willswang/libcedarx
> <https://github.com/willswang/libcedarx>
>
>
>
> On Wednesday, October
> 31, 2012 9:09:49 AM
> UTC+8, wills wrote:
>
> Sorry, Tim, I'm a
> little busy these
> days, i plan on
> pushing
> the first working
> version in this week.
>
> On Wednesday,
> October 31, 2012
> 6:11:24 AM UTC+8,
> Tim Feng wrote:
>
> Hi Wills,
>
> Checked this
> out:
> http://linux-sunxi.org/XBMC
> , in case you
> have not
> noticed ;)
> Regards,
> Tim
>
> --
>
>
>
> --
>
>
>
> --
>
>
>
> --
>
>
>
> --
>
>

Wills Wang

unread,
Feb 2, 2013, 4:53:41 AM2/2/13
to linux...@googlegroups.com
You should use vlc instead of cvlc, cvlc use the dummy interface, no console.

2013/2/2 <daniel....@gmail.com>:
> Great job ! Runs smoothly. Much appreciated.
>
> One problem - no hotkeys (to pause, forward, etc) - any idea why ?
>
> I used the following configure switches
> --disable-mad --disable-postproc --disable-a52 --disable-qt4 --disable-skins2 --disable-libgcrypt
> --disable-dbus --disable-lua --enable-cedar
>
>
>
>
> On Friday, October 26, 2012 12:00:35 PM UTC+2, wills wrote:
>> Hi, All,
>>
>>
>> I am porting allwinner cedarx decoder to native vlc player(direct render to linuxfb, not android version), does anyone have interest in it?
>> This porting based on libcedarx(a wrapper library used libvecore, instead of libcedarv, lower level API than libcedarv).
>>
>>
>> Best Regards
>> WIlls
>
> --
> You received this message because you are subscribed to the Google Groups "linux-sunxi" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>

George Ioakimedes

unread,
Feb 2, 2013, 1:33:42 PM2/2/13
to linux...@googlegroups.com, daniel....@gmail.com
I recently have gotten this installed on the Cubieboard. I'm using --fullscreen on the clv line but still seeing some desktop (video is 720P playing on a 1366x768 screen). I'm trying to integrate this into an app for a kiosk so I also want to suppress messages. Is there a command line switch that I can use that I've missed?

George Ioakimedes

unread,
Feb 2, 2013, 2:34:00 PM2/2/13
to linux...@googlegroups.com, daniel....@gmail.com
should have mentioned that I'm using --quiet but I still see the max_analyze_duration_reached on 2 lines when the video is played.

George Ioakimedes

unread,
Feb 2, 2013, 5:15:54 PM2/2/13
to linux...@googlegroups.com
Thanks, I'll give that a try. I just wasn't sure how much of vlc was customized in this version. I'm trying to create a kiosk type application thought of perhaps using http interface of vlc.

In the wiki it states "No output modules support" would that mean http? I've tried a few cli switches and they aren't working but this is also the first time i've messed with this too.

George Ioakimedes

unread,
Feb 2, 2013, 5:41:28 PM2/2/13
to linux...@googlegroups.com
Yes, I also removed the --demux ffmeg swicth and 720P works well for me also (3.0.57 Linaro ALIP). With the --quiet still see the tag line "VLC media player 2.0.5 Twoflower.."

Daniel, I haven't tried YouTube, did you just access it with FF or Chromium? I'm curious if you did how you were able to change to using this vlc with the appropriate switches

On Sat, Feb 2, 2013 at 2:23 PM, <daniel....@gmail.com> wrote:
Found a workaround using rc interface & xbindkeys (attached below if anyone is interested).

Removing the "--demux ffmpeg" allows playing YouTube (720p full screen runs smoothly), MMS working well, most formats do. All and all video hardware acceleration (with CedarX VPU and VLC) @ Linaro armhf is *working* on Allwinner A10 ( ~ Cubieboard, MK802, UHost, etc).

Thank you Wills (Dimitry and sunxi guys as well).

______________
<file: vlc-rc.sh>

#!/bin/bash
# usage:
# - vlc-rc.sh add "file.mp4"
# - vlc-rc.sh stop|fastforward|rewind|pause|volup|voldown... etc

# if vlc is already running send rc command
if ps aux | grep cedarfb | grep -v grep; then
        echo "$1 $2" | nc localhost 4212
# otherwise - spawn it with the media file (use $2 because $1 is "add")
else
        vlc -I rc --rc-host=localhost:4212  --codec cedar --vout cedarfb --no-osd "$2" &
fi;


On Saturday, February 2, 2013 4:47:46 PM UTC+2, daniel....@gmail.com wrote:
> I am able to use the CLI successfully, but no hotkeys, just typing VLC commands in the CLI (which is usually not visible..)
>
> . . .
> . . .
> Command Line Interface initialized. Type `help' for help.
> > pause
> > play
> > stop
> > play
> > [0x4389e830] pulse audio output error: PulseAudio server connection failure: Connection refused
> voldown
> ( audio volume: 224 )
> > voldown
> ( audio volume: 192 )
> > voldown
> ( audio volume: 160 )
> > volup
> ( audio volume: 192 )
> > volup
> ( audio volume: 224 )
> > volup
> ( audio volume: 256 )
> > rewind

Daniel Klein

unread,
Feb 2, 2013, 7:43:00 PM2/2/13
to linux...@googlegroups.com
You can't view videos directly in the browser, but you can with VLC. 
Browsers (and any X application that hasn't been specially compiled) can't access CedarX, that leaves it with software acceleration -1fps.

Copy the link from your browser of choice and use it as VLC media-file. VLC has a built-in support for YouTube and the like (well, not really built-in, as much as I remember it's a lua script).

vlc --codec cedar --vout cedarfb --no-osd http://www.youtube.com/watch?v=yq0EmbY3XyI

As for console message try my previous post ( with </dev/null &>/dev/null & )

Daniel Klein

unread,
Feb 2, 2013, 7:58:13 PM2/2/13
to linux...@googlegroups.com
No output modules support = only direct framebuffer = only directly to your screen. You cannot decode video  using hardware processing to a window, a browser, to a different device, etc.

Seems VLC is pretty much complete and whole, it wasn't customized, but practically, in terms of features, you are limited (no GUI, no Zoom, etc, as mentioned HW accel. only through direct fullscreen rendering).

I don't know what exactly you're trying to do, but you can control VLC remotly, with your "app" (from Bash to PHP). That option is called Remote Control, RC, and you instantiate VLC as a host to receive playback commands. That's what I did with that "-I rc --rc-host=localhost:4212" switches. Hope that helps.

On Sat, Feb 2, 2013 at 10:15 PM, George Ioakimedes <georg...@gmail.com> wrote:
Thanks, I'll give that a try. I just wasn't sure how much of vlc was customized in this version. I'm trying to create a kiosk type application thought of perhaps using http interface of vlc.

In the wiki it states "No output modules support" would that mean http? I've tried a few cli switches and they aren't working but this is also the first time i've messed with this too.

--

George Ioakimedes

unread,
Feb 2, 2013, 7:58:26 PM2/2/13
to linux...@googlegroups.com
OK, I'm with you now. I thought perhaps you had somehow integrated this into the browser. I did try your ( with </dev/null &>/dev/null & ) trick but it still output the PID but maybe that's OK.

I just installed Apache and created a php script which calls a bash script for VLC. That works but I'm getting a problem with the audio and it not playing. I need to check the log files but I think it's something to do with permissions so it may be an Apache setup and nothing related to this VLC (although I need to check how it knew to use analog audio and not HDMI)

Daniel Klein

unread,
Feb 2, 2013, 8:13:22 PM2/2/13
to linux...@googlegroups.com
When I use /dev/null directly in the console indeed the PID is written, when I use it in a Bash script it doesn't. Another option is using Bash's "nohup", look for these options (spawning from bash), more of a linux/scripts/server general issues... 

George Ioakimedes

unread,
Feb 2, 2013, 11:06:25 PM2/2/13
to linux...@googlegroups.com, daniel....@gmail.com
OK I am able to run from the command line and it works well. The command I use is:

linaro@linaro-alip:~$ cvlc --aout alsa --alsa-audio-device hw:0,0  --codec cedar --vout cedarfb --no-osd --fullscreen --play-and-exit Downloads/zerodarkthirty-tlr5_h720p.mov 
VLC media player 2.0.5 Twoflower (revision b408f03)
[0x1e3b3b0] dummy interface: using the dummy interface module...
[0x1e3b7b8] main playlist: end of playlist, exiting

I can also get this to work from the command line w/o the alsa switches but I was only getting video (no audio) when I placed this command line in a script which was called from a php file running on a local Apache server. I added the alsa statements because the Apacje error log showed it couldn't open the default audio device. Here is what the log shows with the alsa switches. The video plays fine but no audio.

I'm scratching my head on this one, maybe you can see something, perhaps a permission problem of some sort??


[0x916a18] inhibit interface error: Failed to connect to the D-Bus session daemon: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
[0x916a18] main interface error: no suitable interface module
[0x917028] main interface error: no suitable interface module
[0x8770c8] main libvlc error: interface "globalhotkeys,none" initialization failed
[0x917028] dummy interface: using the dummy interface module...
ALSA lib pcm_hw.c:1401:(_snd_pcm_hw_open) Invalid value for card
[0x40704f00] alsa audio output error: cannot open ALSA device "hw:0,0": No such file or directory
[0x40704f00] main audio output error: Audio output failed
[0x40704f00] main audio output error: The audio device "hw:0,0" could not be used:
No such file or directory.
Home directory not accessible: Permission denied
[0x40704f00] pulse audio output error: PulseAudio server connection failure: Connection refused
[0x40704f00] jack audio output error: failed to connect to JACK server
[0x40704f00] main audio output error: no suitable audio output module
[0x956db0] main decoder error: failed to create audio output

Daniel Klein

unread,
Feb 3, 2013, 9:15:16 AM2/3/13
to George Ioakimedes, linux...@googlegroups.com

George Ioakimedes

unread,
Feb 7, 2013, 12:40:37 AM2/7/13
to linux...@googlegroups.com
I've been testing this and so far things have gone well except the videos have always been full screen. I noticed in my FEX that both fb0_scaler_mode_enable and fb1_scaler_mode_enable are set to 0. If I enable both of these will it allow me to play the video in a borderless window that I can position on the screen? I saw that there is a width/height setting but I'm not sure of you can position the window like you can with mplayer.

Michal Suchanek

unread,
Mar 1, 2013, 3:28:20 PM3/1/13
to linux...@googlegroups.com
Hello

On 1 March 2013 21:11, <mim...@gmail.com> wrote:
> Hi,
>
> I have completed all steps on http://linux-sunxi.org/VLC, but when I run
> cvlc --demux ffmpeg --codec cedar --vout cedarfb --no-osd my_video_file
> nothing happens, no video opens, there is no picture. In command line, there are just some warnings about audio.
> Did somebody had similar problem? If yes, what could be the solution?
>
> Milan

It WorksForMe(tm).

Any details about the failure?

Michal

George Ioakimedes

unread,
Mar 1, 2013, 6:52:47 PM3/1/13
to linux...@googlegroups.com
I've also had success. Do a make clean and carefully watch the compile to see if any errors happen. You probably need some dependency library that isn't installed


Michal

--
You received this message because you are subscribed to a topic in the Google Groups "linux-sunxi" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/linux-sunxi/iS2RFgLI3JY/unsubscribe?hl=en-GB.
To unsubscribe from this group and all of its topics, send an email to linux-sunxi...@googlegroups.com.

George Ioakimedes

unread,
Mar 2, 2013, 10:05:57 AM3/2/13
to linux...@googlegroups.com
Is this the file you are trying to play:

file:///home/linaro/Videos/rekonstrukcia.flv

Have a tried a file with a different format, like MP4?

On Sat, Mar 2, 2013 at 2:26 AM, <mim...@gmail.com> wrote:
Here is the log from VLC: http://pastebin.com/VVwz99EE
During compilation, I didn't have any errors, just huge amount of warnings.

Milan

Dňa piatok, 1. marca 2013 21:28:20 UTC+1 Michal Suchanek napísal(-a):

George Ioakimedes

unread,
Mar 3, 2013, 12:03:52 PM3/3/13
to linux...@googlegroups.com
I'm not sure which codecs are available by default. I good common test though is to try the Buck Bunny videos

On Sun, Mar 3, 2013 at 3:54 AM, <mim...@gmail.com> wrote:
Yes, that is the video I wanted to play. I also tried to run MPEG-2 video, but result was the same.
I will probably try to build it from beginning.

Dňa sobota, 2. marca 2013 16:05:57 UTC+1 George Ioakimedes napísal(-a):

Michal Suchanek

unread,
Mar 4, 2013, 2:10:37 PM3/4/13
to linux...@googlegroups.com, mim...@gmail.com
On 4 March 2013 19:11, <xcod...@gmail.com> wrote:
> Hi, I have the similar problem.
>
> VLC is playing "under" the console. To check it, you can download:
> http://download.doozan.com/a10/a10_display ( Found here: http://forum.doozan.com/read.php?6,9002,9002,quote=1 ), and perform:
>
> ./a10_display hdmi mode 10 #set console size about 1/4 of the display
> cvlc <parameters> #you will see your video on 3/4 of the display :)
>
> I don't know the solution. Can anybody help us?
>

Pehaps set the console layer below vlc. Supposedly the console layer
was transparent previously so only the console text would show above
vlc.

I run vlc from X and then video is shown over X.

HTH

Michal

Michal Suchanek

unread,
Mar 6, 2013, 6:28:54 AM3/6/13
to linux...@googlegroups.com, mim...@gmail.com
On 5 March 2013 20:17, <xcod...@gmail.com> wrote:

>
> I installed xserver after your post. Now VLC GUI is showed into tty7 (progress bar moves, but standart vlc picture is shown instead of my video)... The video layer is still under the console.
>
> It seems like /dev/disp or kernel are configured incorrectly. May be someone know in what way I should looking for solution?


What kernel version are you running?

Perhaps the fex file for your board configures disp differently?

I am using the cubeiboard fex file.

Thanks

Michal

George Ioakimedes

unread,
Mar 6, 2013, 11:57:27 AM3/6/13
to linux...@googlegroups.com
Yes, I must agree, this seems odd. I compiled VLC w/Cedar on a Linaro ALIP and Linaro Desktop with Kernel 3.0.57 (I think that was my kernel version) and I did not have these issues. I also was experimenting with several different display configurations with the FEX file.

Is there a reason why this couldn't be distributed as a deb package that just gets installed rather than having to compile?


Michal

iinuy...@gmail.com

unread,
Mar 12, 2014, 9:57:58 PM3/12/14
to linux...@googlegroups.com
On Friday, October 26, 2012 6:00:35 AM UTC-4, wills wrote:
> Hi, All,
>
>
> I am porting allwinner cedarx decoder to native vlc player(direct render to linuxfb, not android version), does anyone have interest in it?
> This porting based on libcedarx(a wrapper library used libvecore, instead of libcedarv, lower level API than libcedarv).
>
>
> Best Regards
> WIlls

I know this is a little old of a thread, but any chance someone could post this as an .APK installer package? There is a fairly new device called the Iben L1 gaming tablet, and it uses an Allwinner a31. We would love to have it, but none of us really know how to do any coding at all so we cannot get anything done. If someone could make it a general .APK for any Allwinner devices though, that would be amazing.

Olliver Schinagl

unread,
Mar 21, 2014, 3:49:01 PM3/21/14
to linux...@googlegroups.com
Most people on this list use A10/A13/A20 hardware. A31 is not really
supported due to the powerVR it has. While this is about cedarX etc,
maybe you get lucky and someone hears your call; but don't count on it
too strongly :)

Olliver

Mehmet Kurnaz

unread,
May 4, 2016, 3:37:04 AM5/4/16
to linux-sunxi
Hello Wills,

I want to use your cedar plugin on android. I got a few problems. On of them BLOCK_FLAG_END_OF_STREAM, there is no define in include/vlc_block.h. Another problem is cedarfb. Can I use cedar with XCB?

Best regards
Mehmet

27 Ekim 2012 Cumartesi 07:54:42 UTC+3 tarihinde Wills Wang yazdı:
I want to push it into github.
I hope more people will join the development.

BTW, how to post message into arm-n...@lists.phcomp.co.uk?
My mail seems to be filtered out.

在 2012年10月26日星期五UTC+8下午8时26分32秒,npeacock写道:

I am very interested.  Do you have the code posted somewhere?

On Oct 26, 2012 6:03 AM, "wills" <wills.w...@gmail.com> wrote:
Hi, All,

I am porting allwinner cedarx decoder to native vlc player(direct render to linuxfb, not android version), does anyone have interest in it?
This porting based on libcedarx(a wrapper library used libvecore, instead of libcedarv, lower level API than libcedarv).

Best Regards
WIlls

--
 
 

Stefan Monnier

unread,
May 4, 2016, 8:15:26 AM5/4/16
to linux...@googlegroups.com
> I want to use your cedar plugin on android. I got a few problems. On of
> them BLOCK_FLAG_END_OF_STREAM, there is no define in include/vlc_block.h.
> Another problem is cedarfb. Can I use cedar with XCB?

As mentioned at the bottom of http://linux-sunxi.org/CedarX/libve, this
code is a dead-end. To help yourself and the community you should work
on vdpau-sunxi instead.


Stefan


> 27 Ekim 2012 Cumartesi 07:54:42 UTC+3 tarihinde Wills Wang yazdı:
>>
>> I want to push it into github.
>> I hope more people will join the development.
>>
>> BTW, how to post message into
>> arm-n...@lists.phcomp.co.uk <javascript:>?
>> My mail seems to be filtered out.
>>
>> 在 2012年10月26日星期五UTC+8下午8时26分32秒,npeacock写道:
>>>
>>> I am very interested. Do you have the code posted somewhere?
>>> On Oct 26, 2012 6:03 AM, "wills" <wills.w...@gmail.com> wrote:
>>>
>>>> Hi, All,
>>>>
>>>> I am porting allwinner cedarx decoder to native vlc player(direct render
>>>> to linuxfb, not android version), does anyone have interest in it?
>>>> This porting based on libcedarx(a wrapper library used libvecore,
>>>> instead of libcedarv, lower level API than libcedarv).
>>>>
>>>> Best Regards
>>>> WIlls
>>>>
>>>> --
>>>>
>>>>
>>>>
>>>

> --
> You received this message because you are subscribed to the Google Groups "linux-sunxi" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages