Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 593f2dfd authored by Jayasena Sangaraboina's avatar Jayasena Sangaraboina
Browse files

msm: vidc: Add support for marker pass through in input buffer



- App would mark a buffer with a flag in input buffer and
  this needs to be propogated by firmware in the output buffer
- Add support to handle this feature

Change-Id: Iea810096c405ce4cdaa63ae6768eb7f5f58ecef3
Signed-off-by: default avatarJayasena Sangaraboina <jsanga@codeaurora.org>
parent 8899bb86
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -862,6 +862,11 @@ static void handle_fbd(enum command_response cmd, void *data)
			vb->v4l2_buf.flags |= V4L2_QCOM_BUF_DATA_CORRUPT;
		if (fill_buf_done->flags1 & HAL_BUFFERFLAG_DROP_FRAME)
			vb->v4l2_buf.flags |= V4L2_QCOM_BUF_DROP_FRAME;
		if (fill_buf_done->flags1 &
			HAL_BUFFERFLAG_TS_DISCONTINUITY)
			vb->v4l2_buf.flags |= V4L2_QCOM_BUF_TS_DISCONTINUITY;
		if (fill_buf_done->flags1 & HAL_BUFFERFLAG_TS_ERROR)
			vb->v4l2_buf.flags |= V4L2_QCOM_BUF_TS_ERROR;
		switch (fill_buf_done->picture_type) {
		case HAL_PICTURE_IDR:
			vb->v4l2_buf.flags |= V4L2_QCOM_BUF_FLAG_IDRFRAME;
@@ -2018,6 +2023,19 @@ int msm_comm_qbuf(struct vb2_buffer *vb)
			if (vb->v4l2_buf.flags &
				V4L2_QCOM_BUF_TIMESTAMP_INVALID)
				frame_data.timestamp = LLONG_MAX;
			if (vb->v4l2_buf.flags &
					V4L2_QCOM_BUF_TS_DISCONTINUITY) {
				frame_data.flags |=
					HAL_BUFFERFLAG_TS_DISCONTINUITY;
				dprintk(VIDC_DBG,
					"Received TS_DISCONTINUE on output\n");
			}
			if (vb->v4l2_buf.flags & V4L2_QCOM_BUF_TS_ERROR) {
				frame_data.flags |=
					HAL_BUFFERFLAG_TS_ERROR;
				dprintk(VIDC_DBG,
					"Received TS_ERROR on output cap\n");
			}
			dprintk(VIDC_DBG,
				"Sending etb to hal: device_addr: 0x%x"
				"Alloc: %d, filled: %d, offset: %d\n",
+3 −0
Original line number Diff line number Diff line
@@ -45,6 +45,9 @@
#define HAL_BUFFERFLAG_ENDOFSUBFRAME    0x00000400
#define HAL_BUFFERFLAG_EOSEQ            0x00200000
#define HAL_BUFFERFLAG_DROP_FRAME       0x20000000
#define HAL_BUFFERFLAG_TS_DISCONTINUITY	0x40000000
#define HAL_BUFFERFLAG_TS_ERROR		0x80000000



#define HAL_DEBUG_MSG_LOW				0x00000001
+2 −0
Original line number Diff line number Diff line
@@ -710,6 +710,8 @@ struct v4l2_buffer {
#define V4L2_QCOM_BUF_DROP_FRAME		0x400000
#define V4L2_QCOM_BUF_INPUT_UNSUPPORTED		0x800000
#define V4L2_QCOM_BUF_FLAG_EOS			0x1000000
#define V4L2_QCOM_BUF_TS_DISCONTINUITY		0x2000000
#define V4L2_QCOM_BUF_TS_ERROR			0x4000000

/**
 * struct v4l2_exportbuffer - export of video buffer as DMABUF file descriptor