This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[OMAP4430 custom board] Ducati & OMX questions (and troubles)

Hello there!

I'm trying to port Ducati decoding acceleration to custom board (OMAP4430 tablet - Nook Tablet) from this release: http://www.omappedia.com/wiki/4AI.1.6_OMAP4_Icecream_Sandwich_Release_Notes into CyanogenMod9 (ICS)

However, I'm not sure which kernel and platform parts are required to get full decoding path between android GUI and M3 subsystem (More in questions on the bottom of post).

I've synced my kernel side remoteproc and ion drivers so it match 4AI1.6 release. I've also pulled proper hardware/ti/omap4xxx and hardware/ti/domx into my platform sources. Ducati does bootup and OMX library seems to be communicating with it, though:

a) There's "HW decoding" exposed to media players, but during playing movie it fails immediately (logs 1.3).

b) When I'm trying "omx_tests OMX.TI.DUCATI1.VIDEO.DECODER <any of its roles>" It usually pass with no errors (getting SIGSEGV of OMX sometimes or ducati crash, but it's like once per ~50, so I think it's not connected issue to c) - I don't care much for now)

c) When I'm trying to play YouTube HD movie it always ends up in SIGSEGV of OMX codecs. (logs 1.3)

Logs&pasties (note - several remoteproc modules had been built with #define DEBUG, so logs are bit more verbose):

1.1 (I see no errors here) Kernel dmesg on bootup

1.2 (errors) HD movie in YouTube opening in dmesg and logcat

1.3 (errors) 1080p movie playing try in MXPlayer seen in dmesg and logcat

1.4 Our BoardConfig.mk

1.5 (I see no errors here) Ducati bootup trace0 and trace1

1.6 (errors) 1080p movie playing (same case as 1.3) Ducati trace1(it leaves no trace0)

1.6.1 verbose logcat  (TIMM_OSAL_DEBUG_TRACE_LEVEL=6)

1.7 (I see no errors here, this one seems to be fully working) "omx_tests OMX.TI.DUCATI1.VIDEO.DECODER video_decoder.mpeg4" kernel dmesg, Android logcat and Ducati trace1

1.7.1 verbose logcat  (TIMM_OSAL_DEBUG_TRACE_LEVEL=6)

Questions

1) What platform parts are responsible (and, in result, required to be synced with 4AI1.6 release) for ducati decoding? Are platform OMAP_ENHANCEMENTS required for that? (ANSWERED)


2) Is there any reference for above? I've read "Ducati for dummies" and "Debugging RPMsg" on omappedia but it's not most helpful thing when I can't build Ducati by myself. (ANSWERED)

3) What is ENHANCED_DOMX (hardware/ti/domx) and how does it differ to hardware/ti/omap4xxx/domx? (ANSWERED)

4) Is Ducati Codec Pack sourcecode (AFAIK the only missing part for building Ducati by anyone) going to be released for public? (ANSWERED)

5) How does builds of ducati for Blaze and ducati for Blaze Tablet differ and which one should I use? I'm trying with Blaze Tablet one. (ANSWERED)

6) Is this normal during operation of ducati (start of some decoding)?: (ANSWERED by someone else, it's normal)
omap_hwmod: iva_seq0: failed to hardreset
omap_hwmod: iva_seq1: failed to hardreset

Thanks in advance for any helpful tip. Please tell me if you want any more info/logs and I apologize if I missed some obvious reference manuals during research.
I'll also try to add any more questions I comes in this thread

Post changelog:

18 Jul 20:21 GMT0 - added logs 1.5 and 1.6, formatted post

18 Jul 21:22 GMT0 - added logs 1.7, better links formatting

19 Jul 20:12 GMT0 - added logs 1.6.1 and 1.7.1


  • You can use Ducati from either of Blaze or Blaze Tablet release. These releases differ only in camera drivers. Video playback works with both the binaries.

    To port to custom board, generally the changes need to be in kernel and android init.*.rc files. You should be able to use the same Ducati and AFS binaries. The logs shared by you do not suggest anything wrong going on. It will help if you can attach Ducati logs too.

  • Thank you for your reply.

    I will try to play with prebuilt Blaze Tablet Android libraries, though if I'm trying to use all of these my platform doesn't startup, and with some of them it does try to init camera and make some GPIOs conflict. That's what question 1) came from.

    If you mean Ducati tracelogs - I've added points 1.5 and 1.6 to logs (this time using this nice HTML editor :) )


  • 1) What platform parts are responsible (and, in result, required to be synced with 4AI1.6 release) for ducati decoding? Are platform OMAP_ENHANCEMENTS required for that? (UNANSWERED)

    It is difficult to comment on individual build flags. As a rule of thumb you must use the build configuration from TI release.

    Is there any reference for above? I've read "Ducati for dummies" and "Debugging RPMsg" on omappedia but it's not most helpful thing when I can't build Ducati by myself. (UNANSWERED)

    Stagefright framework uses Ducati component for HW acceleration. You can refer to mediaplayer class source.


    3) What is ENHANCED_DOMX (hardware/ti/domx) and how does it differ to hardware/ti/omap4xxx/domx? (UNANSWERED)

    hardware/ti/omap4xxx/domx is not used, it is kept in release tree for legacy reasons. hardware/ti/domx is the correct domx source.

    4) Is Ducati Codec Pack sourcecode (AFAIK the only missing part for building Ducati by anyone) going to be released for public? (UNANSWERED)

    No.

  • Thank you very much. This shorten my research by alot of time. I'll try to get my source tree as close as possible to Blaze Tab and add here any questions I won't be able to figure out. Hopefully there won't be any more. ;)