[vpu_legacy]:eos set no contain in frame, return in ret

[mpp_dec]:when flush lock codec signal, fixed dead loop in seek status
[mpp_dec]:when flush check first packet if is config keep this packet to decoder avoid extract data has been flush cause decoder err
[h265d]: mark h265 dec error use check ref has error if ref error mark current dec frame error

git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@524 6e48237b-75ef-9749-8fc9-41990f28c85a
This commit is contained in:
ChenSiyong
2016-01-13 10:00:49 +00:00
parent 41fcb47315
commit 1975d15c8d
6 changed files with 61 additions and 6 deletions

View File

@@ -32,6 +32,7 @@ VpuApi::VpuApi()
#endif
mpp_construct(&mpp_ctx, &mpi);
frame_count = 0;
set_eos = 0;
mpp_log_f("ok\n");
}
@@ -129,6 +130,10 @@ RK_S32 VpuApi:: decode_getoutframe(DecoderOut_t *aDecOut)
aDecOut->size = 0;
return 0;
}
if(set_eos){
aDecOut->size = 0;
return VPU_API_EOS_STREAM_REACHED;
}
if (MPP_OK == mpi->decode_get_frame(mpp_ctx, &mframe)) {
MppBuffer buf;
RK_U64 pts;
@@ -189,7 +194,10 @@ RK_S32 VpuApi:: decode_getoutframe(DecoderOut_t *aDecOut)
vframe->vpumem.offset = (RK_U32*)buf;
}
if (mpp_frame_get_eos(mframe)) {
aDecOut->nFlags = VPU_API_EOS_STREAM_REACHED;
set_eos = 1;
if(buf == NULL){
aDecOut->size = 0;
}
}
mpp_free(mframe);
} else {