i.MX53 VPU API feature

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

i.MX53 VPU API feature

740 Views
torus1000
Contributor V

Hi,

I suppose vpu_IsBusy() simply return status and don't care which process is running.

RM p4966

VPU supports up to 4 decoding/encoding processes simultaneously. Each process can

have a different format. The host processor creates and executes the specified process by

sending parameters and commands to the BIT processor through the VPU API.

Is there any VPU APIs to confirm which process alive?

Can anyone help me?

Labels (2)
Tags (1)
0 Kudos
3 Replies

577 Views
torus1000
Contributor V

Dear Guanqiong

vpu_EncOpen() or vpu_EncOpen() may receives a handle but inquery such as vpu_IsBusy() or vpu_WaitForInt() have no arguments. So it seems impossible to know which instance is busy.

According to the encode/decode flow in i.MX5x_Linux_VPU_API.pdf, interrupt signaling is allowed.

After setting  the corresponding bit on completion interrupt enable register, active instance and other instances also wait for this interrupt.

(Q) How other instances can recognize  which process of instance completed?

If "interrupt reason register" provide such status, could you describe more details?

(Refer to the p72: When an interrupt is signaled, the application checks the source of the interrupt by checking the value of interrupt reason register.)

(Q) Is there any transcode(encode+decode simultaneously) sample code? Could you provide it to me?

Thanks.

0 Kudos

577 Views
joanxie
NXP TechSupport
NXP TechSupport

1) because vpu is developed by the third-party company, the internal register isn't open to us, and all of function, we include them in the vpu lib, and you also can refer to the vpu driver(mxc_vpu.c)

2) you can use unit test, like mxc_vpu_test.out -D "..."&mxc_vpu_test.out -E "..."

0 Kudos

577 Views
joanxie
NXP TechSupport
NXP TechSupport

Refer to the Reference Manual,

Since VPU is a multiple instance codec, the application requires this kind of

handle. Once the application receives a handle, the application must pass the handle to all subsequent decoder-related

functions.When writing a VPU driver, this handle can be regard as a device-ID or a port-ID of the VPU for each task.

Since the VPU can only perform one picture processing task at a time, the application task should check if VPU is ready

before starting a new picture operation. An application can easily terminate a single task on VPU by calling a function for

closing a certain instance.

for every task, one can refer to the decoding flow or encoding flow in the VPU API reference manual.

0 Kudos