VPU decoder VPU_DEC_NO_ENOUGH_BUF

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

VPU decoder VPU_DEC_NO_ENOUGH_BUF

4,238件の閲覧回数
Tarek
Senior Contributor I

Hi,

I'm playing live stream from a remote camera using the VPU Wrapper for decoding and IPU mxc_ipu dev for display. The video runs smoothly for about 3 to 4 minutes then VPU_DecDecodeBuf() starts returning

VPU_DEC_INPUT_USED,

VPU_DEC_OUTPUT_NODIS,

VPU_DEC_NO_ENOUGH_BUF then the video stops.

I've double checked that all the allocated video buffers are cleared once displayed by calling VPU_DecOutFrameDisplayed().

When I enabled VPU debugging I get the following messages:

1_repeatFrame: 0,interlacedFrame: 0, indexFrameRangemap: 0, progressiveFrame: 0, topFieldFirst: 0

aspect ratio: format: 0, ratio: 0x1, InWidth: 640, InHeight: 480

return Q16Ratio: 0x10000, [OutWidth,OutHeight]=[65536, 65536] 

one decoded frame: start: 0x18D76ACA, end: 0x18D797C1

VpuAccumulateConsumedBytes: size: 11511, type: 2

last end: 0x18D76ACA, start: 0x18D76ACA, buf start: 0x18C00000, buf end: 0x18F00000, stuff size: 0

indexFrameDisplay=2

frame : (P)

VpuGetOutput: Ref frame 1

VpuCheckDeadLoop: total_dec_size: 0, total_dec_loop: 0, total_null_loop: 1

calling vpu_DecGetBitstreamBuffer()

calling vpu_DecGetBitstreamBuffer()

Wr: 0x18D8CD08, Rd: 0x18D79A00, space: 3065079

calling vpu_DecUpdateBitstreamBuffer(): 2997

calling vpu_DecGetBitstreamBuffer()

nSpace: 3062082, filled : 83646

===================vpu_DecStartOneFrame: chunkSize: 0, search: 0

calling vpu_DecStartOneFrame(): 0, skipmode: 0

while: calling vpu_WaitForInt(500)

VPU_DecOutFrameDisplayed: calling vpu_DecClrDispFlag(): 2

calling vpu_DecGetOutputInfo()

calling vpu_DecGetOutputInfo(), indexFrmDec: 0, return indexFrmDis: 3, type: 0, success: 0x1, errMB: 0, consumed: 78793

fieldSequence: 0, vc1_repeatFrame: 0,interlacedFrame: 0, indexFrameRangemap: 0, progressiveFrame: 0, topFieldFirst: 0

aspect ratio: format: 0, ratio: 0x1, InWidth: 640, InHeight: 480

return Q16Ratio: 0x10000, [OutWidth,OutHeight]=[65536, 65536] 

one decoded frame: start: 0x18D797C1, end: 0x18D8CB8A

VpuAccumulateConsumedBytes: size: 78793, type: 2

last end: 0x18D797C1, start: 0x18D797C1, buf start: 0x18C00000, buf end: 0x18F00000, stuff size: 0

indexFrameDisplay=3

frame : (P)

VpuGetOutput: Ref frame 1

VpuCheckDeadLoop: total_dec_size: 0, total_dec_loop: 0, total_null_loop: 1

VPU_DecOutFrameDisplayed: calling vpu_DecClrDispFlag(): 3

calling vpu_DecGetBitstreamBuffer()

calling vpu_DecGetBitstreamBuffer()

Wr: 0x18D8D8BD, Rd: 0x18D8CE00, space: 3140930

calling vpu_DecUpdateBitstreamBuffer(): 3217

calling vpu_DecGetBitstreamBuffer()

nSpace: 3137713, filled : 8015

===================vpu_DecStartOneFrame: chunkSize: 0, search: 0

calling vpu_DecStartOneFrame(): 0, skipmode: 0

while: calling vpu_WaitForInt(500)

calling vpu_DecGetOutputInfo()

calling vpu_DecGetOutputInfo(), indexFrmDec: -1, return indexFrmDis: -3, type: 0, success: 0x1, errMB: 0, consumed: 78793

fieldSequence: 0, vc1_repeatFrame: 0,interlacedFrame: 0, indexFrameRangemap: 0, progressiveFrame: 0, topFieldFirst: 0

TSE: no enough frame buffer and return one output frame

VpuCheckDeadLoop: total_dec_size: 0, total_dec_loop: 0, total_null_loop: 1

calling vpu_DecGetBitstreamBuffer()

calling vpu_DecGetBitstreamBuffer()

Wr: 0x18D8E54E, Rd: 0x18D8CE00, space: 3137713

calling vpu_DecUpdateBitstreamBuffer(): 3009

calling vpu_DecGetBitstreamBuffer()

nSpace: 3134704, filled : 11024

===================vpu_DecStartOneFrame: chunkSize: 0, search: 0

calling vpu_DecStartOneFrame(): 0, skipmode: 0

while: calling vpu_WaitForInt(500)

calling vpu_DecGetOutputInfo()

calling vpu_DecGetOutputInfo(), indexFrmDec: -1, return indexFrmDis: -3, type: 0, success: 0x1, errMB: 0, consumed: 78793

fieldSequence: 0, vc1_repeatFrame: 0,interlacedFrame: 0, indexFrameRangemap: 0, progressiveFrame: 0, topFieldFirst: 0

TSE: no enough frame buffer and return one output frame

VpuCheckDeadLoop: total_dec_size: 3217, total_dec_loop: 1, total_null_loop: 2

calling vpu_DecGetBitstreamBuffer()

calling vpu_DecGetBitstreamBuffer()

Wr: 0x18D8F10F, Rd: 0x18D8CE00, space: 3134704

calling vpu_DecUpdateBitstreamBuffer(): 3225

calling vpu_DecGetBitstreamBuffer()

nSpace: 3131479, filled : 14249

===================vpu_DecStartOneFrame: chunkSize: 0, search: 0

calling vpu_DecStartOneFrame(): 0, skipmode: 0

while: calling vpu_WaitForInt(500)

calling vpu_DecGetOutputInfo()

calling vpu_DecGetOutputInfo(), indexFrmDec: -1, return indexFrmDis: -3, type: 0, success: 0x1, errMB: 0, consumed: 78793

why the decoder is not using the available buffers and how should I retrieve the normal video stream display without restarting the process?

Note: I'm running BSP12.08 on Nitrogen Board and using Poky distribution Yocto build system.

ラベル(2)
0 件の賞賛
返信
5 返答(返信)

3,280件の閲覧回数
anishkhanna
Contributor I

hi, can you please provide the application you are using?

0 件の賞賛
返信

3,280件の閲覧回数
Tarek
Senior Contributor I

Hi Anish,

I moved away from using the VPU API's as it's too complicated and proven to be unreliable "at least for my purpose!"

Gstreamer is more reliable for handling the decoding and save me a lot of headache but it's very limited in it's display capabilities.

I'm trying to learn OpenGL to use it for display while gstreamer for decoding I hope this will work.

In my opinion Freescale is not providing enough examples on how to use the i.MX6 platform. My application is simply playing multiple video stream and a GUI! There should be a similar example provided by Freescale but there isn't one:smileysad:

0 件の賞賛
返信

3,280件の閲覧回数
anishkhanna
Contributor I

Thanks Tarek El-Sherbiny for your information :smileyhappy:

0 件の賞賛
返信

3,280件の閲覧回数
Yongxin
NXP Employee
NXP Employee

Hi, can you let me know the chip related with this question?

0 件の賞賛
返信

3,280件の閲覧回数
Tarek
Senior Contributor I

Chip is i.MX6Q

0 件の賞賛
返信