요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
Camera·output terminals와 processing unit
configfs-usb-gadget-uvc:42-114Camera input terminal에서 processing unit을 거쳐 output terminal로 이어지는 VideoControl topology의 ID, 연결 관계, control bitmap과 focal length·digital magnification 속성을 설명합니다.
Extension unit와 control header
configfs-usb-gadget-uvc:116-155Vendor-specific extension unit의 GUID, input pins, source IDs, control bitmap과 control header의 clock frequency 및 UVC version attributes를 설명합니다.
Streaming interface, class, color matching
configfs-usb-gadget-uvc:156-225VideoStreaming interface number와 FS·HS·SS class descriptors, 기본 및 추가 color matching descriptor의 matrix·transfer·primary attributes를 설명합니다.
MJPEG format과 frame descriptors
configfs-usb-gadget-uvc:227-284MJPEG format index, controls, interlace·aspect ratio·flags·default frame과 각 frame의 interval, buffer size, bitrate, dimensions, capabilities를 설명합니다.
Uncompressed format과 frame descriptors
configfs-usb-gadget-uvc:286-343Uncompressed format의 bits per pixel과 GUID를 포함한 format descriptor 및 frame interval·buffer size·bitrate·dimensions·capabilities attributes를 설명합니다.
Frame-based format과 frame descriptors
configfs-usb-gadget-uvc:345-407Frame-based format descriptor와 packed fixed-frame-size video의 stride alignment를 나타내는 dwBytesPerLine을 포함한 frame descriptor를 설명합니다.
Streaming header와 V4L2 function name
configfs-usb-gadget-uvc:409-438Streaming header의 trigger·still capture·terminal link·interface capability attributes와 생성된 video4linux device에서 UVC configfs function instance 이름을 읽는 sysfs 경로를 설명합니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
What: /config/usb-gadget/gadget/functions/uvc.name
Date: Dec 2014
KernelVersion: 4.0
Description: UVC function directory
=================== =============================
streaming_maxburst 0..15 (ss only)
streaming_maxpacket 1..1023 (fs), 1..3072 (hs/ss)
streaming_interval 1..16
function_name string [32]
=================== =============================
What: /config/usb-gadget/gadget/functions/uvc.name/control
Date: Dec 2014
KernelVersion: 4.0
Description: Control descriptors
All attributes read only except enable_interrupt_ep:
=================== =============================
bInterfaceNumber USB interface number for this
streaming interface
enable_interrupt_ep flag to enable the interrupt
endpoint for the VC interface
=================== =============================
What: /config/usb-gadget/gadget/functions/uvc.name/control/class
Date: Dec 2014
KernelVersion: 4.0
Description: Class descriptors
What: /config/usb-gadget/gadget/functions/uvc.name/control/class/ss
Date: Dec 2014
KernelVersion: 4.0
Description: Super speed control class descriptors
What: /config/usb-gadget/gadget/functions/uvc.name/control/class/fs
Date: Dec 2014
KernelVersion: 4.0
Description: Full speed control class descriptors
What: /config/usb-gadget/gadget/functions/uvc.name/control/terminal
Date: Dec 2014
KernelVersion: 4.0
Description: Terminal descriptors
What: /config/usb-gadget/gadget/functions/uvc.name/control/terminal/output
Date: Dec 2014
KernelVersion: 4.0
Description: Output terminal descriptors
What: /config/usb-gadget/gadget/functions/uvc.name/control/terminal/output/default
Date: Dec 2014
KernelVersion: 4.0
Description: Default output terminal descriptors
All attributes read only except bSourceID:
============== =============================================
iTerminal index of string descriptor
bSourceID id of the terminal to which this terminal
is connected
bAssocTerminal id of the input terminal to which this output
terminal is associated
wTerminalType terminal type
bTerminalID a non-zero id of this terminal
============== =============================================
What: /config/usb-gadget/gadget/functions/uvc.name/control/terminal/camera
Date: Dec 2014
KernelVersion: 4.0
Description: Camera terminal descriptors
What: /config/usb-gadget/gadget/functions/uvc.name/control/terminal/camera/default
Date: Dec 2014
KernelVersion: 4.0
Description: Default camera terminal descriptors
All attributes read only except bmControls, which is read/write:
======================== ====================================
bmControls bitmap specifying which controls are
supported for the video stream
wOcularFocalLength the value of Locular
wObjectiveFocalLengthMax the value of Lmin
wObjectiveFocalLengthMin the value of Lmax
iTerminal index of string descriptor
bAssocTerminal id of the output terminal to which
this terminal is connected
wTerminalType terminal type
bTerminalID a non-zero id of this terminal
======================== ====================================
What: /config/usb-gadget/gadget/functions/uvc.name/control/processing
Date: Dec 2014
KernelVersion: 4.0
Description: Processing unit descriptors
What: /config/usb-gadget/gadget/functions/uvc.name/control/processing/default
Date: Dec 2014
KernelVersion: 4.0
Description: Default processing unit descriptors
All attributes read only except bmControls, which is read/write:
=============== ========================================
iProcessing index of string descriptor
bmControls bitmap specifying which controls are
supported for the video stream
wMaxMultiplier maximum digital magnification x100
bSourceID id of the terminal to which this unit is
connected
bUnitID a non-zero id of this unit
=============== ========================================
What: /config/usb-gadget/gadget/functions/uvc.name/control/extensions
Date: Nov 2022
KernelVersion: 6.1
Description: Extension unit descriptors
What: /config/usb-gadget/gadget/functions/uvc.name/control/extensions/name
Date: Nov 2022
KernelVersion: 6.1
Description: Extension Unit (XU) Descriptor
bLength, bUnitID and iExtension are read-only. All others are
read-write.
================= ========================================
bLength size of the descriptor in bytes
bUnitID non-zero ID of this unit
guidExtensionCode Vendor-specific code identifying the XU
bNumControls number of controls in this XU
bNrInPins number of input pins for this unit
baSourceID list of the IDs of the units or terminals
to which this XU is connected
bControlSize size of the bmControls field in bytes
bmControls list of bitmaps detailing which vendor
specific controls are supported
iExtension index of a string descriptor that describes
this extension unit
================= ========================================
What: /config/usb-gadget/gadget/functions/uvc.name/control/header
Date: Dec 2014
KernelVersion: 4.0
Description: Control header descriptors
What: /config/usb-gadget/gadget/functions/uvc.name/control/header/name
Date: Dec 2014
KernelVersion: 4.0
Description: Specific control header descriptors
dwClockFrequency
bcdUVC
What: /config/usb-gadget/gadget/functions/uvc.name/streaming
Date: Dec 2014
KernelVersion: 4.0
Description: Streaming descriptors
All attributes read only:
================ =============================
bInterfaceNumber USB interface number for this
streaming interface
================ =============================
What: /config/usb-gadget/gadget/functions/uvc.name/streaming/class
Date: Dec 2014
KernelVersion: 4.0
Description: Streaming class descriptors
What: /config/usb-gadget/gadget/functions/uvc.name/streaming/class/ss
Date: Dec 2014
KernelVersion: 4.0
Description: Super speed streaming class descriptors
What: /config/usb-gadget/gadget/functions/uvc.name/streaming/class/hs
Date: Dec 2014
KernelVersion: 4.0
Description: High speed streaming class descriptors
What: /config/usb-gadget/gadget/functions/uvc.name/streaming/class/fs
Date: Dec 2014
KernelVersion: 4.0
Description: Full speed streaming class descriptors
What: /config/usb-gadget/gadget/functions/uvc.name/streaming/color_matching
Date: Dec 2014
KernelVersion: 4.0
Description: Color matching descriptors
What: /config/usb-gadget/gadget/functions/uvc.name/streaming/color_matching/default
Date: Dec 2014
KernelVersion: 4.0
Description: Default color matching descriptors
All attributes read/write:
======================== ======================================
bMatrixCoefficients matrix used to compute luma and
chroma values from the color primaries
bTransferCharacteristics optoelectronic transfer
characteristic of the source picture,
also called the gamma function
bColorPrimaries color primaries and the reference
white
======================== ======================================
What: /config/usb-gadget/gadget/functions/uvc.name/streaming/color_matching/name
Date: Dec 2022
KernelVersion: 6.3
Description: Additional color matching descriptors
All attributes read/write:
======================== ======================================
bMatrixCoefficients matrix used to compute luma and
chroma values from the color primaries
bTransferCharacteristics optoelectronic transfer
characteristic of the source picture,
also called the gamma function
bColorPrimaries color primaries and the reference
white
======================== ======================================
What: /config/usb-gadget/gadget/functions/uvc.name/streaming/mjpeg
Date: Dec 2014
KernelVersion: 4.0
Description: MJPEG format descriptors
What: /config/usb-gadget/gadget/functions/uvc.name/streaming/mjpeg/name
Date: Dec 2014
KernelVersion: 4.0
Description: Specific MJPEG format descriptors
All attributes read only,
except bmaControls and bDefaultFrameIndex:
=================== =====================================
bFormatIndex unique id for this format descriptor;
only defined after parent header is
linked into the streaming class;
read-only
bmaControls this format's data for bmaControls in
the streaming header
bmInterlaceFlags specifies interlace information,
read-only
bAspectRatioY the X dimension of the picture aspect
ratio, read-only
bAspectRatioX the Y dimension of the picture aspect
ratio, read-only
bmFlags characteristics of this format,
read-only
bDefaultFrameIndex optimum frame index for this stream
=================== =====================================
What: /config/usb-gadget/gadget/functions/uvc.name/streaming/mjpeg/name/name
Date: Dec 2014
KernelVersion: 4.0
Description: Specific MJPEG frame descriptors
========================= =====================================
bFrameIndex unique id for this framedescriptor;
only defined after parent format is
linked into the streaming header;
read-only
dwFrameInterval indicates how frame interval can be
programmed; a number of values
separated by newline can be specified
dwDefaultFrameInterval the frame interval the device would
like to use as default
dwMaxVideoFrameBufferSize the maximum number of bytes the
compressor will produce for a video
frame or still image
dwMaxBitRate the maximum bit rate at the shortest
frame interval in bps
dwMinBitRate the minimum bit rate at the longest
frame interval in bps
wHeight height of decoded bitmap frame in px
wWidth width of decoded bitmam frame in px
bmCapabilities still image support, fixed frame-rate
support
========================= =====================================
What: /config/usb-gadget/gadget/functions/uvc.name/streaming/uncompressed
Date: Dec 2014
KernelVersion: 4.0
Description: Uncompressed format descriptors
What: /config/usb-gadget/gadget/functions/uvc.name/streaming/uncompressed/name
Date: Dec 2014
KernelVersion: 4.0
Description: Specific uncompressed format descriptors
================== =======================================
bFormatIndex unique id for this format descriptor;
only defined after parent header is
linked into the streaming class;
read-only
bmaControls this format's data for bmaControls in
the streaming header
bmInterlaceFlags specifies interlace information,
read-only
bAspectRatioY the X dimension of the picture aspect
ratio, read-only
bAspectRatioX the Y dimension of the picture aspect
ratio, read-only
bDefaultFrameIndex optimum frame index for this stream
bBitsPerPixel number of bits per pixel used to
specify color in the decoded video
frame
guidFormat globally unique id used to identify
stream-encoding format
================== =======================================
What: /config/usb-gadget/gadget/functions/uvc.name/streaming/uncompressed/name/name
Date: Dec 2014
KernelVersion: 4.0
Description: Specific uncompressed frame descriptors
========================= =====================================
bFrameIndex unique id for this framedescriptor;
only defined after parent format is
linked into the streaming header;
read-only
dwFrameInterval indicates how frame interval can be
programmed; a number of values
separated by newline can be specified
dwDefaultFrameInterval the frame interval the device would
like to use as default
dwMaxVideoFrameBufferSize the maximum number of bytes the
compressor will produce for a video
frame or still image
dwMaxBitRate the maximum bit rate at the shortest
frame interval in bps
dwMinBitRate the minimum bit rate at the longest
frame interval in bps
wHeight height of decoded bitmap frame in px
wWidth width of decoded bitmam frame in px
bmCapabilities still image support, fixed frame-rate
support
========================= =====================================
What: /config/usb-gadget/gadget/functions/uvc.name/streaming/framebased
Date: Sept 2024
KernelVersion: 5.15
Description: Framebased format descriptors
What: /config/usb-gadget/gadget/functions/uvc.name/streaming/framebased/name
Date: Sept 2024
KernelVersion: 5.15
Description: Specific framebased format descriptors
================== =======================================
bFormatIndex unique id for this format descriptor;
only defined after parent header is
linked into the streaming class;
read-only
bmaControls this format's data for bmaControls in
the streaming header
bmInterlaceFlags specifies interlace information,
read-only
bAspectRatioY the X dimension of the picture aspect
ratio, read-only
bAspectRatioX the Y dimension of the picture aspect
ratio, read-only
bDefaultFrameIndex optimum frame index for this stream
bBitsPerPixel number of bits per pixel used to
specify color in the decoded video
frame
guidFormat globally unique id used to identify
stream-encoding format
================== =======================================
What: /config/usb-gadget/gadget/functions/uvc.name/streaming/framebased/name/name
Date: Sept 2024
KernelVersion: 5.15
Description: Specific framebased frame descriptors
========================= =====================================
bFrameIndex unique id for this framedescriptor;
only defined after parent format is
linked into the streaming header;
read-only
dwFrameInterval indicates how frame interval can be
programmed; a number of values
separated by newline can be specified
dwDefaultFrameInterval the frame interval the device would
like to use as default
dwBytesPerLine Specifies the number of bytes per line
of video for packed fixed frame size
formats, allowing the receiver to
perform stride alignment of the video.
If the bVariableSize value (above) is
TRUE (1), or if the format does not
permit such alignment, this value shall
be set to zero (0).
dwMaxBitRate the maximum bit rate at the shortest
frame interval in bps
dwMinBitRate the minimum bit rate at the longest
frame interval in bps
wHeight height of decoded bitmap frame in px
wWidth width of decoded bitmam frame in px
bmCapabilities still image support, fixed frame-rate
support
========================= =====================================
What: /config/usb-gadget/gadget/functions/uvc.name/streaming/header
Date: Dec 2014
KernelVersion: 4.0
Description: Streaming header descriptors
What: /config/usb-gadget/gadget/functions/uvc.name/streaming/header/name
Date: Dec 2014
KernelVersion: 4.0
Description: Specific streaming header descriptors
All attributes read only:
==================== =====================================
bTriggerUsage how the host software will respond to
a hardware trigger interrupt event
bTriggerSupport flag specifying if hardware
triggering is supported
bStillCaptureMethod method of still image capture
supported
bTerminalLink id of the output terminal to which
the video endpoint of this interface
is connected
bmInfo capabilities of this video streaming
interface
==================== =====================================
What: /sys/class/udc/udc.name/device/gadget/video4linux/video.name/function_name
Date: May 2018
KernelVersion: 4.19
Description: UVC configfs function instance name
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
UVC function directory와 control class
1-40| What | Date / KernelVersion | 설명 |
|---|---|---|
| /config/usb-gadget/gadget/functions/uvc.name | 2014년 12월 / 4.0 | UVC function directory |
| /config/usb-gadget/gadget/functions/uvc.name/control | 2014년 12월 / 4.0 | Control descriptors |
| /config/usb-gadget/gadget/functions/uvc.name/control/class | 2014년 12월 / 4.0 | Class descriptors |
| /config/usb-gadget/gadget/functions/uvc.name/control/class/ss | 2014년 12월 / 4.0 | SuperSpeed control class descriptors |
| /config/usb-gadget/gadget/functions/uvc.name/control/class/fs | 2014년 12월 / 4.0 | Full-Speed control class descriptors |
| Function attribute | 값 또는 설명 |
|---|---|
| streaming_maxburst | 0..15, SuperSpeed에서만 사용 |
| streaming_maxpacket | Full-Speed에서는 1..1023, High/SuperSpeed에서는 1..3072 |
| streaming_interval | 1..16 |
| function_name | 최대 32자의 문자열 |
Control directory에서는 enable_interrupt_ep만 쓸 수 있고 나머지 attribute는 모두 읽기 전용입니다.
| Control attribute | 설명 |
|---|---|
| bInterfaceNumber | 이 streaming interface에 할당된 USB interface number, 읽기 전용 |
| enable_interrupt_ep | VC interface의 interrupt endpoint를 활성화하는 flag, 읽기·쓰기 |
Output·camera terminal과 processing unit
42-114| What | Date / KernelVersion | 설명 |
|---|---|---|
| /config/usb-gadget/gadget/functions/uvc.name/control/terminal | 2014년 12월 / 4.0 | Terminal descriptors |
| /config/usb-gadget/gadget/functions/uvc.name/control/terminal/output | 2014년 12월 / 4.0 | Output terminal descriptors |
| /config/usb-gadget/gadget/functions/uvc.name/control/terminal/output/default | 2014년 12월 / 4.0 | Default output terminal descriptors |
| /config/usb-gadget/gadget/functions/uvc.name/control/terminal/camera | 2014년 12월 / 4.0 | Camera terminal descriptors |
| /config/usb-gadget/gadget/functions/uvc.name/control/terminal/camera/default | 2014년 12월 / 4.0 | Default camera terminal descriptors |
| /config/usb-gadget/gadget/functions/uvc.name/control/processing | 2014년 12월 / 4.0 | Processing unit descriptors |
| /config/usb-gadget/gadget/functions/uvc.name/control/processing/default | 2014년 12월 / 4.0 | Default processing unit descriptors |
Default output terminal에서는 bSourceID만 읽기·쓰기이고 나머지는 읽기 전용입니다.
| Output terminal attribute | 설명 |
|---|---|
| iTerminal | String descriptor index |
| bSourceID | 이 terminal이 연결되는 terminal ID, 읽기·쓰기 |
| bAssocTerminal | 이 output terminal과 연관된 input terminal ID |
| wTerminalType | Terminal type |
| bTerminalID | 이 terminal의 0이 아닌 ID |
Default camera terminal에서는 bmControls만 읽기·쓰기이고 나머지는 읽기 전용입니다.
| Camera terminal attribute | 설명 |
|---|---|
| bmControls | Video stream이 지원하는 controls를 나타내는 bitmap, 읽기·쓰기 |
| wOcularFocalLength | Locular 값. 원문의 식별자와 설명 표기를 그대로 보존 |
| wObjectiveFocalLengthMax | Lmin 값. 원문에서 Max attribute를 Lmin에 대응시킴 |
| wObjectiveFocalLengthMin | Lmax 값. 원문에서 Min attribute를 Lmax에 대응시킴 |
| iTerminal | String descriptor index |
| bAssocTerminal | 이 terminal이 연결되는 output terminal ID |
| wTerminalType | Terminal type |
| bTerminalID | 이 terminal의 0이 아닌 ID |
Default processing unit에서는 bmControls만 읽기·쓰기이고 나머지는 읽기 전용입니다.
| Processing unit attribute | 설명 |
|---|---|
| iProcessing | String descriptor index |
| bmControls | Video stream이 지원하는 controls를 나타내는 bitmap, 읽기·쓰기 |
| wMaxMultiplier | 최대 digital magnification에 100을 곱한 값 |
| bSourceID | 이 unit이 연결되는 terminal ID |
| bUnitID | 이 unit의 0이 아닌 ID |
Extension unit와 control header
116-155| What | Date / KernelVersion | 설명 |
|---|---|---|
| /config/usb-gadget/gadget/functions/uvc.name/control/extensions | 2022년 11월 / 6.1 | Extension unit descriptors |
| /config/usb-gadget/gadget/functions/uvc.name/control/extensions/name | 2022년 11월 / 6.1 | Extension Unit(XU) Descriptor |
| /config/usb-gadget/gadget/functions/uvc.name/control/header | 2014년 12월 / 4.0 | Control header descriptors |
| /config/usb-gadget/gadget/functions/uvc.name/control/header/name | 2014년 12월 / 4.0 | 특정 control header descriptors |
Extension unit의 bLength, bUnitID, iExtension은 읽기 전용이고 나머지는 모두 읽기·쓰기입니다.
| Extension unit attribute | 설명 |
|---|---|
| bLength | Descriptor 크기, 단위는 byte |
| bUnitID | 이 unit의 0이 아닌 ID |
| guidExtensionCode | XU를 식별하는 vendor-specific code |
| bNumControls | 이 XU의 control 수 |
| bNrInPins | 이 unit의 input pin 수 |
| baSourceID | 이 XU가 연결되는 units 또는 terminals의 ID 목록 |
| bControlSize | bmControls field의 크기, 단위는 byte |
| bmControls | 지원하는 vendor-specific controls를 나타내는 bitmap 목록 |
| iExtension | 이 extension unit을 설명하는 string descriptor index |
| Control header attribute | 원문 설명 |
|---|---|
| dwClockFrequency | 원문은 attribute 이름만 제시하며 추가 설명은 없음 |
| bcdUVC | 원문은 attribute 이름만 제시하며 추가 설명은 없음 |
Descriptor ID와 source ID가 camera terminal, processing·extension units, output terminal을 연결하고 control header가 speed별 VC class descriptor에 결합된다.
Streaming class와 color matching descriptors
156-225| What | Date / KernelVersion | 설명 |
|---|---|---|
| /config/usb-gadget/gadget/functions/uvc.name/streaming | 2014년 12월 / 4.0 | Streaming descriptors |
| /config/usb-gadget/gadget/functions/uvc.name/streaming/class | 2014년 12월 / 4.0 | Streaming class descriptors |
| /config/usb-gadget/gadget/functions/uvc.name/streaming/class/ss | 2014년 12월 / 4.0 | SuperSpeed streaming class descriptors |
| /config/usb-gadget/gadget/functions/uvc.name/streaming/class/hs | 2014년 12월 / 4.0 | High-Speed streaming class descriptors |
| /config/usb-gadget/gadget/functions/uvc.name/streaming/class/fs | 2014년 12월 / 4.0 | Full-Speed streaming class descriptors |
| /config/usb-gadget/gadget/functions/uvc.name/streaming/color_matching | 2014년 12월 / 4.0 | Color matching descriptors |
| /config/usb-gadget/gadget/functions/uvc.name/streaming/color_matching/default | 2014년 12월 / 4.0 | Default color matching descriptors |
| /config/usb-gadget/gadget/functions/uvc.name/streaming/color_matching/name | 2022년 12월 / 6.3 | 추가 color matching descriptors |
Streaming directory의 bInterfaceNumber는 이 streaming interface의 USB interface number이며 읽기 전용입니다. 기본 및 추가 color matching descriptor의 아래 attributes는 모두 읽기·쓰기입니다.
| Color matching attribute | 설명 |
|---|---|
| bMatrixCoefficients | Color primaries로부터 luma와 chroma 값을 계산할 때 사용하는 matrix |
| bTransferCharacteristics | Source picture의 optoelectronic transfer characteristic, 즉 gamma function |
| bColorPrimaries | Color primaries와 reference white |
MJPEG format과 frame descriptors
227-284| What | Date / KernelVersion | 설명 |
|---|---|---|
| /config/usb-gadget/gadget/functions/uvc.name/streaming/mjpeg | 2014년 12월 / 4.0 | MJPEG format descriptors |
| /config/usb-gadget/gadget/functions/uvc.name/streaming/mjpeg/name | 2014년 12월 / 4.0 | 특정 MJPEG format descriptors |
| /config/usb-gadget/gadget/functions/uvc.name/streaming/mjpeg/name/name | 2014년 12월 / 4.0 | 특정 MJPEG frame descriptors |
MJPEG format에서는 bmaControls와 bDefaultFrameIndex만 읽기·쓰기이고 나머지 format attributes는 읽기 전용입니다.
| MJPEG format attribute | 설명 |
|---|---|
| bFormatIndex | 이 format descriptor의 고유 ID. Parent header가 streaming class에 연결된 뒤에만 정의됨 |
| bmaControls | Streaming header의 bmaControls에 들어갈 이 format의 data |
| bmInterlaceFlags | Interlace 정보를 지정, 읽기 전용 |
| bAspectRatioY | Picture aspect ratio의 X dimension, 읽기 전용. 원문 대응을 보존 |
| bAspectRatioX | Picture aspect ratio의 Y dimension, 읽기 전용. 원문 대응을 보존 |
| bmFlags | 이 format의 특성, 읽기 전용 |
| bDefaultFrameIndex | 이 stream에 가장 적합한 frame index |
| MJPEG frame attribute | 설명 |
|---|---|
| bFrameIndex | 이 frame descriptor의 고유 ID. Parent format이 streaming header에 연결된 뒤에만 정의되는 읽기 전용 값 |
| dwFrameInterval | Frame interval을 program하는 방법. 줄바꿈으로 구분한 여러 값을 지정할 수 있음 |
| dwDefaultFrameInterval | Device가 기본으로 사용하려는 frame interval |
| dwMaxVideoFrameBufferSize | Compressor가 video frame 또는 still image 하나에 생성할 최대 byte 수 |
| dwMaxBitRate | 가장 짧은 frame interval에서의 최대 bit rate, 단위는 bps |
| dwMinBitRate | 가장 긴 frame interval에서의 최소 bit rate, 단위는 bps |
| wHeight | Decoded bitmap frame의 높이, 단위는 px |
| wWidth | Decoded bitmap frame의 너비, 단위는 px |
| bmCapabilities | Still image 지원과 fixed frame-rate 지원 |
Uncompressed format과 frame descriptors
286-343| What | Date / KernelVersion | 설명 |
|---|---|---|
| /config/usb-gadget/gadget/functions/uvc.name/streaming/uncompressed | 2014년 12월 / 4.0 | Uncompressed format descriptors |
| /config/usb-gadget/gadget/functions/uvc.name/streaming/uncompressed/name | 2014년 12월 / 4.0 | 특정 uncompressed format descriptors |
| /config/usb-gadget/gadget/functions/uvc.name/streaming/uncompressed/name/name | 2014년 12월 / 4.0 | 특정 uncompressed frame descriptors |
| Uncompressed format attribute | 설명 |
|---|---|
| bFormatIndex | 이 format descriptor의 고유 ID. Parent header가 streaming class에 연결된 뒤에만 정의되는 읽기 전용 값 |
| bmaControls | Streaming header의 bmaControls에 들어갈 이 format의 data |
| bmInterlaceFlags | Interlace 정보를 지정, 읽기 전용 |
| bAspectRatioY | Picture aspect ratio의 X dimension, 읽기 전용. 원문 대응을 보존 |
| bAspectRatioX | Picture aspect ratio의 Y dimension, 읽기 전용. 원문 대응을 보존 |
| bDefaultFrameIndex | 이 stream에 가장 적합한 frame index |
| bBitsPerPixel | Decoded video frame에서 color를 지정하는 bits per pixel |
| guidFormat | Stream encoding format을 식별하는 globally unique ID |
| Uncompressed frame attribute | 설명 |
|---|---|
| bFrameIndex | 이 frame descriptor의 고유 ID. Parent format이 streaming header에 연결된 뒤에만 정의되는 읽기 전용 값 |
| dwFrameInterval | Frame interval을 program하는 방법. 줄바꿈으로 구분한 여러 값을 지정할 수 있음 |
| dwDefaultFrameInterval | Device가 기본으로 사용하려는 frame interval |
| dwMaxVideoFrameBufferSize | Compressor가 video frame 또는 still image 하나에 생성할 최대 byte 수 |
| dwMaxBitRate | 가장 짧은 frame interval에서의 최대 bit rate, 단위는 bps |
| dwMinBitRate | 가장 긴 frame interval에서의 최소 bit rate, 단위는 bps |
| wHeight | Decoded bitmap frame의 높이, 단위는 px |
| wWidth | Decoded bitmap frame의 너비, 단위는 px |
| bmCapabilities | Still image 지원과 fixed frame-rate 지원 |
Frame-based format과 frame descriptors
345-407| What | Date / KernelVersion | 설명 |
|---|---|---|
| /config/usb-gadget/gadget/functions/uvc.name/streaming/framebased | 2024년 9월 / 5.15 | Frame-based format descriptors |
| /config/usb-gadget/gadget/functions/uvc.name/streaming/framebased/name | 2024년 9월 / 5.15 | 특정 frame-based format descriptors |
| /config/usb-gadget/gadget/functions/uvc.name/streaming/framebased/name/name | 2024년 9월 / 5.15 | 특정 frame-based frame descriptors |
| Frame-based format attribute | 설명 |
|---|---|
| bFormatIndex | 이 format descriptor의 고유 ID. Parent header가 streaming class에 연결된 뒤에만 정의되는 읽기 전용 값 |
| bmaControls | Streaming header의 bmaControls에 들어갈 이 format의 data |
| bmInterlaceFlags | Interlace 정보를 지정, 읽기 전용 |
| bAspectRatioY | Picture aspect ratio의 X dimension, 읽기 전용. 원문 대응을 보존 |
| bAspectRatioX | Picture aspect ratio의 Y dimension, 읽기 전용. 원문 대응을 보존 |
| bDefaultFrameIndex | 이 stream에 가장 적합한 frame index |
| bBitsPerPixel | Decoded video frame에서 color를 지정하는 bits per pixel |
| guidFormat | Stream encoding format을 식별하는 globally unique ID |
| Frame-based frame attribute | 설명 |
|---|---|
| bFrameIndex | 이 frame descriptor의 고유 ID. Parent format이 streaming header에 연결된 뒤에만 정의되는 읽기 전용 값 |
| dwFrameInterval | Frame interval을 program하는 방법. 줄바꿈으로 구분한 여러 값을 지정할 수 있음 |
| dwDefaultFrameInterval | Device가 기본으로 사용하려는 frame interval |
| dwBytesPerLine | Packed fixed-frame-size format의 video 한 줄당 byte 수. Receiver가 stride alignment를 수행할 수 있게 한다. bVariableSize가 TRUE(1)이거나 format이 이런 alignment를 허용하지 않으면 0으로 설정해야 함 |
| dwMaxBitRate | 가장 짧은 frame interval에서의 최대 bit rate, 단위는 bps |
| dwMinBitRate | 가장 긴 frame interval에서의 최소 bit rate, 단위는 bps |
| wHeight | Decoded bitmap frame의 높이, 단위는 px |
| wWidth | Decoded bitmap frame의 너비, 단위는 px |
| bmCapabilities | Still image 지원과 fixed frame-rate 지원 |
Streaming header가 format descriptors를 묶고 각 format 아래 frame descriptors가 interval·크기·bitrate를 정의한다. Color matching과 speed별 class link가 host에 노출할 descriptor set을 완성한다.
Streaming header와 V4L2 function instance name
409-438| What | Date / KernelVersion | 설명 |
|---|---|---|
| /config/usb-gadget/gadget/functions/uvc.name/streaming/header | 2014년 12월 / 4.0 | Streaming header descriptors |
| /config/usb-gadget/gadget/functions/uvc.name/streaming/header/name | 2014년 12월 / 4.0 | 특정 streaming header descriptors |
| /sys/class/udc/udc.name/device/gadget/video4linux/video.name/function_name | 2018년 5월 / 4.19 | UVC configfs function instance name |
Streaming header의 모든 attributes는 읽기 전용입니다.
| Streaming header attribute | 설명 |
|---|---|
| bTriggerUsage | Hardware trigger interrupt event에 host software가 응답하는 방법 |
| bTriggerSupport | Hardware triggering 지원 여부를 나타내는 flag |
| bStillCaptureMethod | 지원하는 still image capture 방법 |
| bTerminalLink | 이 interface의 video endpoint가 연결되는 output terminal ID |
| bmInfo | 이 video streaming interface의 capabilities |
/sys/class/udc/udc.name/device/gadget/video4linux/video.name/function_name에서는 해당 video4linux device를 만든 UVC configfs function instance 이름을 읽습니다.
Function directory와 control interface
configfs-usb-gadget-uvc:1-40Function endpoint의 burst·packet·interval과 interface 이름을 설정하고, VideoControl interface number 및 interrupt endpoint 사용 여부와 speed별 class descriptor 연결 지점을 설명합니다.