-rw-r--r-- | drivers/frame_provider/decoder/h265/vh265.c | 59 | ||||
-rw-r--r-- | drivers/frame_provider/decoder/utils/vdec.h | 4 | ||||
-rw-r--r-- | drivers/frame_provider/decoder/utils/vdec_input.c | 20 | ||||
-rw-r--r-- | drivers/frame_provider/decoder/utils/vdec_input.h | 2 | ||||
-rw-r--r-- | drivers/frame_provider/decoder/vp9/vvp9.c | 45 | ||||
-rw-r--r-- | drivers/stream_input/amports/amstream.c | 20 |
6 files changed, 149 insertions, 1 deletions
diff --git a/drivers/frame_provider/decoder/utils/vdec_input.c b/drivers/frame_provider/decoder/utils/vdec_input.c index 284dc02..d10a9bc 100644 --- a/drivers/frame_provider/decoder/utils/vdec_input.c +++ b/drivers/frame_provider/decoder/utils/vdec_input.c @@ -864,6 +864,26 @@ int vdec_input_add_chunk(struct vdec_input_s *input, const char *buf, return -ENOMEM; } + if ((vdec->hdr10p_data_valid == true) && + (vdec->hdr10p_data_size != 0)) { + char *new_buf; + new_buf = vzalloc(vdec->hdr10p_data_size); + if (new_buf) { + memcpy(new_buf, vdec->hdr10p_data_buf, vdec->hdr10p_data_size); + chunk->hdr10p_data_buf = new_buf; + chunk->hdr10p_data_size = vdec->hdr10p_data_size; + } else { + pr_err("%s:hdr10p data vzalloc size(%d) failed\n", + __func__, vdec->hdr10p_data_size); + chunk->hdr10p_data_buf = NULL; + chunk->hdr10p_data_size = 0; + } + } else { + chunk->hdr10p_data_buf = NULL; + chunk->hdr10p_data_size = 0; + } + vdec->hdr10p_data_valid = false; + chunk->magic = 0x4b554843; if (vdec->pts_valid) { chunk->pts = vdec->pts; |