summaryrefslogtreecommitdiff
path: root/src/class/video/video_device.c
diff options
context:
space:
mode:
authorLi Junru <[email protected]>2024-05-22 20:57:23 +0800
committerLi Junru <[email protected]>2024-05-22 20:57:23 +0800
commit61eee535c16701acd577b253bc17a7716ae60c7c (patch)
treeaa01c953d6df09f03fd944083395aec6298caccb /src/class/video/video_device.c
parent1f259b3ab0f1b9587dee9c0bfb5574d70d021640 (diff)
feat(uvc): support format frame based
Diffstat (limited to 'src/class/video/video_device.c')
-rw-r--r--src/class/video/video_device.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/class/video/video_device.c b/src/class/video/video_device.c
index 4218835aa..5310a393b 100644
--- a/src/class/video/video_device.c
+++ b/src/class/video/video_device.c
@@ -398,7 +398,7 @@ static inline void const *_find_desc_format(void const *beg, void const *end, ui
if ((fmt == VIDEO_CS_ITF_VS_FORMAT_UNCOMPRESSED ||
fmt == VIDEO_CS_ITF_VS_FORMAT_MJPEG ||
fmt == VIDEO_CS_ITF_VS_FORMAT_DV ||
- fmt == VIDEO_CS_ITF_VS_FRAME_FRAME_BASED) &&
+ fmt == VIDEO_CS_ITF_VS_FORMAT_FRAME_BASED) &&
fmtnum == p[3]) {
return cur;
}
@@ -464,6 +464,9 @@ static bool _update_streaming_parameters(videod_streaming_interface_t const *stm
case VIDEO_CS_ITF_VS_FORMAT_MJPEG:
break;
+ case VIDEO_CS_ITF_VS_FORMAT_FRAME_BASED:
+ break;
+
default: return false;
}
@@ -489,6 +492,10 @@ static bool _update_streaming_parameters(videod_streaming_interface_t const *stm
frame_size = (uint_fast32_t)frm->wWidth * frm->wHeight * 16 / 8; /* YUV422 */
break;
+ case VIDEO_CS_ITF_VS_FORMAT_FRAME_BASED:
+ frame_size = (uint_fast32_t)frm->wWidth * frm->wHeight * 16 / 8; /* YUV422 */
+ break;
+
default: break;
}
param->dwMaxVideoFrameSize = frame_size;
@@ -578,6 +585,10 @@ static bool _negotiate_streaming_parameters(videod_streaming_interface_t const *
frmnum = fmt->mjpeg.bDefaultFrameIndex;
break;
+ case VIDEO_CS_ITF_VS_FORMAT_FRAME_BASED:
+ frmnum = fmt->frame_based.bDefaultFrameIndex;
+ break;
+
default: return false;
}
break;
@@ -596,6 +607,10 @@ static bool _negotiate_streaming_parameters(videod_streaming_interface_t const *
frame_size = (uint_fast32_t)frm->wWidth * frm->wHeight * 16 / 8; /* YUV422 */
break;
+ case VIDEO_CS_ITF_VS_FORMAT_FRAME_BASED:
+ frame_size = (uint_fast32_t)frm->wWidth * frm->wHeight * 16 / 8; /* YUV422 */
+ break;
+
default: return false;
}
param->dwMaxVideoFrameSize = frame_size;