Skip to content

Commit 473609c

Browse files
authored
PR #13403 from Eran: fix dds device stream-type-and-index mapping
2 parents 4b1a208 + d014218 commit 473609c

28 files changed

+385
-263
lines changed

src/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,6 @@ target_sources(${LRS_TARGET}
135135
"${CMAKE_CURRENT_LIST_DIR}/environment.h"
136136
"${CMAKE_CURRENT_LIST_DIR}/firmware-version.h"
137137
"${CMAKE_CURRENT_LIST_DIR}/float3.h"
138-
"${CMAKE_CURRENT_LIST_DIR}/fourcc.h"
139138
"${CMAKE_CURRENT_LIST_DIR}/log.h"
140139
"${CMAKE_CURRENT_LIST_DIR}/error-handling.h"
141140
"${CMAKE_CURRENT_LIST_DIR}/firmware_logger_device.h"

src/core/stream-profile-interface.h

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// License: Apache 2.0. See LICENSE file in root directory.
2-
// Copyright(c) 2023 Intel Corporation. All Rights Reserved.
2+
// Copyright(c) 2023-4 Intel Corporation. All Rights Reserved.
33
#pragma once
44

55
#include "stream-interface.h"
@@ -9,7 +9,7 @@
99
#include <functional>
1010
#include <memory>
1111
#include <vector>
12-
#include <ostream>
12+
#include <iosfwd>
1313

1414

1515
namespace librealsense {
@@ -38,14 +38,8 @@ class stream_profile_interface
3838
using stream_profiles = std::vector< std::shared_ptr< stream_profile_interface > >;
3939

4040

41-
inline std::ostream & operator<<( std::ostream & os, const stream_profiles & profiles )
42-
{
43-
for( auto & p : profiles )
44-
{
45-
os << rs2_format_to_string( p->get_format() ) << " " << rs2_stream_to_string( p->get_stream_type() ) << ", ";
46-
}
47-
return os;
48-
}
41+
std::ostream & operator<<( std::ostream &, const std::shared_ptr< stream_profile_interface > & );
42+
std::ostream & operator<<( std::ostream &, const stream_profiles & );
4943

5044

5145
} // namespace librealsense

src/dds/rs-dds-device-proxy.cpp

Lines changed: 33 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,12 @@ dds_device_proxy::dds_device_proxy( std::shared_ptr< const device_info > const &
176176
std::shared_ptr< dds_sensor_proxy > proxy;
177177
int sensor_index = 0;
178178
rs2_stream type = RS2_STREAM_ANY;
179+
// dds_streams bear stream type and index information, we add it to a dds_sensor_proxy mapped by a newly generated
180+
// unique ID. After the sensor initialization we get all the "final" profiles from formats-converter with type and
181+
// index but without IDs. We need to find the dds_stream that each profile was created from so we create a map from
182+
// type and index to dds_stream ID and index, because the dds_sensor_proxy holds a map from sidx to dds_stream. We
183+
// need both the ID from that map key and the stream itself (for intrinsics information)
184+
std::map< sid_index, sid_index > type_and_index_to_dds_stream_sidx;
179185
};
180186
std::map< std::string, sensor_info > sensor_name_to_info;
181187

@@ -185,7 +191,7 @@ dds_device_proxy::dds_device_proxy( std::shared_ptr< const device_info > const &
185191
{
186192
auto & sensor = sensor_name_to_info[stream->sensor_name()];
187193
if( stream->type_string() == "depth"
188-
|| stream->type_string() == "infrared" )
194+
|| stream->type_string() == "ir" )
189195
{
190196
// If there's depth or infrared, it is a depth sensor regardless of what else is in there
191197
// E.g., the D405 has a color stream in the depth sensor
@@ -208,13 +214,6 @@ dds_device_proxy::dds_device_proxy( std::shared_ptr< const device_info > const &
208214
}
209215
} ); // End foreach_stream lambda
210216

211-
// dds_streams bear stream type and index information, we add it to a dds_sensor_proxy mapped by a newly generated
212-
// unique ID. After the sensor initialization we get all the "final" profiles from formats-converter with type and
213-
// index but without IDs. We need to find the dds_stream that each profile was created from so we create a map from
214-
// type and index to dds_stream ID and index, because the dds_sensor_proxy holds a map from sidx to dds_stream. We
215-
// need both the ID from that map key and the stream itself (for intrinsics information)
216-
std::map< sid_index, sid_index > type_and_index_to_dds_stream_sidx;
217-
218217
_dds_dev->foreach_stream(
219218
[&]( std::shared_ptr< realdds::dds_stream > const & stream )
220219
{
@@ -235,9 +234,14 @@ dds_device_proxy::dds_device_proxy( std::shared_ptr< const device_info > const &
235234
= std::make_shared< librealsense::stream >( stream_type, sidx.index );
236235
sensor_info.proxy->add_dds_stream( sidx, stream );
237236
_stream_name_to_owning_sensor[stream->name()] = sensor_info.proxy;
238-
type_and_index_to_dds_stream_sidx.insert( { type_and_index, sidx } );
239-
//LOG_DEBUG( sidx.to_string() << " " << get_string( sensor_info.type ) << " '" << stream->sensor_name()
240-
// << "' : '" << stream->name() << "' " << get_string( stream_type ) );
237+
if( ! sensor_info.type_and_index_to_dds_stream_sidx.insert( { type_and_index, sidx } ).second )
238+
LOG_ERROR( "Failed to insert '" << stream->sensor_name() << "' " << type_and_index.to_string() << " "
239+
<< get_string( sensor_info.type ) << " -> " << get_string( stream_type )
240+
<< " " << sidx.to_string() << " '" << stream->name() << "' mapping" );
241+
//else
242+
// LOG_DEBUG( "'" << stream->sensor_name() << "' " << type_and_index.to_string() << " "
243+
// << get_string( sensor_info.type ) << " -> " << get_string( stream_type ) << " "
244+
// << sidx.to_string() << " '" << stream->name() << "'" );
241245

242246
software_sensor & sensor = get_software_sensor( sensor_info.sensor_index );
243247
auto video_stream = std::dynamic_pointer_cast< realdds::dds_video_stream >( stream );
@@ -279,36 +283,35 @@ dds_device_proxy::dds_device_proxy( std::shared_ptr< const device_info > const &
279283
}
280284
} ); // End foreach_stream lambda
281285

282-
for( auto & sensor_info : sensor_name_to_info )
286+
for( auto & name_info : sensor_name_to_info )
283287
{
288+
auto & sensor_name = name_info.first;
289+
auto & sensor_info = name_info.second;
290+
auto & sensor_proxy = sensor_info.proxy;
284291
//LOG_DEBUG( sensor_info.first );
285292

286293
// Set profile's ID based on the dds_stream's ID (index already set). Connect the profile to the extrinsics graph.
287-
for( auto & profile : sensor_info.second.proxy->get_stream_profiles() )
294+
// The get_stream_profiles() call will initialize the profiles (calling dds_sensor_proxy::init_stream_profiles())
295+
for( auto & profile : sensor_proxy->get_stream_profiles() )
288296
{
289-
//if( auto p = std::dynamic_pointer_cast< librealsense::video_stream_profile_interface >( profile ) )
290-
//{
291-
// LOG_DEBUG( " " << get_string( p->get_stream_type() ) << ' ' << p->get_stream_index() << ' '
292-
// << get_string( p->get_format() ) << ' ' << p->get_width() << 'x' << p->get_height()
293-
// << " @ " << p->get_framerate() );
294-
//}
295-
//else if( auto p = std::dynamic_pointer_cast<librealsense::motion_stream_profile_interface>( profile ) )
296-
//{
297-
// LOG_DEBUG( " " << get_string( p->get_stream_type() ) << ' ' << p->get_stream_index() << ' '
298-
// << get_string( p->get_format() ) << " @ " << p->get_framerate() );
299-
//}
300-
sid_index type_and_index( profile->get_stream_type(), profile->get_stream_index() );
301-
302-
auto & streams = sensor_info.second.proxy->streams();
303-
304-
sid_index sidx = type_and_index_to_dds_stream_sidx.at( type_and_index );
297+
auto & source_profiles = sensor_proxy->_formats_converter.get_source_profiles_from_target( profile );
298+
if( source_profiles.size() != 1 )
299+
LOG_ERROR( "More than one source profile available for [" << profile << "]: " << source_profiles );
300+
auto source_profile = source_profiles[0];
301+
302+
sid_index type_and_index( source_profile->get_stream_type(), source_profile->get_stream_index() );
303+
sid_index sidx = sensor_info.type_and_index_to_dds_stream_sidx.at( type_and_index );
304+
305+
auto & streams = sensor_proxy->streams();
305306
auto stream_iter = streams.find( sidx );
306307
if( stream_iter == streams.end() )
307308
{
308-
LOG_DEBUG( " no dds stream" );
309+
LOG_ERROR( "No dds stream " << sidx.to_string() << " found for '" << sensor_name << "' " << profile
310+
<< " -> " << source_profile << " " << type_and_index.to_string() );
309311
continue;
310312
}
311313

314+
//LOG_DEBUG( " " << profile << " -> " << source_profile << " " << type_and_index.to_string() );
312315
profile->set_unique_id( sidx.sid ); // Was lost on clone
313316

314317
// NOTE: the 'initialization_done' call above creates target profiles from the raw profiles we supplied it.

src/dds/rs-dds-sensor-proxy.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
#include <src/core/roi.h>
2222
#include <src/core/time-service.h>
2323
#include <src/stream.h>
24+
#include <src/context.h>
2425

2526
#include <src/proc/color-formats-converter.h>
2627

@@ -250,9 +251,8 @@ void dds_sensor_proxy::open( const stream_profiles & profiles )
250251
{
251252
auto & sp = source_profiles[i];
252253
sid_index sidx( sp->get_unique_id(), sp->get_stream_index() );
253-
if( Is< video_stream_profile >( sp ) )
254+
if( auto const vsp = As< video_stream_profile >( sp ) )
254255
{
255-
const auto && vsp = As< video_stream_profile >( source_profiles[i] );
256256
auto video_profile = find_profile(
257257
sidx,
258258
realdds::dds_video_stream_profile( sp->get_framerate(),

src/ds/d400/d400-color.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// License: Apache 2.0. See LICENSE file in root directory.
2-
// Copyright(c) 2016 Intel Corporation. All Rights Reserved.
2+
// Copyright(c) 2016-24 Intel Corporation. All Rights Reserved.
33

44
#include <cstddef>
55
#include "metadata.h"
@@ -11,23 +11,24 @@
1111
#include "d400-info.h"
1212
#include <src/backend.h>
1313
#include <src/platform/platform-utils.h>
14-
#include <src/fourcc.h>
1514
#include <src/metadata-parser.h>
1615

1716
#include <src/ds/features/auto-exposure-roi-feature.h>
1817

1918
#include <rsutils/string/from.h>
19+
#include <rsutils/type/fourcc.h>
20+
using rs_fourcc = rsutils::type::fourcc;
2021

2122
namespace librealsense
2223
{
23-
std::map<uint32_t, rs2_format> d400_color_fourcc_to_rs2_format = {
24+
std::map<rs_fourcc::value_type, rs2_format> d400_color_fourcc_to_rs2_format = {
2425
{rs_fourcc('Y','U','Y','2'), RS2_FORMAT_YUYV},
2526
{rs_fourcc('Y','U','Y','V'), RS2_FORMAT_YUYV},
2627
{rs_fourcc('U','Y','V','Y'), RS2_FORMAT_UYVY},
2728
{rs_fourcc('M','J','P','G'), RS2_FORMAT_MJPEG},
2829
{rs_fourcc('B','Y','R','2'), RS2_FORMAT_RAW16}
2930
};
30-
std::map<uint32_t, rs2_stream> d400_color_fourcc_to_rs2_stream = {
31+
std::map<rs_fourcc::value_type, rs2_stream> d400_color_fourcc_to_rs2_stream = {
3132
{rs_fourcc('Y','U','Y','2'), RS2_STREAM_COLOR},
3233
{rs_fourcc('Y','U','Y','V'), RS2_STREAM_COLOR},
3334
{rs_fourcc('U','Y','V','Y'), RS2_STREAM_COLOR},

src/ds/d400/d400-device.cpp

Lines changed: 32 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// License: Apache 2.0. See LICENSE file in root directory.
2-
// Copyright(c) 2016 Intel Corporation. All Rights Reserved.
2+
// Copyright(c) 2016-24 Intel Corporation. All Rights Reserved.
33

44
#include <librealsense2/h/rs_internal.h>
55
#include <src/device.h>
@@ -19,7 +19,6 @@
1919
#include "d400-color.h"
2020
#include "d400-nonmonochrome.h"
2121
#include <src/platform/platform-utils.h>
22-
#include <src/fourcc.h>
2322

2423
#include <src/ds/features/amplitude-factor-feature.h>
2524
#include <src/ds/features/emitter-frequency-feature.h>
@@ -37,6 +36,9 @@
3736
#include <common/fw/firmware-version.h>
3837
#include <src/fw-update/fw-update-unsigned.h>
3938

39+
#include <rsutils/type/fourcc.h>
40+
using rsutils::type::fourcc;
41+
4042
#include <rsutils/string/hexdump.h>
4143
#include <regex>
4244
#include <iterator>
@@ -52,36 +54,36 @@ constexpr bool hw_mon_over_xu = false;
5254

5355
namespace librealsense
5456
{
55-
std::map<uint32_t, rs2_format> d400_depth_fourcc_to_rs2_format = {
56-
{rs_fourcc('Y','U','Y','2'), RS2_FORMAT_YUYV},
57-
{rs_fourcc('Y','U','Y','V'), RS2_FORMAT_YUYV},
58-
{rs_fourcc('U','Y','V','Y'), RS2_FORMAT_UYVY},
59-
{rs_fourcc('G','R','E','Y'), RS2_FORMAT_Y8},
60-
{rs_fourcc('Y','8','I',' '), RS2_FORMAT_Y8I},
61-
{rs_fourcc('W','1','0',' '), RS2_FORMAT_W10},
62-
{rs_fourcc('Y','1','6',' '), RS2_FORMAT_Y16},
63-
{rs_fourcc('Y','1','2','I'), RS2_FORMAT_Y12I},
64-
{rs_fourcc('Z','1','6',' '), RS2_FORMAT_Z16},
65-
{rs_fourcc('Z','1','6','H'), RS2_FORMAT_Z16H},
66-
{rs_fourcc('R','G','B','2'), RS2_FORMAT_BGR8},
67-
{rs_fourcc('M','J','P','G'), RS2_FORMAT_MJPEG},
68-
{rs_fourcc('B','Y','R','2'), RS2_FORMAT_RAW16}
57+
std::map<fourcc::value_type, rs2_format> d400_depth_fourcc_to_rs2_format = {
58+
{fourcc('Y','U','Y','2'), RS2_FORMAT_YUYV},
59+
{fourcc('Y','U','Y','V'), RS2_FORMAT_YUYV},
60+
{fourcc('U','Y','V','Y'), RS2_FORMAT_UYVY},
61+
{fourcc('G','R','E','Y'), RS2_FORMAT_Y8},
62+
{fourcc('Y','8','I',' '), RS2_FORMAT_Y8I},
63+
{fourcc('W','1','0',' '), RS2_FORMAT_W10},
64+
{fourcc('Y','1','6',' '), RS2_FORMAT_Y16},
65+
{fourcc('Y','1','2','I'), RS2_FORMAT_Y12I},
66+
{fourcc('Z','1','6',' '), RS2_FORMAT_Z16},
67+
{fourcc('Z','1','6','H'), RS2_FORMAT_Z16H},
68+
{fourcc('R','G','B','2'), RS2_FORMAT_BGR8},
69+
{fourcc('M','J','P','G'), RS2_FORMAT_MJPEG},
70+
{fourcc('B','Y','R','2'), RS2_FORMAT_RAW16}
6971

7072
};
71-
std::map<uint32_t, rs2_stream> d400_depth_fourcc_to_rs2_stream = {
72-
{rs_fourcc('Y','U','Y','2'), RS2_STREAM_COLOR},
73-
{rs_fourcc('Y','U','Y','V'), RS2_STREAM_COLOR},
74-
{rs_fourcc('U','Y','V','Y'), RS2_STREAM_INFRARED},
75-
{rs_fourcc('G','R','E','Y'), RS2_STREAM_INFRARED},
76-
{rs_fourcc('Y','8','I',' '), RS2_STREAM_INFRARED},
77-
{rs_fourcc('W','1','0',' '), RS2_STREAM_INFRARED},
78-
{rs_fourcc('Y','1','6',' '), RS2_STREAM_INFRARED},
79-
{rs_fourcc('Y','1','2','I'), RS2_STREAM_INFRARED},
80-
{rs_fourcc('R','G','B','2'), RS2_STREAM_INFRARED},
81-
{rs_fourcc('Z','1','6',' '), RS2_STREAM_DEPTH},
82-
{rs_fourcc('Z','1','6','H'), RS2_STREAM_DEPTH},
83-
{rs_fourcc('B','Y','R','2'), RS2_STREAM_COLOR},
84-
{rs_fourcc('M','J','P','G'), RS2_STREAM_COLOR}
73+
std::map<fourcc::value_type, rs2_stream> d400_depth_fourcc_to_rs2_stream = {
74+
{fourcc('Y','U','Y','2'), RS2_STREAM_COLOR},
75+
{fourcc('Y','U','Y','V'), RS2_STREAM_COLOR},
76+
{fourcc('U','Y','V','Y'), RS2_STREAM_INFRARED},
77+
{fourcc('G','R','E','Y'), RS2_STREAM_INFRARED},
78+
{fourcc('Y','8','I',' '), RS2_STREAM_INFRARED},
79+
{fourcc('W','1','0',' '), RS2_STREAM_INFRARED},
80+
{fourcc('Y','1','6',' '), RS2_STREAM_INFRARED},
81+
{fourcc('Y','1','2','I'), RS2_STREAM_INFRARED},
82+
{fourcc('R','G','B','2'), RS2_STREAM_INFRARED},
83+
{fourcc('Z','1','6',' '), RS2_STREAM_DEPTH},
84+
{fourcc('Z','1','6','H'), RS2_STREAM_DEPTH},
85+
{fourcc('B','Y','R','2'), RS2_STREAM_COLOR},
86+
{fourcc('M','J','P','G'), RS2_STREAM_COLOR}
8587
};
8688

8789
std::vector<uint8_t> d400_device::send_receive_raw_data(const std::vector<uint8_t>& input)

src/ds/d400/d400-factory.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// License: Apache 2.0. See LICENSE file in root directory.
2-
// Copyright(c) 2016 Intel Corporation. All Rights Reserved.
2+
// Copyright(c) 2016-24 Intel Corporation. All Rights Reserved.
33

44
#include <mutex>
55
#include <chrono>
@@ -10,6 +10,7 @@
1010
#include "device.h"
1111
#include "image.h"
1212
#include "metadata-parser.h"
13+
#include "context.h"
1314

1415
#include <src/core/matcher-factory.h>
1516

src/ds/d400/d400-motion.cpp

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// License: Apache 2.0. See LICENSE file in root directory.
2-
// Copyright(c) 2016 Intel Corporation. All Rights Reserved.
2+
// Copyright(c) 2016-24 Intel Corporation. All Rights Reserved.
33

44
#include "d400-motion.h"
55

@@ -19,18 +19,21 @@
1919
#include "stream.h"
2020
#include "proc/motion-transform.h"
2121
#include "proc/auto-exposure-processor.h"
22-
#include <src/fourcc.h>
2322
#include <src/metadata-parser.h>
2423
#include <src/hid-sensor.h>
25-
using namespace librealsense;
24+
25+
#include <rsutils/type/fourcc.h>
26+
using rsutils::type::fourcc;
27+
28+
2629
namespace librealsense
2730
{
2831
// D457 development
29-
const std::map<uint32_t, rs2_format> motion_fourcc_to_rs2_format = {
30-
{rs_fourcc('G','R','E','Y'), RS2_FORMAT_MOTION_XYZ32F},
32+
const std::map<fourcc::value_type, rs2_format> motion_fourcc_to_rs2_format = {
33+
{fourcc('G','R','E','Y'), RS2_FORMAT_MOTION_XYZ32F},
3134
};
32-
const std::map<uint32_t, rs2_stream> motion_fourcc_to_rs2_stream = {
33-
{rs_fourcc('G','R','E','Y'), RS2_STREAM_ACCEL},
35+
const std::map<fourcc::value_type, rs2_stream> motion_fourcc_to_rs2_stream = {
36+
{fourcc('G','R','E','Y'), RS2_STREAM_ACCEL},
3437
};
3538

3639
rs2_motion_device_intrinsic d400_motion_base::get_motion_intrinsics(rs2_stream stream) const

src/ds/d500/d500-color.cpp

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// License: Apache 2.0. See LICENSE file in root directory.
2-
// Copyright(c) 2022 Intel Corporation. All Rights Reserved.
2+
// Copyright(c) 2022-4 Intel Corporation. All Rights Reserved.
33

44
#include <cstddef>
55
#include "metadata.h"
@@ -11,29 +11,31 @@
1111
#include "d500-info.h"
1212
#include "backend.h"
1313
#include "platform/platform-utils.h"
14-
#include <src/fourcc.h>
1514
#include <src/metadata-parser.h>
1615
#include <src/ds/ds-thermal-monitor.h>
1716

1817
#include <src/ds/features/auto-exposure-roi-feature.h>
1918

19+
#include <rsutils/type/fourcc.h>
20+
using rsutils::type::fourcc;
21+
2022
namespace librealsense
2123
{
22-
std::map<uint32_t, rs2_format> d500_color_fourcc_to_rs2_format = {
23-
{rs_fourcc('Y','U','Y','2'), RS2_FORMAT_YUYV},
24-
{rs_fourcc('Y','U','Y','V'), RS2_FORMAT_YUYV},
25-
{rs_fourcc('U','Y','V','Y'), RS2_FORMAT_UYVY},
26-
{rs_fourcc('M','J','P','G'), RS2_FORMAT_MJPEG},
27-
{rs_fourcc('B','Y','R','2'), RS2_FORMAT_RAW16},
28-
{rs_fourcc('M','4','2','0'), RS2_FORMAT_M420}
24+
std::map<fourcc::value_type, rs2_format> d500_color_fourcc_to_rs2_format = {
25+
{fourcc('Y','U','Y','2'), RS2_FORMAT_YUYV},
26+
{fourcc('Y','U','Y','V'), RS2_FORMAT_YUYV},
27+
{fourcc('U','Y','V','Y'), RS2_FORMAT_UYVY},
28+
{fourcc('M','J','P','G'), RS2_FORMAT_MJPEG},
29+
{fourcc('B','Y','R','2'), RS2_FORMAT_RAW16},
30+
{fourcc('M','4','2','0'), RS2_FORMAT_M420}
2931
};
30-
std::map<uint32_t, rs2_stream> d500_color_fourcc_to_rs2_stream = {
31-
{rs_fourcc('Y','U','Y','2'), RS2_STREAM_COLOR},
32-
{rs_fourcc('Y','U','Y','V'), RS2_STREAM_COLOR},
33-
{rs_fourcc('U','Y','V','Y'), RS2_STREAM_COLOR},
34-
{rs_fourcc('B','Y','R','2'), RS2_STREAM_COLOR},
35-
{rs_fourcc('M','J','P','G'), RS2_STREAM_COLOR},
36-
{rs_fourcc('M','4','2','0'), RS2_STREAM_COLOR}
32+
std::map<fourcc::value_type, rs2_stream> d500_color_fourcc_to_rs2_stream = {
33+
{fourcc('Y','U','Y','2'), RS2_STREAM_COLOR},
34+
{fourcc('Y','U','Y','V'), RS2_STREAM_COLOR},
35+
{fourcc('U','Y','V','Y'), RS2_STREAM_COLOR},
36+
{fourcc('B','Y','R','2'), RS2_STREAM_COLOR},
37+
{fourcc('M','J','P','G'), RS2_STREAM_COLOR},
38+
{fourcc('M','4','2','0'), RS2_STREAM_COLOR}
3739
};
3840

3941
d500_color::d500_color( std::shared_ptr< const d500_info > const & dev_info, rs2_format native_format )

0 commit comments

Comments
 (0)