[mpp_dec] move discard flag out of mpp_dec.cpp to vpu_api_legacy.cpp

git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@566 6e48237b-75ef-9749-8fc9-41990f28c85a
This commit is contained in:
DingWei
2016-02-04 03:53:10 +00:00
parent 9ec162eb03
commit b246211b2d
2 changed files with 5 additions and 8 deletions

View File

@@ -298,10 +298,8 @@ static MPP_RET try_proc_dec_task(Mpp *mpp, DecTask *task)
while (MPP_OK == mpp_buf_slot_dequeue(frame_slots, &index, QUEUE_DISPLAY)) { while (MPP_OK == mpp_buf_slot_dequeue(frame_slots, &index, QUEUE_DISPLAY)) {
MppFrame frame = NULL; MppFrame frame = NULL;
RK_U32 discard;
mpp_buf_slot_get_prop(frame_slots, index, SLOT_FRAME, &frame); mpp_buf_slot_get_prop(frame_slots, index, SLOT_FRAME, &frame);
discard = mpp_frame_get_discard(frame); if (!dec->reset_flag) {
if (!dec->reset_flag && !discard) {
mpp_put_frame(mpp, frame); mpp_put_frame(mpp, frame);
//mpp_log("discard=%d \n",0); //mpp_log("discard=%d \n",0);
} else { } else {
@@ -682,10 +680,8 @@ void *mpp_dec_hal_thread(void *data)
RK_S32 index; RK_S32 index;
while (MPP_OK == mpp_buf_slot_dequeue(frame_slots, &index, QUEUE_DISPLAY)) { while (MPP_OK == mpp_buf_slot_dequeue(frame_slots, &index, QUEUE_DISPLAY)) {
MppFrame frame = NULL; MppFrame frame = NULL;
RK_U32 discard;
mpp_buf_slot_get_prop(frame_slots, index, SLOT_FRAME, &frame); mpp_buf_slot_get_prop(frame_slots, index, SLOT_FRAME, &frame);
discard = mpp_frame_get_discard(frame); if (!dec->reset_flag) {
if (!dec->reset_flag && !discard) {
mpp_put_frame(mpp, frame); mpp_put_frame(mpp, frame);
} else { } else {
mpp_frame_deinit(&frame); mpp_frame_deinit(&frame);

View File

@@ -144,11 +144,12 @@ RK_S32 VpuApi:: decode_getoutframe(DecoderOut_t *aDecOut)
vframe->DisplayHeight = mpp_frame_get_height(mframe); vframe->DisplayHeight = mpp_frame_get_height(mframe);
vframe->FrameWidth = mpp_frame_get_hor_stride(mframe); vframe->FrameWidth = mpp_frame_get_hor_stride(mframe);
vframe->FrameHeight = mpp_frame_get_ver_stride(mframe); vframe->FrameHeight = mpp_frame_get_ver_stride(mframe);
vframe->ErrorInfo = mpp_frame_get_errinfo(mframe); vframe->ErrorInfo = mpp_frame_get_errinfo(mframe) | mpp_frame_get_discard(mframe);
//mpp_err("vframe->ErrorInfo = %08x \n", vframe->ErrorInfo); //mpp_err("vframe->ErrorInfo = %08x \n", vframe->ErrorInfo);
pts = mpp_frame_get_pts(mframe); pts = mpp_frame_get_pts(mframe);
aDecOut->timeUs = pts; aDecOut->timeUs = pts;
//mpp_err("get one frame timeUs %lld, errinfo=%08x",aDecOut->timeUs, vframe->ErrorInfo); //mpp_err("get one frame timeUs %lld, poc=%d, errinfo=%d, discard=%d",aDecOut->timeUs,
// mpp_frame_get_poc(mframe), mpp_frame_get_errinfo(mframe), mpp_frame_get_discard(mframe));
vframe->ShowTime.TimeHigh = (RK_U32)(pts >> 32); vframe->ShowTime.TimeHigh = (RK_U32)(pts >> 32);
vframe->ShowTime.TimeLow = (RK_U32)pts; vframe->ShowTime.TimeLow = (RK_U32)pts;
buf = mpp_frame_get_buffer(mframe); buf = mpp_frame_get_buffer(mframe);