summaryrefslogtreecommitdiff
Diffstat
-rw-r--r--drivers/amvdec_ports/aml_vcodec_adapt.c8
-rw-r--r--drivers/amvdec_ports/aml_vcodec_adapt.h2
-rw-r--r--drivers/amvdec_ports/aml_vcodec_dec.c19
-rw-r--r--drivers/amvdec_ports/aml_vcodec_drv.h5
-rw-r--r--drivers/frame_provider/decoder/h264_multi/vmh264.c24
-rw-r--r--drivers/frame_provider/decoder/utils/vdec.c53
-rw-r--r--drivers/frame_provider/decoder/utils/vdec.h2
-rw-r--r--drivers/frame_provider/decoder/utils/vdec_v4l2_buffer_ops.c3
8 files changed, 103 insertions, 13 deletions
diff --git a/drivers/amvdec_ports/aml_vcodec_adapt.c b/drivers/amvdec_ports/aml_vcodec_adapt.c
index 7ac9ad5..367da7a 100644
--- a/drivers/amvdec_ports/aml_vcodec_adapt.c
+++ b/drivers/amvdec_ports/aml_vcodec_adapt.c
@@ -709,14 +709,16 @@ void aml_decoder_flush(struct aml_vdec_adapt *ada_ctx)
vdec_set_eos(vdec, true);
}
-int aml_codec_reset(struct aml_vdec_adapt *ada_ctx)
+int aml_codec_reset(struct aml_vdec_adapt *ada_ctx, int *flag)
{
struct vdec_s *vdec = ada_ctx->vdec;
int ret = 0;
if (vdec) {
- vdec_set_eos(vdec, false);
- ret = vdec_reset(vdec);
+ if (*flag != 2)
+ vdec_set_eos(vdec, false);
+ ret = vdec_v4l2_reset(vdec, *flag);
+ *flag = 0;
}
return ret;