Skip to content

Commit 5105b4d

Browse files
authored
PR #12428 from maloel: move to non-virtual d500_color::register_color_processing_blocks()
2 parents 333c949 + a53811e commit 5105b4d

File tree

3 files changed

+36
-21
lines changed

3 files changed

+36
-21
lines changed

src/ds/d500/d500-color.cpp

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,12 @@ namespace librealsense
3232
{rs_fourcc('M','4','2','0'), RS2_STREAM_COLOR}
3333
};
3434

35-
d500_color::d500_color( std::shared_ptr< const d500_info > const & dev_info )
36-
: d500_device(dev_info), device(dev_info),
37-
_color_stream(new stream(RS2_STREAM_COLOR)),
38-
_separate_color(true)
35+
d500_color::d500_color( std::shared_ptr< const d500_info > const & dev_info, rs2_format native_format )
36+
: d500_device( dev_info )
37+
, device( dev_info )
38+
, _color_stream( new stream( RS2_STREAM_COLOR ) )
39+
, _separate_color( true )
40+
, _native_format( native_format )
3941
{
4042
create_color_device( dev_info->get_context(), dev_info->get_group() );
4143
init();
@@ -95,6 +97,32 @@ namespace librealsense
9597
register_color_processing_blocks();
9698
}
9799

100+
void d500_color::register_color_processing_blocks()
101+
{
102+
auto & color_ep = get_color_sensor();
103+
104+
switch( _native_format )
105+
{
106+
case RS2_FORMAT_YUYV:
107+
color_ep.register_processing_block( processing_block_factory::create_pbf_vector< yuy2_converter >(
108+
RS2_FORMAT_YUYV,
109+
map_supported_color_formats( RS2_FORMAT_YUYV ),
110+
RS2_STREAM_COLOR ) );
111+
break;
112+
case RS2_FORMAT_M420:
113+
color_ep.register_processing_block( processing_block_factory::create_pbf_vector< m420_converter >(
114+
RS2_FORMAT_M420,
115+
map_supported_color_formats( RS2_FORMAT_M420 ),
116+
RS2_STREAM_COLOR ) );
117+
break;
118+
default:
119+
throw invalid_value_exception( "invalid native color format "
120+
+ std::string( get_string( _native_format ) ) );
121+
}
122+
color_ep.register_processing_block( // Color Raw (Bayer 10-bit embedded in 16-bit) for calibration
123+
processing_block_factory::create_id_pbf( RS2_FORMAT_RAW16, RS2_STREAM_COLOR ) );
124+
}
125+
98126
void d500_color::register_options()
99127
{
100128
auto& color_ep = get_color_sensor();

src/ds/d500/d500-color.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ namespace librealsense
1818
class d500_color : public virtual d500_device
1919
{
2020
public:
21-
d500_color( std::shared_ptr< const d500_info > const & );
21+
d500_color( std::shared_ptr< const d500_info > const &, rs2_format native_format );
2222

2323
synthetic_sensor& get_color_sensor()
2424
{
@@ -34,12 +34,12 @@ namespace librealsense
3434
protected:
3535
std::shared_ptr<stream_interface> _color_stream;
3636
std::shared_ptr<ds_color_common> _ds_color_common;
37-
38-
virtual void register_color_processing_blocks() = 0;
37+
rs2_format const _native_format;
3938

4039
private:
4140
void register_options();
4241
void register_metadata();
42+
void register_color_processing_blocks();
4343

4444
void register_stream_to_extrinsic_group(const stream_interface& stream, uint32_t group_index);
4545

src/ds/d500/d500-factory.cpp

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ class d555e_device
4949
, backend_device( dev_info )
5050
, d500_device( dev_info )
5151
, d500_active( dev_info )
52-
, d500_color( dev_info )
52+
, d500_color( dev_info, RS2_FORMAT_YUYV )
5353
, d500_motion( dev_info )
5454
, ds_advanced_mode_base( d500_device::_hw_monitor, get_depth_sensor() )
5555
, firmware_logger_device(
@@ -67,19 +67,6 @@ class d555e_device
6767
}
6868

6969

70-
void register_color_processing_blocks() override
71-
{
72-
auto & color_ep = get_color_sensor();
73-
74-
color_ep.register_processing_block( processing_block_factory::create_pbf_vector< yuy2_converter >(
75-
RS2_FORMAT_YUYV,
76-
map_supported_color_formats( RS2_FORMAT_YUYV ),
77-
RS2_STREAM_COLOR ) );
78-
color_ep.register_processing_block( // Color Raw (Bayer 10-bit embedded in 16-bit) for calibration
79-
processing_block_factory::create_id_pbf( RS2_FORMAT_RAW16, RS2_STREAM_COLOR ) );
80-
}
81-
82-
8370
std::vector< tagged_profile > get_profiles_tags() const override
8471
{
8572
std::vector< tagged_profile > tags;

0 commit comments

Comments
 (0)