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.
A gstreamer C application is written to be run on Dm368 for DVI+rtp streaming.
Also recording activity takes place on board based on start and stop recording commands as well as image capture commands.Currently being received over the socket. There are 2 threads created in main supervisor() handles socket programming for recording/capture commands: doSomeThing(void *arg) is the therad handling gstreamer pipeline: In this function: The DVI +stream pipeline is created using create_pipeline(); all the elements are linked using link_elements(); Design: v4l2src-->queue-->filtercaps-- \ -->tee-->queue-->TIDmaivideosink(DVI output) | |-->queue-->dmaienc_h264-->rtph264pay-->udpsink(streaming) Approach for Recording(Start/Stop) and Image Snaphot 1)First Approach On start recording command(Send 1 over socket) A recording bin is created using create_recBin() |----------------------------------------------------------| |recording bin | | | | queue-->dmaienc_h264-->qtmux-->filesink | | | | | |----------------------------------------------------------| Then start_recording() is called which performs: 1)adding recording bin to the pipeline 2)set to playing state 3)and it is attached to the tee by requesting a pad from it. On the stop command(send 5 over socket) stop_recording(&pipedata) function is called which in turn calls handle_pad_block() The following are the steps in handle_pad_block(): 1)the recording bin ghost pad is unlinked from the tee. 2)send EOS to the recording bin . 4)the recording bin is removed from the pipeline. 6)the recording bin is set to null 7)the recording bin is unref. 8)the requested tee pad is released using gst_element_release_request_pad () On similar lines on start capture (send 2 over socket) a image a capture bin is created using create_imgBin() |----------------------------------------------------------| |capture bin | | | | queue-->jpegenc-->filesink | | | | | |----------------------------------------------------------| and attached to the tee by requesting a pad from it when the start capture command is received. Here a sleep function is set then image_done() function is called 1)the requested tee pad and the ghost pad of the capture bin is then unlinked. 2)a EOS is sent to the capture bin. A event probe is used to detect whether the eos is received at the filesink 3)the capture bin is removed from the pipeline. 4)the capture bin is set to null 5)the capture bin is and unref. 6)the requested tee pad is released using gst_element_release_request_pad ()
The application runs for quite a few initial no. of times of recording and capture before getting crashed (crash dump attached).Can any one sugest a suitable technique to solve the problem.
8875.kernelPagingREquestErrorOnlyRec+capture.txt0410.video_capture_application.c