AnsweredAssumed Answered

Gstreamer Pipeline error for H.264 stream for i.MX6DL Linux BSP

Question asked by yuuki on Jun 26, 2017
Latest reply on Jul 19, 2017 by Joan Xie

Dear all,

 

We have the problem that pipeline error of gstreamer occurs if idr frame is not got when data from H.264 stream is decoded.

 

BSP : Linux L3.10.53 / Gstreamer 1.2.3

 

When the data receive is started in the middle of stream data, and then there is following problem in vpudec.
 - Memory for the decode is short
 - Decode is not completed for Call of the supposed(assumed) number of times.
As a result, pipeline error occurs.

Please refer to an attached file for the details.

 

<Question>
(1) In vpudec, would you tell me the condition that H.264 decode is completed?
They want to know the condition that data is output from src pad for Plugin of latter part.
If specific Frame information is necessary, please tell me it.

 

(2)Would you tell me the case which an error happens in  the function:VPU_DecDecodeBuf() in the vpu_wrapper.c file?

 

(3)They modified it as follows. Is there a problem about these modification?

 

[Before modification]
gstvpudecobject.c:gst_vpu_dec_object_decode()
line:1098-

===================================================
dec_ret = VPU_DecDecodeBuf(vpu_dec_object->handoe, &in_data, &buf_ret);
if (dec_ret != VPU_DEC_RET_SUCCESS) {
    GST_ERROR_OBJECT(vpu_dec_object, "faioed to decode frame: %s", \
              gst_vpu_dec_object_strerror(dec_ret));
    return GST_FLOW_ERROR;
===================================================


[After modification]
gstvpudecobject.c:gst_vpu_dec_object_decode()
line:1098-

===================================================
dec_ret = VPU_DecDecodeBuf(vpu_dec_object->handoe, &in_data, &buf_ret);
if (dec_ret != VPU_DEC_RET_SUCCESS) {
    GST_ERROR_OBJECT(vpu_dec_object, "faioed to decode frame: %s", \
              gst_vpu_dec_object_strerror(dec_ret));
    vpu_dec_object->state = STATE_REGISTRIED_FRAME_BUFFER;
    gst_vpu_dec_object_config(vpu_dec_object, bdec, NULL);
    return GST_FLOW_OK;
===================================================

 

May I have advice?

 

Best Regards,
Yuuki

Attachments

Outcomes