From 96db9b96da50a08b1a53fd35e91fe68721bfab5b Mon Sep 17 00:00:00 2001 From: sakumisu <1203593632@qq.com> Date: Sun, 16 Jun 2024 16:08:01 +0800 Subject: [PATCH] update h264 macro --- class/video/usb_video.h | 36 +++++++++++++++---------------- demo/video_static_h264_template.c | 2 +- 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/class/video/usb_video.h b/class/video/usb_video.h index 06d6d13c..8585da7a 100644 --- a/class/video/usb_video.h +++ b/class/video/usb_video.h @@ -1078,8 +1078,10 @@ struct video_autoexposure_mode { #define VIDEO_GUID_YUY2 0x59, 0x55, 0x59, 0x32, 0x00, 0x00, 0x10, 0x00, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71 #define VIDEO_GUID_NV12 0x4E, 0x56, 0x31, 0x32, 0x00, 0x00, 0x10, 0x00, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71 +#define VIDEO_GUID_NV21 0x4E, 0x56, 0x32, 0x31, 0x00, 0x00, 0x10, 0x00, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71 #define VIDEO_GUID_M420 0x4D, 0x34, 0x32, 0x30, 0x00, 0x00, 0x10, 0x00, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71 #define VIDEO_GUID_I420 0x49, 0x34, 0x32, 0x30, 0x00, 0x00, 0x10, 0x00, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71 +#define VIDEO_GUID_H264 0x48, 0x32, 0x36, 0x34, 0x00, 0x00, 0x10, 0x00, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71 #define VIDEO_VC_TERMINAL_LEN (13 + 18 + 12 + 9) @@ -1317,25 +1319,21 @@ struct video_autoexposure_mode { bFrameIntervalType, /* bFrameIntervalType : Indicates how the frame interval can be programmed. 0: Continuous frame interval 1..255: The number of discrete frame */ \ __VA_ARGS__ -#define VIDEO_VS_FORMAT_H264_DESCRIPTOR_INIT(bFormatIndex, bNumFrameDescriptors) \ - /*Payload Format(H264) Descriptor */ \ - 0x1c, /* bLength */ \ - 0x24, /* bDescriptorType : CS_INTERFACE */ \ - 0x10, /* bDescriptorSubType : VS_FORMAT_FRAME_BASED subtype */ \ - bFormatIndex, /* bFormatIndex : First (and only) format descriptor */ \ - bNumFrameDescriptors, /* bNumFrameDescriptors : One frame descriptor for this format follows. */ /* guidFormat {34363248-0000-0010-8000-00AA00389B71}(H264) */ \ - 0x48, 0x32, 0x36, 0x34, \ - 0x00, 0x00, \ - 0x10, 0x00, \ - 0x80, 0x00, \ - 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71, \ - 0x10, /* bBitsPerPixel */ \ - 0x01, /* bDefaultFrameIndex : Default frame index is 1. */ \ - 0x00, /* bAspectRatioX : Non-interlaced stream – not required. */ \ - 0x00, /* bAspectRatioY : Non-interlaced stream – not required. */ \ - 0x00, /* bmInterlaceFlags : Non-interlaced stream */ \ - 0x00, /* bCopyProtect : No restrictions imposed on the duplication of this video stream. */ \ - 0x01 /* bVariableSize */ +#define VIDEO_VS_FORMAT_H264_DESCRIPTOR_INIT(bFormatIndex, bNumFrameDescriptors) \ + /*Payload Format(H.264) Descriptor */ \ + 0x1c, /* bLength */ \ + 0x24, /* bDescriptorType : CS_INTERFACE */ \ + VIDEO_VS_FORMAT_FRAME_BASED_DESCRIPTOR_SUBTYPE, /* bDescriptorSubType : VS_FORMAT_FRAME_BASED subtype */\ + bFormatIndex, /* bFormatIndex : First (and only) format descriptor */ \ + bNumFrameDescriptors, /* bNumFrameDescriptors : One frame descriptor for this format follows. */ \ + VIDEO_GUID_H264, \ + 0x00, /* bmFlags : Uses fixed size samples.. */ \ + 0x01, /* bDefaultFrameIndex : Default frame index is 1. */ \ + 0x00, /* bAspectRatioX : Non-interlaced stream – not required. */ \ + 0x00, /* bAspectRatioY : Non-interlaced stream – not required. */ \ + 0x00, /* bmInterlaceFlags : Non-interlaced stream */ \ + 0x00, /* bCopyProtect : No restrictions imposed on the duplication of this video stream. */ \ + 0x00 /* Variable size: False */ #define VIDEO_VS_FRAME_H264_DESCRIPTOR_INIT(bFrameIndex, wWidth, wHeight, dwMinBitRate, dwMaxBitRate, \ dwDefaultFrameInterval, bFrameIntervalType, ...) \ diff --git a/demo/video_static_h264_template.c b/demo/video_static_h264_template.c index cb5c2029..a2d55ca8 100644 --- a/demo/video_static_h264_template.c +++ b/demo/video_static_h264_template.c @@ -56,7 +56,7 @@ const uint8_t video_descriptor[] = { VIDEO_VS_DESCRIPTOR_INIT(0x01, 0x00, 0x00), VIDEO_VS_INPUT_HEADER_DESCRIPTOR_INIT(0x01, VS_HEADER_SIZ, VIDEO_IN_EP, 0x00), VIDEO_VS_FORMAT_H264_DESCRIPTOR_INIT(0x01, 0x01), - VIDEO_VS_FRAME_H264_DESCRIPTOR_INIT(0x01, WIDTH, HEIGHT, MIN_BIT_RATE, MAX_BIT_RATE, MAX_FRAME_SIZE, DBVAL(INTERVAL), 0x01, DBVAL(INTERVAL)), + VIDEO_VS_FRAME_H264_DESCRIPTOR_INIT(0x01, WIDTH, HEIGHT, MIN_BIT_RATE, MAX_BIT_RATE, DBVAL(INTERVAL), 0x01, DBVAL(INTERVAL)), VIDEO_VS_DESCRIPTOR_INIT(0x01, 0x01, 0x01), /* 1.2.2.2 Standard VideoStream Isochronous Video Data Endpoint Descriptor */ 0x07, /* bLength */