-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/stream_input/amports/amstream.c b/drivers/stream_input/amports/amstream.c index b204dc6..dbca277 100644 --- a/drivers/stream_input/amports/amstream.c +++ b/drivers/stream_input/amports/amstream.c @@ -2567,6 +2567,26 @@ static long amstream_ioctl_set_ptr(struct port_priv_s *priv, ulong arg) } else r = -EINVAL; break; + case AMSTREAM_SET_PTR_HDR10P_DATA: + if ((this->type & PORT_TYPE_VIDEO) && (this->type & PORT_TYPE_FRAME)) { + if (!parm.pointer || (parm.len <= 0) || + (parm.len > PAGE_SIZE)) { + r = -EINVAL; + } else { + r = copy_from_user(priv->vdec->hdr10p_data_buf, + parm.pointer, parm.len); + if (r) { + priv->vdec->hdr10p_data_size = 0; + priv->vdec->hdr10p_data_valid = false; + r = -EINVAL; + } else { + priv->vdec->hdr10p_data_size = parm.len; + priv->vdec->hdr10p_data_valid = true; + } + } + } else + r = -EINVAL; + break; default: r = -ENOIOCTLCMD; break; |