Skip to content

[Camera] Add WebRTC Provider Server In python controller for Camera Initiated session flow. #39952

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

chulspro
Copy link
Contributor

WebRTC Provider Server and WebRTC Requestor Client is needed in controller for Camera Initiated Flow. https://github.com/CHIP-Specifications/connectedhomeip-spec/blob/master/src/app_clusters/webrtc.adoc#33-camera-initiated-flow
This PR

  • Adds WebRTC Provider Server endpoint definitions in dynamic_server/DynamicDispatcher.cpp
  • Implements provider delegates required for MVP
  • Enables WEBRTC TC 1.5
  • Allows camera to start the webrtc session establishment

Testing

python3 TC_WEBRTC_1_5.py --discriminator 3840 --passcode 20202021 --commissioning-method on-network --paa-trust-store-path ./paa-root-certs/
 rm -rf /tmp/chip_*
./chip-camera-app --camera-initiated-session

chulspro added 2 commits July 11, 2025 09:22
- Adds WebRTC Provider Server endpoint definitions in dynamic_server/DynamicDispatcher.cpp
- Implements provider delegates required for MVP

Signed-off-by: Charles Kim <chulspro.kim@samsung.com>
Signed-off-by: Charles Kim <chulspro.kim@samsung.com>
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds support for the camera-initiated WebRTC session flow by implementing a WebRTC Provider Server in the Python controller. The changes are well-structured and include adding a new WebRTCTransportProviderManager, updating the dynamic dispatcher and access control for the new endpoint, and correcting the nodeId type to uint64_t for consistency. The Python bindings and WebRTCManager are also updated accordingly.

Signed-off-by: Charles Kim <chulspro.kim@samsung.com>
Copy link

github-actions bot commented Jul 11, 2025

PR #39952: Size comparison from 00aa48e to e7c7b88

Full report (72 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section 00aa48e e7c7b88 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1102594 1102594 0 0.0
RAM 179010 179010 0 0.0
bl702 lighting-app bl702+eth FLASH 656002 656002 0 0.0
RAM 134961 134961 0 0.0
bl702+wifi FLASH 833184 833184 0 0.0
RAM 124517 124517 0 0.0
bl706+mfd+rpc+littlefs FLASH 1065302 1065302 0 0.0
RAM 117373 117373 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 894848 894848 0 0.0
RAM 105660 105660 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 978566 978566 0 0.0
RAM 109852 109852 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 763096 763096 0 0.0
RAM 103368 103368 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 774636 774636 0 0.0
RAM 108536 108536 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 720976 720976 0 0.0
RAM 96940 96940 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 705268 705268 0 0.0
RAM 97148 97148 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 548818 548818 0 0.0
RAM 205144 205144 0 0.0
lock CC3235SF_LAUNCHXL FLASH 581810 581810 0 0.0
RAM 205344 205344 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 662581 662581 0 0.0
RAM 77472 77472 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 682433 682433 0 0.0
RAM 80112 80112 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 682433 682433 0 0.0
RAM 80112 80112 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 639365 639365 0 0.0
RAM 72540 72540 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 623805 623805 0 0.0
RAM 73784 73784 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 643441 643441 0 0.0
RAM 76336 76336 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 643441 643441 0 0.0
RAM 76336 76336 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 644765 644765 0 0.0
RAM 76784 76784 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 664481 664481 0 0.0
RAM 79336 79336 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 664481 664481 0 0.0
RAM 79336 79336 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 619545 619545 0 0.0
RAM 70888 70888 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 639397 639397 0 0.0
RAM 73520 73520 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 639397 639397 0 0.0
RAM 73520 73520 0 0.0
efr32 lock-app BRD4187C FLASH 954984 954984 0 0.0
RAM 126564 126564 0 0.0
BRD4338a FLASH 749404 749396 -8 -0.0
RAM 251912 251912 0 0.0
window-app BRD4187C FLASH 1049512 1049512 0 0.0
RAM 122760 122760 0 0.0
esp32 all-clusters-app c3devkit DRAM 102272 102272 0 0.0
FLASH 1780200 1780200 0 0.0
IRAM 83862 83862 0 0.0
m5stack DRAM 121156 121156 0 0.0
FLASH 1747498 1747498 0 0.0
IRAM 117071 117071 0 0.0
linux air-purifier-app debug unknown 4856 4856 0 0.0
FLASH 2796542 2796542 0 0.0
RAM 117320 117320 0 0.0
all-clusters-app debug unknown 5672 5672 0 0.0
FLASH 6197262 6197262 0 0.0
RAM 531216 531216 0 0.0
all-clusters-minimal-app debug unknown 5536 5536 0 0.0
FLASH 5473452 5473452 0 0.0
RAM 228008 228008 0 0.0
bridge-app debug unknown 5568 5568 0 0.0
FLASH 4807692 4807692 0 0.0
RAM 207712 207712 0 0.0
camera-app debug unknown 8976 8976 0 0.0
FLASH 6933259 6933259 0 0.0
RAM 230024 230024 0 0.0
camera-controller debug unknown 9216 9216 0 0.0
FLASH 14387099 14387259 160 0.0
RAM 661528 661720 192 0.0
chip-tool debug unknown 6272 6272 0 0.0
FLASH 14738075 14738075 0 0.0
RAM 655072 655072 0 0.0
chip-tool-ipv6only arm64 unknown 40672 40672 0 0.0
FLASH 12713215 12713215 0 0.0
RAM 701344 701344 0 0.0
closure-app debug unknown 5536 5536 0 0.0
FLASH 4791244 4791244 0 0.0
RAM 200616 200616 0 0.0
fabric-admin debug unknown 5952 5952 0 0.0
FLASH 12798571 12798571 0 0.0
RAM 654104 654104 0 0.0
fabric-bridge-app debug unknown 4816 4816 0 0.0
FLASH 4593024 4593024 0 0.0
RAM 193424 193424 0 0.0
fabric-sync debug unknown 5056 5056 0 0.0
FLASH 5741549 5741549 0 0.0
RAM 491728 491728 0 0.0
lighting-app debug+rpc+ui unknown 6280 6280 0 0.0
FLASH 5694481 5694481 0 0.0
RAM 209944 209944 0 0.0
lock-app debug unknown 5488 5488 0 0.0
FLASH 4836372 4836372 0 0.0
RAM 197192 197192 0 0.0
ota-provider-app debug unknown 4856 4856 0 0.0
FLASH 4446878 4446878 0 0.0
RAM 186112 186112 0 0.0
ota-requestor-app debug unknown 4736 4736 0 0.0
FLASH 4519002 4519002 0 0.0
RAM 188984 188984 0 0.0
shell debug unknown 4288 4288 0 0.0
FLASH 3076460 3076460 0 0.0
RAM 147344 147344 0 0.0
thermostat-no-ble arm64 unknown 9832 9832 0 0.0
FLASH 4236159 4236159 0 0.0
RAM 233304 233304 0 0.0
tv-app debug unknown 5824 5824 0 0.0
FLASH 6106541 6106541 0 0.0
RAM 615976 615976 0 0.0
tv-casting-app debug unknown 5352 5352 0 0.0
FLASH 12887773 12887773 0 0.0
RAM 771728 771728 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 888068 888068 0 0.0
RAM 166162 166162 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 897144 897144 0 0.0
RAM 145100 145100 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 858392 858392 0 0.0
RAM 141049 141049 0 0.0
nxp contact mcxw71+release FLASH 624768 624768 0 0.0
RAM 63164 63164 0 0.0
lock mcxw71+release FLASH 775976 775976 0 0.0
RAM 67820 67820 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1632484 1632484 0 0.0
RAM 211104 211104 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1576660 1576660 0 0.0
RAM 208472 208472 0 0.0
light cy8ckit_062s2_43012 FLASH 1449452 1449452 0 0.0
RAM 197184 197184 0 0.0
lock cy8ckit_062s2_43012 FLASH 1481708 1481708 0 0.0
RAM 224904 224904 0 0.0
qpg lighting-app qpg6200+debug FLASH 743824 743824 0 0.0
RAM 94220 94220 0 0.0
lock-app qpg6200+debug FLASH 753444 753444 0 0.0
RAM 94248 94248 0 0.0
stm32 light STM32WB5MM-DK FLASH 465260 465260 0 0.0
RAM 141376 141376 0 0.0
telink bridge-app tl7218x FLASH 702312 702312 0 0.0
RAM 93600 93600 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 794044 794044 0 0.0
RAM 44016 44016 0 0.0
light-app-ota-shell-factory-data tl7218x FLASH 782450 782450 0 0.0
RAM 100912 100912 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 709564 709564 0 0.0
RAM 54240 54240 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 746158 746158 0 0.0
RAM 77404 77404 0 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 722884 722884 0 0.0
RAM 36996 36996 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 602986 602986 0 0.0
RAM 112532 112532 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 818004 818008 4 0.0
RAM 99164 99164 0 0.0
tizen all-clusters-app arm unknown 5096 5096 0 0.0
FLASH 1695744 1695744 0 0.0
RAM 91444 91444 0 0.0
chip-tool-ubsan arm unknown 20764 20764 0 0.0
FLASH 21066570 21066570 0 0.0
RAM 9165480 9165480 0 0.0

Signed-off-by: Charles Kim <chulspro.kim@samsung.com>
Copy link

github-actions bot commented Jul 11, 2025

PR #39952: Size comparison from 00aa48e to 3a1b593

Full report (72 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section 00aa48e 3a1b5932 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1102594 1102622 28 0.0
RAM 179010 179010 0 0.0
bl702 lighting-app bl702+eth FLASH 656002 656030 28 0.0
RAM 134961 134961 0 0.0
bl702+wifi FLASH 833184 833212 28 0.0
RAM 124517 124517 0 0.0
bl706+mfd+rpc+littlefs FLASH 1065302 1065330 28 0.0
RAM 117373 117373 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 894848 894876 28 0.0
RAM 105660 105660 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 978566 978594 28 0.0
RAM 109852 109852 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 763096 763128 32 0.0
RAM 103368 103368 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 774636 774668 32 0.0
RAM 108536 108536 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 720976 721008 32 0.0
RAM 96940 96940 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 705268 705300 32 0.0
RAM 97148 97148 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 548818 548850 32 0.0
RAM 205144 205144 0 0.0
lock CC3235SF_LAUNCHXL FLASH 581810 581842 32 0.0
RAM 205344 205344 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 662581 662613 32 0.0
RAM 77472 77472 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 682433 682465 32 0.0
RAM 80112 80112 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 682433 682465 32 0.0
RAM 80112 80112 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 639365 639397 32 0.0
RAM 72540 72540 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 623805 623837 32 0.0
RAM 73784 73784 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 643441 643473 32 0.0
RAM 76336 76336 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 643441 643473 32 0.0
RAM 76336 76336 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 644765 644797 32 0.0
RAM 76784 76784 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 664481 664513 32 0.0
RAM 79336 79336 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 664481 664513 32 0.0
RAM 79336 79336 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 619545 619577 32 0.0
RAM 70888 70888 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 639397 639429 32 0.0
RAM 73520 73520 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 639397 639429 32 0.0
RAM 73520 73520 0 0.0
efr32 lock-app BRD4187C FLASH 954984 955016 32 0.0
RAM 126564 126564 0 0.0
BRD4338a FLASH 749404 749460 56 0.0
RAM 251912 251912 0 0.0
window-app BRD4187C FLASH 1049512 1049576 64 0.0
RAM 122760 122760 0 0.0
esp32 all-clusters-app c3devkit DRAM 102272 102272 0 0.0
FLASH 1780200 1780616 416 0.0
IRAM 83862 83862 0 0.0
m5stack DRAM 121156 121156 0 0.0
FLASH 1747498 1747894 396 0.0
IRAM 117071 117071 0 0.0
linux air-purifier-app debug unknown 4856 4856 0 0.0
FLASH 2796542 2796646 104 0.0
RAM 117320 117320 0 0.0
all-clusters-app debug unknown 5672 5672 0 0.0
FLASH 6197262 6198206 944 0.0
RAM 531216 531216 0 0.0
all-clusters-minimal-app debug unknown 5536 5536 0 0.0
FLASH 5473452 5473562 110 0.0
RAM 228008 228008 0 0.0
bridge-app debug unknown 5568 5568 0 0.0
FLASH 4807692 4807802 110 0.0
RAM 207712 207712 0 0.0
camera-app debug unknown 8976 8976 0 0.0
FLASH 6933259 6935131 1872 0.0
RAM 230024 230024 0 0.0
camera-controller debug unknown 9216 9216 0 0.0
FLASH 14387099 14387483 384 0.0
RAM 661528 661720 192 0.0
chip-tool debug unknown 6272 6272 0 0.0
FLASH 14738075 14738305 230 0.0
RAM 655072 655072 0 0.0
chip-tool-ipv6only arm64 unknown 40672 40672 0 0.0
FLASH 12713215 12713487 272 0.0
RAM 701344 701344 0 0.0
closure-app debug unknown 5536 5536 0 0.0
FLASH 4791244 4790656 -588 -0.0
RAM 200616 200584 -32 -0.0
fabric-admin debug unknown 5952 5952 0 0.0
FLASH 12798571 12798837 266 0.0
RAM 654104 654104 0 0.0
fabric-bridge-app debug unknown 4816 4816 0 0.0
FLASH 4593024 4593134 110 0.0
RAM 193424 193424 0 0.0
fabric-sync debug unknown 5056 5056 0 0.0
FLASH 5741549 5741661 112 0.0
RAM 491728 491728 0 0.0
lighting-app debug+rpc+ui unknown 6280 6280 0 0.0
FLASH 5694481 5694593 112 0.0
RAM 209944 209944 0 0.0
lock-app debug unknown 5488 5488 0 0.0
FLASH 4836372 4836482 110 0.0
RAM 197192 197192 0 0.0
ota-provider-app debug unknown 4856 4856 0 0.0
FLASH 4446878 4446986 108 0.0
RAM 186112 186112 0 0.0
ota-requestor-app debug unknown 4736 4736 0 0.0
FLASH 4519002 4519108 106 0.0
RAM 188984 188984 0 0.0
shell debug unknown 4288 4288 0 0.0
FLASH 3076460 3076572 112 0.0
RAM 147344 147344 0 0.0
thermostat-no-ble arm64 unknown 9832 9832 0 0.0
FLASH 4236159 4236319 160 0.0
RAM 233304 233304 0 0.0
tv-app debug unknown 5824 5824 0 0.0
FLASH 6106541 6106653 112 0.0
RAM 615976 615976 0 0.0
tv-casting-app debug unknown 5352 5352 0 0.0
FLASH 12887773 12888029 256 0.0
RAM 771728 771728 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 888068 888100 32 0.0
RAM 166162 166162 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 897144 897252 108 0.0
RAM 145100 145100 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 858392 858424 32 0.0
RAM 141049 141049 0 0.0
nxp contact mcxw71+release FLASH 624768 624800 32 0.0
RAM 63164 63164 0 0.0
lock mcxw71+release FLASH 775976 776008 32 0.0
RAM 67820 67820 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1632484 1632532 48 0.0
RAM 211104 211104 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1576660 1576708 48 0.0
RAM 208472 208472 0 0.0
light cy8ckit_062s2_43012 FLASH 1449452 1449500 48 0.0
RAM 197184 197184 0 0.0
lock cy8ckit_062s2_43012 FLASH 1481708 1481756 48 0.0
RAM 224904 224904 0 0.0
qpg lighting-app qpg6200+debug FLASH 743824 743856 32 0.0
RAM 94220 94220 0 0.0
lock-app qpg6200+debug FLASH 753444 753476 32 0.0
RAM 94248 94248 0 0.0
stm32 light STM32WB5MM-DK FLASH 465260 465292 32 0.0
RAM 141376 141376 0 0.0
telink bridge-app tl7218x FLASH 702312 702340 28 0.0
RAM 93600 93600 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 794044 794072 28 0.0
RAM 44016 44016 0 0.0
light-app-ota-shell-factory-data tl7218x FLASH 782450 782478 28 0.0
RAM 100912 100912 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 709564 709590 26 0.0
RAM 54240 54240 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 746158 746184 26 0.0
RAM 77404 77404 0 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 722884 722910 26 0.0
RAM 36996 36996 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 602986 603014 28 0.0
RAM 112532 112532 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 818004 818036 32 0.0
RAM 99164 99164 0 0.0
tizen all-clusters-app arm unknown 5096 5096 0 0.0
FLASH 1695744 1695816 72 0.0
RAM 91444 91444 0 0.0
chip-tool-ubsan arm unknown 20764 20764 0 0.0
FLASH 21066570 21066690 120 0.0
RAM 9165480 9165440 -40 -0.0

@@ -19,6 +19,7 @@

constexpr chip::EndpointId kOtaProviderDynamicEndpointId = 0;
constexpr chip::EndpointId kWebRTCRequesterDynamicEndpointId = 1;
constexpr chip::EndpointId kWebRTCProviderDynamicEndpointId = 1;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, this really confuses me: why are all users of DynamicDispatcher suddenly doing WebRTC? I know some of it was pre-existing, but that part looks wrong too.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for your review. As you already know that for the Camera Controllers must have WebRTC-Transport-Requestor Server and in case of camera-initiated flow controller also needs to have WebRTC-Transport-Provider Server. This is currently being achieved by enabling dynamic server for these controllers.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My point is that these are not the only consumers of DynamicDispatcher, and the way this is being hacked into the DynamicDispatcher is broken for all the other consumers.

Copy link
Contributor

@bzbarsky-apple bzbarsky-apple left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just to be clear: the changes to DynamicDispatcher here are wrong, and will break non-camera users of DynamicDispatcher. DynamicDispatcher in its current state is not a generic dispatcher; it's hardcoded to do OTA, and OTA only, and the changes here don't really address that sufficiently.

The previous changes in #38153 that this is modeled off of were also wrong in the same way, but the right solution is to fix the already-broken things, not add more broken bits.

@github-project-automation github-project-automation bot moved this from Todo to In Progress in [Device Type] Cameras Jul 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: In Progress
Development

Successfully merging this pull request may close these issues.

4 participants