Download raw body.
sys/uvideo: H264 use correct structures
tech@,
my original introducing of h264 had used a wrong types and desynced
fields.
I'd like to clear it up.
Tested on my Elgato, ffmpeg/ffplay consumes h264 stream.
Ok?
Index: sys/dev/usb/uvideo.c
===================================================================
RCS file: /cvs/src/sys/dev/usb/uvideo.c,v
diff -u -p -r1.262 uvideo.c
--- sys/dev/usb/uvideo.c 23 Aug 2025 10:52:45 -0000 1.262
+++ sys/dev/usb/uvideo.c 23 Aug 2025 11:55:10 -0000
@@ -3458,6 +3458,18 @@ uvideo_dump_desc_format_h264(struct uvid
UGETW(d->wMaxMBperSecOneResolutionNoScalability));
printf("wMaxMBperSecTwoResolutionsNoScalability=%d\n",
UGETW(d->wMaxMBperSecTwoResolutionsNoScalability));
+ printf("wMaxMBperSecThreeResolutionsNoScalability=%d\n",
+ UGETW(d->wMaxMBperSecThreeResolutionsNoScalability));
+ printf("wMaxMBperSecFourResolutionsNoScalability=%d\n",
+ UGETW(d->wMaxMBperSecFourResolutionsNoScalability));
+ printf("wMaxMBperSecOneResolutionTemporalScalability=%d\n",
+ UGETW(d->wMaxMBperSecOneResolutionTemporalScalability));
+ printf("wMaxMBperSecTwoResolutionsTemporalScalablility=%d\n",
+ UGETW(d->wMaxMBperSecTwoResolutionsTemporalScalablility));
+ printf("wMaxMBperSecThreeResolutionsTemporalScalability=%d\n",
+ UGETW(d->wMaxMBperSecThreeResolutionsTemporalScalability));
+ printf("wMaxMBperSecFourResolutionsTemporalScalability=%d\n",
+ UGETW(d->wMaxMBperSecFourResolutionsTemporalScalability));
printf("wMaxMBperSecOneResolutionTemporalQualityScalability=%d\n",
UGETW(d->wMaxMBperSecOneResolutionTemporalQualityScalability));
printf("wMaxMBperSecTwoResolutionsTemporalQualityScalability=%d\n",
@@ -3466,12 +3478,12 @@ uvideo_dump_desc_format_h264(struct uvid
UGETW(d->wMaxMBperSecThreeResolutionsTemporalQualityScalablity));
printf("wMaxMBperSecFourResolutionsTemporalQualityScalability=%d\n",
UGETW(d->wMaxMBperSecFourResolutionsTemporalQualityScalability));
- printf("wMaxMBperSecOneResolutionsTemporalSpatialScalability=%d\n",
- UGETW(d->wMaxMBperSecOneResolutionsTemporalSpatialScalability));
+ printf("wMaxMBperSecOneResolutionTemporalSpatialScalability=%d\n",
+ UGETW(d->wMaxMBperSecOneResolutionTemporalSpatialScalability));
printf("wMaxMBperSecTwoResolutionsTemporalSpatialScalability=%d\n",
UGETW(d->wMaxMBperSecTwoResolutionsTemporalSpatialScalability));
- printf("wMaxMBperSecThreeResolutionsTemporalSpatialScalability=%d\n",
- UGETW(d->wMaxMBperSecThreeResolutionsTemporalSpatialScalability));
+ printf("wMaxMBperSecThreeResolutionsTemporalSpatialScalablity=%d\n",
+ UGETW(d->wMaxMBperSecThreeResolutionsTemporalSpatialScalablity));
printf("wMaxMBperSecFourResolutionsTemporalSpatialScalability=%d\n",
UGETW(d->wMaxMBperSecFourResolutionsTemporalSpatialScalability));
printf("wMaxMBperSecOneResolutionFullScalability=%d\n",
Index: sys/dev/usb/uvideo.h
===================================================================
RCS file: /cvs/src/sys/dev/usb/uvideo.h,v
diff -u -p -r1.68 uvideo.h
--- sys/dev/usb/uvideo.h 16 Aug 2025 08:13:11 -0000 1.68
+++ sys/dev/usb/uvideo.h 23 Aug 2025 11:55:10 -0000
@@ -568,13 +568,19 @@ struct usb_video_format_h264_desc {
uByte bmSupportedRateControlModes;
uWord wMaxMBperSecOneResolutionNoScalability;
uWord wMaxMBperSecTwoResolutionsNoScalability;
+ uWord wMaxMBperSecThreeResolutionsNoScalability;
+ uWord wMaxMBperSecFourResolutionsNoScalability;
+ uWord wMaxMBperSecOneResolutionTemporalScalability;
+ uWord wMaxMBperSecTwoResolutionsTemporalScalablility;
+ uWord wMaxMBperSecThreeResolutionsTemporalScalability;
+ uWord wMaxMBperSecFourResolutionsTemporalScalability;
uWord wMaxMBperSecOneResolutionTemporalQualityScalability;
uWord wMaxMBperSecTwoResolutionsTemporalQualityScalability;
uWord wMaxMBperSecThreeResolutionsTemporalQualityScalablity;
uWord wMaxMBperSecFourResolutionsTemporalQualityScalability;
- uWord wMaxMBperSecOneResolutionsTemporalSpatialScalability;
+ uWord wMaxMBperSecOneResolutionTemporalSpatialScalability;
uWord wMaxMBperSecTwoResolutionsTemporalSpatialScalability;
- uWord wMaxMBperSecThreeResolutionsTemporalSpatialScalability;
+ uWord wMaxMBperSecThreeResolutionsTemporalSpatialScalablity;
uWord wMaxMBperSecFourResolutionsTemporalSpatialScalability;
uWord wMaxMBperSecOneResolutionFullScalability;
uWord wMaxMBperSecTwoResolutionsFullScalability;
@@ -651,20 +657,26 @@ struct uvideo_format_desc {
uByte bResolutionScaling;
uByte _reserved1;
uByte bmSupportedRateControlModes;
- uDWord wMaxMBperSecOneResolutionNoScalability;
- uDWord wMaxMBperSecTwoResolutionsNoScalability;
- uDWord wMaxMBperSecOneResolutionTemporalQualityScalability;
- uDWord wMaxMBperSecTwoResolutionsTemporalQualityScalability;
- uDWord wMaxMBperSecThreeResolutionsTemporalQualityScalablity;
- uDWord wMaxMBperSecFourResolutionsTemporalQualityScalability;
- uDWord wMaxMBperSecOneResolutionsTemporalSpatialScalability;
- uDWord wMaxMBperSecTwoResolutionsTemporalSpatialScalability;
- uDWord wMaxMBperSecThreeResolutionsTemporalSpatialScalability;
- uDWord wMaxMBperSecFourResolutionsTemporalSpatialScalability;
- uDWord wMaxMBperSecOneResolutionFullScalability;
- uDWord wMaxMBperSecTwoResolutionsFullScalability;
- uDWord wMaxMBperSecThreeResolutionsFullScalability;
- uDWord wMaxMBperSecFourResolutionsFullScalability;
+ uWord wMaxMBperSecOneResolutionNoScalability;
+ uWord wMaxMBperSecTwoResolutionsNoScalability;
+ uWord wMaxMBperSecThreeResolutionsNoScalability;
+ uWord wMaxMBperSecFourResolutionsNoScalability;
+ uWord wMaxMBperSecOneResolutionTemporalScalability;
+ uWord wMaxMBperSecTwoResolutionsTemporalScalablility;
+ uWord wMaxMBperSecThreeResolutionsTemporalScalability;
+ uWord wMaxMBperSecFourResolutionsTemporalScalability;
+ uWord wMaxMBperSecOneResolutionTemporalQualityScalability;
+ uWord wMaxMBperSecTwoResolutionsTemporalQualityScalability;
+ uWord wMaxMBperSecThreeResolutionsTemporalQualityScalablity;
+ uWord wMaxMBperSecFourResolutionsTemporalQualityScalability;
+ uWord wMaxMBperSecOneResolutionTemporalSpatialScalability;
+ uWord wMaxMBperSecTwoResolutionsTemporalSpatialScalability;
+ uWord wMaxMBperSecThreeResolutionsTemporalSpatialScalablity;
+ uWord wMaxMBperSecFourResolutionsTemporalSpatialScalability;
+ uWord wMaxMBperSecOneResolutionFullScalability;
+ uWord wMaxMBperSecTwoResolutionsFullScalability;
+ uWord wMaxMBperSecThreeResolutionsFullScalability;
+ uWord wMaxMBperSecFourResolutionsFullScalability;
} h264;
} u;
} __packed;
sys/uvideo: H264 use correct structures