@@ -78,6 +78,32 @@ namespace librealsense
7878 };
7979 };
8080
81+ class rs401_gmsl_device : public d400_nonmonochrome ,
82+ public d400_mipi_device,
83+ public firmware_logger_device
84+ {
85+ public:
86+ rs401_gmsl_device ( std::shared_ptr< const d400_info > const & dev_info, bool register_device_notifications )
87+ : device( dev_info, register_device_notifications )
88+ , backend_device( dev_info, register_device_notifications )
89+ , d400_device( dev_info )
90+ , d400_nonmonochrome( dev_info )
91+ , d400_mipi_device()
92+ , firmware_logger_device( dev_info, d400_device::_hw_monitor, get_firmware_logs_command(), get_flash_logs_command() )
93+ {
94+ }
95+
96+ std::shared_ptr<matcher> create_matcher (const frame_holder& frame) const override ;
97+
98+ std::vector<tagged_profile> get_profiles_tags () const override
99+ {
100+ std::vector<tagged_profile> tags;
101+
102+ tags.push_back ({ RS2_STREAM_DEPTH, -1 , 640 , 480 , RS2_FORMAT_Z16, 30 , profile_tag::PROFILE_TAG_SUPERSET | profile_tag::PROFILE_TAG_DEFAULT });
103+ return tags;
104+ };
105+ };
106+
81107 // Not used, should be removed with EOL devices clean up
82108 class rs405u_device : public ds5u_device ,
83109 public ds_advanced_mode_base,
@@ -1096,6 +1122,8 @@ namespace librealsense
10961122 return std::make_shared< rs430_gmsl_device >( dev_info, register_device_notifications );
10971123 case RS415_GMSL_PID:
10981124 return std::make_shared< rs415_gmsl_device >(dev_info, register_device_notifications);
1125+ case RS401_GMSL_PID:
1126+ return std::make_shared< rs401_gmsl_device >( dev_info, register_device_notifications );
10991127 default :
11001128 throw std::runtime_error ( rsutils::string::from () << " Unsupported RS400 model! 0x" << std::hex
11011129 << std::setw ( 4 ) << std::setfill ( ' 0' ) << (int )pid );
@@ -1168,6 +1196,12 @@ namespace librealsense
11681196 return matcher_factory::create (RS2_MATCHER_DEFAULT, streams);
11691197 }
11701198
1199+ std::shared_ptr<matcher> rs401_gmsl_device::create_matcher (const frame_holder& frame) const
1200+ {
1201+ std::vector<stream_interface*> streams = { _depth_stream.get () , _left_ir_stream.get () , _right_ir_stream.get () };
1202+ return matcher_factory::create (RS2_MATCHER_DEFAULT, streams);
1203+ }
1204+
11711205 std::shared_ptr<matcher> rs405u_device::create_matcher (const frame_holder& frame) const
11721206 {
11731207 std::vector<stream_interface*> streams = { _depth_stream.get () , _left_ir_stream.get () , _right_ir_stream.get ()};
0 commit comments