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 MPEG Encoder + DCache

Hi,

I think I am seeing cache coherency problems with the DM355 MPEG Encoder.  Since this is closed source, can someone responsible for the CODECs please answer the following questions:

1. Does the output buffer (where compressed frames are written to) need to be in a cache-disabled section of memory?

2. Does the output buffer need to be cleaned/invalidated/flushed before the CODEC's process() is called? If so, which one?

3. After process() is called, should the output buffer be cleaned/invalidated/flushed before the next call to process()? If so, which one?

4. When process() returns, are all DMA transactions complete?

Thanks

JPM

  • Hi, JPM,

    Do you know what's difference between DM355 and DM368?

  • Hi Yang1,

    To some extent, this should be useful for you to understand the difference. http://www.ti.com/lit/an/spraau4a/spraau4a.pdf

  • There appears to exist a set of xDAIS DMA Rules, although I can't find the exact TI documentation on it.

    Invalidating the cache range for the out buffer before process() and flushing the same range after process() seems to be DMA Rule 7. However, implementing this rule does not fix my problem.

    Further code instrumentation demonstrated that under periods of high motion, and around frames 30 - 50, the process() call returns OK but the generated bytes result is 0. I am thinking that this is a bug in the codec. Either the codec is choking on a frame and bailing out with incorrect return value, or the generated bytes variable is not being updated correctly.

    At any rate, since the condition can be detected, it can be dealt with.

  • Hi, Bhat,

    Thanks so much for your help. I'm not familiar with DM36X but I know it has the most market share of IP Camera's solution around the world than other solution.