.. | .. |
---|
917 | 917 | u32 extradata = SZ_16K; |
---|
918 | 918 | u32 size; |
---|
919 | 919 | |
---|
920 | | - y_stride = ALIGN(ALIGN(width, 192) * 4 / 3, 256); |
---|
921 | | - uv_stride = ALIGN(ALIGN(width, 192) * 4 / 3, 256); |
---|
| 920 | + y_stride = ALIGN(width * 4 / 3, 256); |
---|
| 921 | + uv_stride = ALIGN(width * 4 / 3, 256); |
---|
922 | 922 | y_sclines = ALIGN(height, 16); |
---|
923 | 923 | uv_sclines = ALIGN((height + 1) >> 1, 16); |
---|
924 | 924 | |
---|
.. | .. |
---|
1347 | 1347 | |
---|
1348 | 1348 | v4l2_m2m_buf_queue(m2m_ctx, vbuf); |
---|
1349 | 1349 | |
---|
| 1350 | + /* Skip processing queued capture buffers after LAST flag */ |
---|
| 1351 | + if (inst->session_type == VIDC_SESSION_TYPE_DEC && |
---|
| 1352 | + V4L2_TYPE_IS_CAPTURE(vb->vb2_queue->type) && |
---|
| 1353 | + inst->codec_state == VENUS_DEC_STATE_DRC) |
---|
| 1354 | + goto unlock; |
---|
| 1355 | + |
---|
1350 | 1356 | cache_payload(inst, vb); |
---|
1351 | 1357 | |
---|
1352 | 1358 | if (inst->session_type == VIDC_SESSION_TYPE_ENC && |
---|