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.

gstreamer oom-killer

Hi All,

 

I am wondering if you can help me with a problem.

 

After some time of decoding video (maybe 2 hours, maybe 12 hours) oom-killer jumps up and kills my program.

 

I am using DVSDK 2.1 and TI Gstreamer 1.01 on a DM368. I use the following pipe (general):

 

rtspsrc ! rtph264depay ! TIViddec2 ! TIDmaiVideoSink

 

Can anyone suggest WHY this is happening and how I might go about resolving it? It seems completely random, and when I check the memory being used while running I seem to be only using around 15% or linux mem (total processes).  I am not sure what is triggering it and what to do to resolve it. Can someone please give me some suggestions? I have been workong on this for a month without resolve.

Just a side note, this issue does not occur when using a videotestsrc. So, I suspect that it has soemthing to do with rtspsrc or rtph264depay. (any maybe other depayloaders?)

Thanks

Tim

  • Here is what I think is happening -

    When you receive data over rtp, it is pushed from the sever, in this case if you need to match up to server's streaming. In case you are not decoding at the right rate and end up consuming slower than what server is streaming, the buffer starts building between slower element in your pipeline and the source. Since Source just uses malloc to keep allocating buffer for incoming data and buffer free's are not happening at the same rate, your memory usage keeps growing with time... and hence gets out of memory eventually...  To confirm this please see is your memory usage growing with time?

    Thanks,

    Satish