dridri / OpenMaxIL-cpp

OpenMax IL C++ wrapper for RaspberryPi
MIT License
23 stars 5 forks source link

OMX_UseBuffer error 0x80001018 ! (state : 1) #10

Closed fuzun closed 3 years ago

fuzun commented 3 years ago

I have been trying to use camera_process.cpp but I get OMX_UseBuffer error 0x80001018 error after executing AllocateOutputBuffer:

    // Allocate buffer that will be processed manually
    camera->AllocateOutputBuffer( 71 );

Verbose output:

Adding input port { 73, 1 }
Adding output port { 70, 8 }
Adding output port { 71, 8 }
Adding output port { 72, 4 }
OMX_GetHandle(OMX.broadcom.camera) completed
[OMX.broadcom.camera] SendCommand 2 completed
[OMX.broadcom.camera] SendCommand 2 completed
[OMX.broadcom.camera] SendCommand 2 completed
[OMX.broadcom.camera] SendCommand 2 completed
[OMX.broadcom.camera] SetConfig 7F000063 completed
[OMX.broadcom.camera] SetParameter 0x7F000031 completed
===============> outputPorts()[70].bDisableProprietary : 0
===============> outputPorts()[72].bDisableProprietary : 0
Event on 0x2675e70 (OMX.broadcom.camera) type 7F000001 [ -1, 2130706481, (nil) ]
[OMX.broadcom.camera] SetConfig 6000012 completed
[OMX.broadcom.camera] SetConfig 6000012 completed
[OMX.broadcom.camera] SetConfig 7000015 completed
[OMX.broadcom.camera] SetConfig 7000014 completed
[OMX.broadcom.camera] SetConfig 7000018 completed
[OMX.broadcom.camera] SetConfig 7F000028 completed
[OMX.broadcom.camera] SetConfig 7000012 completed
[OMX.broadcom.camera] SetConfig 7000013 completed
[OMX.broadcom.camera] SetConfig 700001D completed
[OMX.broadcom.camera] SetConfig 700000A completed
[OMX.broadcom.camera] SetParameter 0x7F0000C8 completed
Camera 0 ready
[OMX.broadcom.camera] SetConfig 6000012 completed
[OMX.broadcom.camera] SetConfig 6000012 completed
[OMX.broadcom.camera] DisableProprietaryTunnels( 71, 1 )
[OMX.broadcom.camera] SetParameter 0x7F00005A completed
===============> outputPorts()[70].bDisableProprietary : 0
0x2675e70[OMX.broadcom.camera] SetupTunnel( 70, 0x266d0c8, 0 )
===> types : 8[90] | 8[70]
0x2675e70[OMX.broadcom.camera] SetupTunnel detected input port : 90
Port 70: out 1/1 0 16 disabled,not pop.,not cont. 1280x720 1280x0 @30fps 20
Port 90: in 3/2 15360 16 disabled,not pop.,not cont. 160x64 160x64 @0fps 20
[OMX.broadcom.camera] SetupTunnel from 70 to OMX.broadcom.video_render:90 completed
Port 70: out 0/0 1382400 16 disabled,populated,not cont. 1280x720 1280x720 @30fps 20
Port 90: in 0/0 1382400 16 disabled,populated,not cont. 1280x720 1280x720 @30fps 20
0x2675e70[OMX.broadcom.camera]->AllocateBuffers( 0x2672b50, 71, 1 )
[OMX.broadcom.camera] SendCommand 3 completed
Waiting port 71 to be 1
   portdef.nBufferCountActual : 1
   portdef.nBufferSize : 1382400
Allocated a buffer of 1382400 bytes
OMX_UseBuffer error 0x80001018 ! (state : 1)
Segmentation fault
dridri commented 3 years ago

Hello, it looks like I've made a mistake in this sample, AllocateOutputBuffer should be called after putting Camera in IdleState. This should be fixed in https://github.com/dridri/OpenMaxIL-cpp/commit/af954b0 Sorry about that

fuzun commented 3 years ago

@dridri It worked! I will tell if anything else goes wrong. I'm closing it now.