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
1)do you mean vpudec can decode the middle of streaming? if yes, I don't think vpu can realise this, you should tell vpu how to do on the api level
2) the error like "ERROR :vpudec vpudec.c:1498:gst_vpudec_chain: Func VPU_DecDecodeBuf failed!! "
3) I'm not sure for this, you can add print infromation to debug this code.
Dear Joan-san,
Thank you for your support.
I'm sorry, I cannot tell you about the reproduction procedure of the problem.
(Because I use our original application)
Would you tell me the condition of (1)-(2)?
Would you tell me whether (3) processing has a problem?
Best Regards,
Yuuki