summaryrefslogtreecommitdiff
Diffstat
-rw-r--r--drivers/frame_provider/decoder/h265/vh265.c59
-rw-r--r--drivers/frame_provider/decoder/utils/vdec.h4
-rw-r--r--drivers/frame_provider/decoder/utils/vdec_input.c20
-rw-r--r--drivers/frame_provider/decoder/utils/vdec_input.h2
-rw-r--r--drivers/frame_provider/decoder/vp9/vvp9.c45
-rw-r--r--drivers/stream_input/amports/amstream.c20
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;