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.

DM355 CODEC, Parameters, and VICP Interrupt

Hi,

I am integrating the DM355 MP4V Encoder codec into my application. I have successfully integrated the DM355 JPEG Encoder codec (works great!) and I am reusing a lot of the same framework code for MP4V. I can successfully create and allocate resources for the codec, and I have called control() with parameters and dynamic parameters with success. When I call process() with my first video frame, the codec does not appear to make forward progress. When I monitor the interrupt status, neither VENCINT or ASQINT occur. However, both IMXINT and IMCOPINT occur.

My system is not based on Linux, and I have been unsuccessful in determining what the exact behavior of VICP_wait should be in response to the above interrupts. For the JPEG codec, VICP_wait should respond to ASQINT for correct operation (we determined this from the older DVSDK code, comments, and empirically.) For MP4V, I have not found a way of determining which interrupts to respond to! Is anyone familiar with this part of the code, can you point me in the right direction?

(The test app code provided in the DVSDK has a funciton Host_int_handler() which is called in response to a VICP interrupt. I cannot find any other reference to this function in the DVSDK.)

 

 

 

  • Further searching has found the answer.

    The file linuxutils/irq/src/module/irqk.c contains the intr_info table which maps VICPSYNC_ResourceType to an interrupt number. In my case, the MP4V codec calls VICP_start and VICP_wait with resource type VICPSYNC_MJCP, which is mapped to IRQ_ASQINT.

     

  • That's right, and if you want VICP_wait() to respond to the IMCOPINT or IMXINT line, you need to use a VICP_ResourceType of VICP_IMX0.  When using VICP_IMX0, you can also specify the VICP_InterruptLine:
        - VICP_FIXED will map to IMXINT
        - VICP_FLEXIBLE will map to IMCOPINT

    Regards,

    - Rob