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 : Ducati exception with OV5640

On our custom OMAP4430 board (based on the PandaBoard), we're using an OV5640 sensor.

To support it, we're using the last Ubuntu 12.04 with the ti-ubuntu-3.4.0-1490.11 Linux kernel. We have build the last gstreamer0.10-openmax_0.10.0.4+ti1.6.7.3-1_armhf.deb from the Git repository.

And thanks to our NDA, we've got a copy of the Ducati firmware source code OPBU_Ducati_GLP1.6.7.zip.

Our purpose is just to take photos with the OV5640. So, we modified the Ducati firmware for the Panda platform to support the OV5640 (which is already supported by the Blaze platform).

Thanks to the following command, we succeed to take a photo :

gst-launch omx_camera mode=3 device=0 num-buffers=1 focus=2 focus-mode=1 focusweight=1 iso-speed=200 qfactor=90 name=cam cam.imgsrc ! queue ! "image/jpeg, width=2592, height=1944" ! filesink location=/tmp/test.jpg

Unfortunately, if we try to take several photos, the Linux kernel crashes :

[ 1047.385528] omap-rproc omap-rproc.1: omap rproc ipu_c0 crashed
[ 1047.391876] rproc remoteproc1: fatal error #1 detected in ipu_c0: error type device exception
[ 1047.402130] rproc remoteproc1: trying to recover ipu_c0
[ 1050.714385] ------------[ cut here ]------------
[ 1050.719421] kernel BUG at /home/fcoiffier/jarodSW/jarod_builder/kernel-ubuntu/drivers/staging/omapdrm/omap_drv.c:935!
[ 1050.730865] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM
[ 1050.737152] Modules linked in: omapdrm_pvr(O) omapdce(C) rpmsg_omx omaprpc(C) leds_gpio omap_remoteproc rpmsg_resmgr_common remoteproc omap_rpmsg_resmgr rpmsg_resmgr virtio_rpmsg_bus virtio virt
io_ring
[ 1050.756713] CPU: 0    Tainted: G         C O  (3.4.0-1490-omap4 #11eolane7)
[ 1050.764251] PC is at omap_drm_file_priv+0x1c/0x30
[ 1050.769378] LR is at dce_release+0x24/0x12c [omapdce]
[ 1050.774841] pc : [<c0431884>]    lr : [<bf04b2d4>]    psr: a00f0113
[ 1050.774871] sp : e99d5de0  ip : e99d5df0  fp : e99d5dec
[ 1050.787231] r10: ebe2c3b8  r9 : ed167190  r8 : 00000000
[ 1050.792877] r7 : c096e988  r6 : bf04c240  r5 : eb9d3400  r4 : e996e0c0
[ 1050.799926] r3 : bf04c214  r2 : 00000000  r1 : fffffff4  r0 : e996e0c0
[ 1050.806976] Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
[ 1050.814666] Control: 10c5387d  Table: a99d004a  DAC: 00000015


The root cause of this crash is a RP_MBOX_CRASH message posted in the mailbox by the M3. This message was posted due to a Ducati exception :

[1][     62.194]  ##### PPM: Shot2Shot time = 486817
[1][     62.194]
[1][     62.195]
[0][     62.291] [ERR=6369] src/msp_camera_api.c:[948]:VideoStopSensor_ : Preview is STOPPED.. going ahead gracefully!
[0][     62.291]
[0][     62.327] [ERR=6370] src/bte_drv.c:[452]:Successfully acquired BTE resource ctx 0
[0][     62.327] [ERR=6371] src/omx_iss_cam_usecase_with_pipe_common.c:[3063]:I->L OK !!!!!
[0][     62.327]
[0][     62.329] [ERR=6372] src/omx_core.c:[261]:
[0][     62.329] ====
[0][     62.329] RPMSG Trace log Buffer A9 Address: 0x9fb00000
[0][     62.329] ====
[1][     62.331] [WAR=6373] bios6/src/timm_osal_task.c:[205]:Task PrvFill is in ready state, will wait for task to terminate before deleting
[1][     62.332] [WAR=6374] bios6/src/timm_osal_task.c:[205]:Task PrvCsi is in ready state, will wait for task to terminate before deleting
[1][     62.333] [WAR=6375] bios6/src/timm_osal_task.c:[205]:Task PrvIsp is in ready state, will wait for task to terminate before deleting
[1][     62.334] [WAR=6376] bios6/src/timm_osal_task.c:[205]:Task PrvFaceDetect is in ready state, will wait for task to terminate before deleting
[1][     62.335] [WAR=6377] bios6/src/timm_osal_task.c:[205]:Task Prv3A is in ready state, will wait for task to terminate before deleting
[1][     62.336] [WAR=6378] bios6/src/timm_osal_task.c:[205]:Task PrvGBCE is in ready state, will wait for task to terminate before deleting
[1][     62.337] [WAR=6379] bios6/src/timm_osal_task.c:[205]:Task PrvExtraData is in ready state, will wait for task to terminate before deleting
[1][     62.338] [WAR=6380] bios6/src/timm_osal_task.c:[205]:Task PrvMTIS is in ready state, will wait for task to terminate before deleting
[1][     62.339] [WAR=6381] bios6/src/timm_osal_task.c:[205]:Task PrvLDC is in ready state, will wait for task to terminate before deleting
[1][     62.340] [WAR=6382] bios6/src/timm_osal_task.c:[205]:Task CapPreFlashGen is in ready state, will wait for task to terminate before deleting
[1][     62.341] [WAR=6383] bios6/src/timm_osal_task.c:[205]:Task CapPreFlash is in ready state, will wait for task to terminate before deleting
[1][     62.342] [WAR=6384] bios6/src/timm_osal_task.c:[205]:Task CapFlashGen is in ready state, will wait for task to terminate before deleting
[1][     62.343] [WAR=6385] bios6/src/timm_osal_task.c:[205]:Task CapRawImg is in ready state, will wait for task to terminate before deleting
[1][     62.344] [WAR=6386] bios6/src/timm_osal_task.c:[205]:Task CapStatistics is in ready state, will wait for task to terminate before deleting
[1][     62.345] [WAR=6387] bios6/src/timm_osal_task.c:[205]:Task CapDarkFrmSubs is in ready state, will wait for task to terminate before deleting
[1][     62.346] [WAR=6388] bios6/src/timm_osal_task.c:[205]:Task Cap3A is in ready state, will wait for task to terminate before deleting
[1][     62.347] [WAR=6389] bios6/src/timm_osal_task.c:[205]:Task CapGBCE is in ready state, will wait for task to terminate before deleting
[1][     62.348] [WAR=6390] bios6/src/timm_osal_task.c:[205]:Task CapLdcCA is in ready state, will wait for task to terminate before deleting
[1][     62.349] [WAR=6392] bios6/src/timm_osal_task.c:[205]:Task CapGLBCE is in ready state, will wait for task to terminate before deleting
[1][     62.350] [WAR=6393] bios6/src/timm_osal_task.c:[205]:Task CapRawToYUV is in ready state, will wait for task to terminate before deleting
[1][     62.351] [WAR=6394] bios6/src/timm_osal_task.c:[205]:Task CapLDCNSF is in ready state, will wait for task to terminate before deleting
[1][     62.352] [WAR=6395] bios6/src/timm_osal_task.c:[205]:Task CapRER is in ready state, will wait for task to terminate before deleting
[1][     62.353] [WAR=6396] bios6/src/timm_osal_task.c:[205]:Task CapThumbRER is in ready state, will wait for task to terminate before deleting
[1][     62.354] [WAR=6397] bios6/src/timm_osal_task.c:[205]:Task CapJPEGeThumb is in ready state, will wait for task to terminate before deleting
[1][     62.355] [WAR=6398] bios6/src/timm_osal_task.c:[205]:Task CapJPEGE is in ready state, will wait for task to terminate before deleting
[1][     62.356] [WAR=6399] bios6/src/timm_osal_task.c:[205]:Task CapExtraData is in ready state, will wait for task to terminate before deleting
[1][     62.357] [WAR=6400] bios6/src/timm_osal_task.c:[205]:Task CapThumbLDC is in ready state, will wait for task to terminate before deleting
[1][     62.358] [WAR=6401] bios6/src/timm_osal_task.c:[205]:Task CapPostLDC is in ready state, will wait for task to terminate before deleting
[1][     62.359] [WAR=6402] bios6/src/timm_osal_task.c:[205]:Task CapREDetect is in ready state, will wait for task to terminate before deleting
[1][     62.360] [WAR=6403] bios6/src/timm_osal_task.c:[205]:Task CapPostRER is in ready state, will wait for task to terminate before deleting
[1][     62.361] [WAR=6404] bios6/src/timm_osal_task.c:[205]:Task SnapExtraData is in ready state, will wait for task to terminate before deleting
[1][     62.362] [WAR=6405] bios6/src/timm_osal_task.c:[205]:Task CapPostview is in ready state, will wait for task to terminate before deleting
[1][     62.363] [WAR=6407] bios6/src/timm_osal_task.c:[205]:Task CapGBCEWT is in ready state, will wait for task to terminate before deleting
[0][     62.367] Exception occurred at (PC) = 85e322c0
[0][     62.367] CPU context: thread
[0][     62.367] BIOS Task name: SYS3A_CALC handle: 0x8602c680.
[0][     62.367] BIOS Task stack base: 0x86024678.
[0][     62.367] BIOS Task stack size: 0x8000.
[0][     62.367] [t=0x00000001:843c5446] ti.sysbios.family.arm.m3.Hwi: ERROR: line 937: E_hardFault: FORCED
[0][     62.367] ti.sysbios.family.arm.m3.Hwi: line 937: E_hardFault: FORCED
[0][     62.367] [t=0x00000001:843f267e] ti.sysbios.family.arm.m3.Hwi: ERROR: line 1049: E_usageFault: INVSTATE: Invalid EPSR and instruction combination
[0][     62.367] ti.sysbios.family.arm.m3.Hwi: line 1049: E_usageFault: INVSTATE: Invalid EPSR and instruction combination
[0][     62.367] R0 = 0x85e321f8  R8  = 0x860f7878
[0][     62.367] R1 = 0xffffffd8  R9  = 0x0021ad3c
[0][     62.367] R2 = 0x0bc64428  R10 = 0x8000001a
[0][     62.367] R3 = 0x85e322c0  R11 = 0x00000000
[0][     62.367] R4 = 0x85e321f8  R12 = 0x860297c4
[0][     62.367] R5 = 0x00000002  SP(R13) = 0x86029870
[0][     62.367] R6 = 0x860d4a14  LR(R14) = 0x003907eb
[0][     62.367] R7 = 0x861d1b60  PC(R15) = 0x85e322c0
[0][     62.367] PSR = 0x30000000
[0][     62.367] ICSR = 0x00435803
[0][     62.367] MMFSR = 0x00
[0][     62.367] BFSR = 0x00
[0][     62.367] UFSR = 0x0002
[0][     62.367] HFSR = 0x40000000
[0][     62.367] DFSR = 0x00000000
[0][     62.367] MMAR = 0xe000ed34
[0][     62.367] BFAR = 0xe000ed38
[0][     62.367] AFSR = 0x00000000
[0][     62.367] Stack trace
[0][     62.367]  00 [op f977f7fd] 003934e7 (ret from call to 003907d4)
[0][     62.367]  01 [op fbdbf001] 003934fb (ret from call to 00394cb0)
[0][     62.367]  02 [op fdddf000] 0039292f (ret from call to 003934e8)
[0][     62.367]  03 [op ff09f063] 0032eb0b (ret from call to 0039291c)
[0][     62.367]  -- [op a1a36001] 00020101
[0][     62.367]  04 [op fcbff0b3] 0027b113 (ret from call to 0032ea90)
[0][     62.367]  05 [op f9c3f060] 0021acb5 (ret from call to 0027b03a)
[0][     62.367]  06 [op fcd5f010] 00384387 (ret from call to 00394d30)
[0][     62.367]  07 [op 47886840] 8602990c
[0][     62.367]  08 [op fbc4f28a] 0009c691 (ret from call to 00326e18)

This exception occurs in the auto_white_balance_delete_stereo() calling awb_alg_dcc_tuning_dcc_bin_free() calling TIMM_OSAL_Free() : in fact, the function tries to free an invalid pointer.

But this code can work during the first 12 taken photos and can crash at the 13th. So, this problem can be due to a memory corruption or an erroneous code in awb_alg_dcc_tuning_dcc_bin_free() which tries to free a not initialized pointer.

But the source code in auto_white_balance_delete_stereo() and awb_alg_dcc_tuning_dcc_bin_free() isn't provided with Ducati source code : only the subs.aem3 library.

So, we have several questions :

  • Is it a known problem for the Ducati development team ?
  • Can it be due to a bad initialization of the OV5640 (in fact, there is no DCC for AWB algorithm with this OV5640 sensor) ?
  • Is there a way to get an update Ducati source code or the source code of the subs.aem3 library ?

Regards,

Frédéric

  • OV5640 is a SoC sensor which means that AWB runs on the sensor, not OMAP. Also, auto_white_balance_delete_stereo library does not get involved unless there is a stereo 3D usecase. As I understand your usecase is single camera. Please double-check if the crash is originating somewhere else.  

  • I double-check by putting a debug message before and after the call to pBalance->deallocate(pBalance->handle_stereo); in sys3aDestroyAlgorithms() (where pBalance->deallocate = auto_white_balance_delete_stereo). So it's really this function which generates the exception.

    Maybe the stereo algorithm is allocated even if it's not used with the current sensor.

    I've found how to change the default sensor in Ducati but is there something else to change to specify there is only 1 camera ? Do you think this Ducati release is safe for using it with our Linux version ?

  • Mono camera and stereo camera is selected by the app on A9. I am not sure which test app you are using. In omapdrmtest, 0 = primary camera, 1=secondary camera and 2=stereo camera. Default is 2 which means that if you want to use just primary camera you need to pass the correct argument.

  • Thank you for your answer.

    As mentionedin my first post, I'm using gstreamer with omx_camera :

    gst-launch omx_camera mode=3 device=0 num-buffers=1 focus=2 focus-mode=1 focusweight=1 iso-speed=200 qfactor=90 name=cam cam.imgsrc ! queue ! "image/jpeg, width=2592, height=1944" ! filesink location=/tmp/test.jpg

  • I am not sure where gst plugin for OMX camera came from. In TI recent releases this was not supported. Only way to test camera is omapdrmtest application. This is most likely as gst plugin issue.

  • You may be right : I've found a second issue with Gstreamer but at Linux kernel side. Each time, I take a photo, ~11MB of shared memory seems to leak.

    But regarding omapdrmtest, where I can find the corresponding Ubutun package to test it ?

    Do we have to build a git version like this one ?

    http://gitorious.org/ubuntu-omap/omapdrmtest/source/70a270ce08112ec9d5aae3eba33dd55aa77d9ffb:

  • That's correct.. you will need to download and build it.

  • Thanks Mayank for your answer and I'm sorry to disturb you again.

    I succeeded to build omapdrmtest and now, I have the corresponding omx_cam_test binary.

    As my initial purpose is just a take a JPEG photo, how can I use this omx_cam_test application to achieve it ? It seems to only be an unitary test application. Do I have to modify it ? If yes, do you think that we can obtain a result in a reasonable time ?

    Currently, omx_cam_test gives me the following output :

    # /usr/bin/omx_cam_test
    Requested Color 3231564e
    Enabling Stereo Use Case (side by side)!
    Iteration 1 of 1
    OMXVisionCam::OMXVisionCam
    OMXVisionCam compiled: Sep 27 2013, 15:22:41
    Calling OMX_Init()
    Calling OMX_GetHandle()
    Querying Component Version!




    OMXVisionCam::EventHandler() event=0 arg1=00000002 arg2=00000000 ptr=(nil) (len=0)
    OMXVisionCam::EventHandler() event=0 arg1=00000002 arg2=00000001 ptr=(nil) (len=0)
    OMXVisionCam::EventHandler() event=0 arg1=00000002 arg2=00000002 ptr=(nil) (len=0)
    OMXVisionCam::EventHandler() event=0 arg1=00000002 arg2=00000003 ptr=(nil) (len=0)
    OMXVisionCam::EventHandler() event=0 arg1=00000002 arg2=00000004 ptr=(nil) (len=0)
    OMXVisionCam::EventHandler() event=0 arg1=00000002 arg2=00000005 ptr=(nil) (len=0)
    SET PARAM: 0x7f000009, 0x1e4c8, 4 (0x00000500), 1
    OMX-CAMERA is in state OMX_StateLoaded
    SET PARAM: 0x7f000008, 0x1e4cc, 4 (0x000001e0), 1
    OMX-CAMERA is in state OMX_StateLoaded
    SET PARAM: 0x7f00000c, 0x1e4dc, 4 (0x3231564e), 1
    OMX-CAMERA is in state OMX_StateLoaded
    PORT CHECK[2], E:0 P:0 B#:3 320x240 C:27
    SET PARAM: 0x7f00000a, 0x1e4d0, 4 (0x0000001e), 1
    OMX-CAMERA is in state OMX_StateLoaded
    OMX-CAMERA is in state OMX_StateLoaded
    PORT CHECK[2], E:0 P:0 B#:3 320x240 C:21
    PORT CHECK[3], E:0 P:0 B#:16 176x144 C:27
    OMX-CAMERA is in state OMX_StateLoaded
    SET PARAM: 0x7f000010, 0xbea91448, 4 (0x00000003), 1
    OMX-CAMERA is in state OMX_StateLoaded
    Requested VisionCamCaptureMode 3
    Requested OMX_CAMOPERATINGMODETYPE 8
    OMX-CAMERA is in state OMX_StateLoaded
    OMX-CAMERA is in state OMX_StateLoaded
    omx_proxy_common/src/omx_proxy_common.c:1424    __PROXY_SetParameter()  ERROR: failed check:(eError == OMX_ErrorNone) || (eError == OMX_ErrorNoMore) - returning error: 0x80001005 - Error returned f
    rom OMX API in ducati
    src/omx_proxy_camera.c:555      CameraSetParam()        ERROR:  CameraSetParam: Error in SetParam 0x80001005
    ERROR:ConvertError:360: Converting OMX Error 0x80001005 to int -22
    OMX-CAMERA is in state OMX_StateLoaded
    ERROR:ConvertError:360: Converting OMX Error 0x80001005 to int -22
    ERROR:setParameter:1937: setParameter() exits with error 0xffffffea (dec: -22) [OMX:0x80001005] for param id 0x7f000010
    ERROR:main:298: ERROR: VCAM Failure -22 in function main on file:line VisionCamSimpleTest.cpp:298

    SET PARAM: 0x7f00001c, 0xbea9143c, 8 (0x00000000), 1
    OMX-CAMERA is in state OMX_StateLoaded
    Stereo Info: Layout 1, SubSampling: 1
    GET PARAM: 0x7f000022, 0xbea91430, 12 (0x00000000)
    PORT CHECK[2], E:0 P:0 B#:3 320x240 C:21
    PORT CHECK[2], E:0 P:0 B#:0 1280x480 C:21
    Image: 1280x480, buffer: 1280x480
    attempting to open X11 connection
    ERROR:disp_x11_open:242: Could not open display
    ERROR:disp_x11_open:385: unimplemented
    using 1 connectors, 1024x600 display, multiplanar: 0
    SET PARAM: 0x7f00000e, 0xbea9144c, 4 (0x00000003), 1
    OMX-CAMERA is in state OMX_StateLoaded
    SET PARAM: 0x7f000015, 0x1e4a8, 4 (0x00000001), 1
    OMX-CAMERA is in state OMX_StateLoaded
    SET PARAM: 0x7f00000d, 0x1e4e0, 4096 (0x00000000), 1
    OMX-CAMERA is in state OMX_StateLoaded
     -> buffer=0x119b828 w=1280 h=480 fourcc=3231564e
     ---> bo[0]=0x119b940 pitch=1280 fd=49 map=0xb591f000
     -> buffer=0x119b970 w=1280 h=480 fourcc=3231564e
     ---> bo[0]=0x119b9b8 pitch=1280 fd=51 map=0xb583e000
     -> buffer=0x119b9e8 w=1280 h=480 fourcc=3231564e
     ---> bo[0]=0x119ba30 pitch=1280 fd=53 map=0xb575d000
     -> buffer=0x119ba60 w=1280 h=480 fourcc=3231564e
     ---> bo[0]=0x119baa8 pitch=1280 fd=55 map=0xb567c000
     -> buffer=0x119bae8 w=1280 h=480 fourcc=3231564e
     ---> bo[0]=0x119bb30 pitch=1280 fd=57 map=0xb559b000
    OMX-CAMERA is in state OMX_StateLoaded
    Registering for Event 0 (0x00000000)
    src/omx_proxy_camera.c:239      Camera_SendCommand()    ERROR:  Error in DCC Init
    Waiting for state transition. State requested: 2
    OMXVisionCam::EventHandler() event=0 arg1=00000000 arg2=00000002 ptr=(nil) (len=1)
    Found Event in List which matches incoming event!
    Camera is now in state 2
    OMX-CAMERA is in state OMX_StateIdle
    SEND CMD: 0x0000, (nil), 0, 1
    OMX-CAMERA is in state OMX_StateIdle
    Registering for Event 0 (0x00000000)
    Waiting for state transition. State requested: 3
    OMXVisionCam::EventHandler() event=0 arg1=00000000 arg2=00000003 ptr=(nil) (len=1)
    Found Event in List which matches incoming event!
    OMX-CAMERA is in state OMX_StateExecuting
    Camera is now in state 3
    PORT CHECK[2], E:0 P:0 B#:0 1280x480 C:21
    PORT CHECK[2], E:0 P:0 B#:5 1280x480 C:21
    PORT CHECK[2], E:0 P:0 B#:5 1280x480 C:21
    Registering for port enable/disable event
    Registering for Event 0 (0x00000000)
    Configuring port 1 for DMAbuf handles (err=0x00000000)
    VCAM: Using FDs 49 and 0
    pAppPrivate=0xbea91340 mBuffers[indBuff]=0xbea91340
    VCAM: Using FDs 51 and 0
    pAppPrivate=0xbea91364 mBuffers[indBuff]=0xbea91364
    VCAM: Using FDs 53 and 0
    pAppPrivate=0xbea91388 mBuffers[indBuff]=0xbea91388
    VCAM: Using FDs 55 and 0
    pAppPrivate=0xbea913ac mBuffers[indBuff]=0xbea913ac
    VCAM: Using FDs 57 and 0
    pAppPrivate=0xbea913d0 mBuffers[indBuff]=0xbea913d0
    OMXVisionCam::EventHandler() event=0 arg1=00000003 arg2=00000002 ptr=(nil) (len=1)
    Found Event in List which matches incoming event!
    PORT CHECK[2], E:1 P:0 B#:5 1280x480 C:21
    FILL BUFF HDR[0]:0x119bc58 PORT:2
    FILL BUFF HDR[1]:0x119bcd8 PORT:2
    FILL BUFF HDR[2]:0x119f3d0 PORT:2
    FILL BUFF HDR[3]:0x119f450 PORT:2
    FILL BUFF HDR[4]:0x119f4d0 PORT:2
    SET PARAM: 0x7f000002, 0xbea91450, 4 (0x00000002), 1
    OMX-CAMERA is in state OMX_StateExecuting
    OMX-CAMERA is in state OMX_StateExecuting
    Focus Requested Steps @ 0, Index @ 0
    Focus Control Mode = 0x00000002
    VisionCam is initialized, entering queue read loop!
    ERROR:main:363: Timedout waiting for buffer from Camera!
    ERROR:main:363: Timedout waiting for buffer from Camera!
    ERROR:main:363: Timedout waiting for buffer from Camera!
    ERROR:main:363: Timedout waiting for buffer from Camera!
    ERROR:main:363: Timedout waiting for buffer from Camera!
    ERROR:main:363: Timedout waiting for buffer from Camera!
    ERROR:main:363: Timedout waiting for buffer from Camera!
    ERROR:main:363: Timedout waiting for buffer from Camera!
    ERROR:main:363: Timedout waiting for buffer from Camera!
    ERROR:main:363: Timedout waiting for buffer from Camera!
    SEND CMD: 0x0001, (nil), 0, 1
    OMX-CAMERA is in state OMX_StateExecuting
    OMX-CAMERA is in state OMX_StateExecuting
    Registering for Event 0 (0x00000000)
    OMX-CAMERA has returned a frame (0xbea91340) offset=0!
    OMX-CAMERA has returned a frame (0xbea91364) offset=0!
    OMX-CAMERA has returned a frame (0xbea91388) offset=0!
    OMX-CAMERA has returned a frame (0xbea913ac) offset=0!
    OMX-CAMERA has returned a frame (0xbea913d0) offset=0!
    OMXVisionCam::EventHandler() event=0 arg1=00000001 arg2=00000002 ptr=(nil) (len=1)
    Found Event in List which matches incoming event!
    PORT CHECK[2], E:1 P:0 B#:5 1280x480 C:21
    Registering for port enable/disable event
    Registering for Event 0 (0x00000000)
    OMXVisionCam::EventHandler() event=0 arg1=00000002 arg2=00000002 ptr=(nil) (len=1)
    Found Event in List which matches incoming event!
    PORT CHECK[2], E:0 P:0 B#:5 1280x480 C:21
    OMX-CAMERA is in state OMX_StateExecuting
    Registering for Event 0 (0x00000000)
    Waiting for state transition. State requested: 2
    OMXVisionCam::EventHandler() event=0 arg1=00000000 arg2=00000002 ptr=(nil) (len=1)
    Found Event in List which matches incoming event!
    OMX-CAMERA is in state OMX_StateIdle
    Camera is now in state 2
    PORT CHECK[2], E:0 P:0 B#:5 1280x480 C:21
    OMX-CAMERA is in state OMX_StateIdle
    Registering for Event 0 (0x00000000)
    Waiting for state transition. State requested: 1
    OMXVisionCam::EventHandler() event=0 arg1=00000000 arg2=00000001 ptr=(nil) (len=1)
    Found Event in List which matches incoming event!
    OMX-CAMERA is in state OMX_StateLoaded
    Camera is now in state 1
    Calling OMX_FreeHandle(0x0119a7c0)
    Calling OMX_Deinit()
    OMX Vision Cam is destroyed!
  • Currently omapdrmtest is designed to support very basic preview functionality. You can add more features like JPEG capture by referring to CameraHAL implementation in android.

  • I am using the same camera and facing similar problem but kernel stack trace is different (can see in thread http://e2e.ti.com/support/omap/f/849/p/288060/1004862.aspx).

    Is there any solution to this problem?