You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							66 lines
						
					
					
						
							2.8 KiB
						
					
					
				
			
		
		
	
	
							66 lines
						
					
					
						
							2.8 KiB
						
					
					
				# License: Apache 2.0. See LICENSE file in root directory.
 | 
						|
# Copyright(c) 2024 Intel Corporation. All Rights Reserved.
 | 
						|
 | 
						|
# test:device D400*
 | 
						|
 | 
						|
import pyrealsense2 as rs
 | 
						|
from rspy import test, log
 | 
						|
 | 
						|
with test.closure("HDR Streaming - custom config"):
 | 
						|
    device = test.find_first_device_or_exit()
 | 
						|
    depth_sensor = device.first_depth_sensor()
 | 
						|
 | 
						|
    if test.check(depth_sensor and depth_sensor.supports(rs.option.hdr_enabled)):
 | 
						|
        depth_sensor.set_option(rs.option.sequence_size, 2)
 | 
						|
        test.check(depth_sensor.get_option(rs.option.sequence_size) == 2)
 | 
						|
        first_exposure = 120
 | 
						|
        first_gain = 90
 | 
						|
        depth_sensor.set_option(rs.option.sequence_id, 1)
 | 
						|
        test.check(depth_sensor.get_option(rs.option.sequence_id) == 1)
 | 
						|
        depth_sensor.set_option(rs.option.exposure, first_exposure)
 | 
						|
        test.check(depth_sensor.get_option(rs.option.exposure) == first_exposure)
 | 
						|
        depth_sensor.set_option(rs.option.gain, first_gain)
 | 
						|
        test.check(depth_sensor.get_option(rs.option.gain) == first_gain)
 | 
						|
 | 
						|
        second_exposure = 1200
 | 
						|
        second_gain = 20
 | 
						|
        depth_sensor.set_option(rs.option.sequence_id, 2)
 | 
						|
        test.check(depth_sensor.get_option(rs.option.sequence_id) == 2)
 | 
						|
        depth_sensor.set_option(rs.option.exposure, second_exposure)
 | 
						|
        test.check(depth_sensor.get_option(rs.option.exposure) == second_exposure)
 | 
						|
        depth_sensor.set_option(rs.option.gain, second_gain)
 | 
						|
        test.check(depth_sensor.get_option(rs.option.gain) == second_gain)
 | 
						|
 | 
						|
        depth_sensor.set_option(rs.option.hdr_enabled, 1)
 | 
						|
        test.check(depth_sensor.get_option(rs.option.hdr_enabled) == 1)
 | 
						|
 | 
						|
        cfg = rs.config()
 | 
						|
        cfg.enable_stream(rs.stream.depth)
 | 
						|
        cfg.enable_stream(rs.stream.infrared, 1)
 | 
						|
        pipe = rs.pipeline()
 | 
						|
        pipe.start(cfg)
 | 
						|
 | 
						|
        for iteration in range(1, 100):
 | 
						|
            data = pipe.wait_for_frames()
 | 
						|
 | 
						|
            out_depth_frame = data.get_depth_frame()
 | 
						|
            if iteration < 3:
 | 
						|
                continue
 | 
						|
 | 
						|
            if out_depth_frame.supports_frame_metadata(rs.frame_metadata_value.sequence_id):
 | 
						|
                frame_exposure = out_depth_frame.get_frame_metadata(rs.frame_metadata_value.actual_exposure)
 | 
						|
                frame_gain = out_depth_frame.get_frame_metadata(rs.frame_metadata_value.gain_level)
 | 
						|
                seq_id = out_depth_frame.get_frame_metadata(rs.frame_metadata_value.sequence_id)
 | 
						|
 | 
						|
                if seq_id == 0:
 | 
						|
                    test.check(frame_exposure == first_exposure)
 | 
						|
                    test.check(frame_gain == first_gain)
 | 
						|
                else:
 | 
						|
                    test.check(frame_exposure == second_exposure)
 | 
						|
                    test.check(frame_gain == second_gain)
 | 
						|
 | 
						|
        pipe.stop()
 | 
						|
        depth_sensor.set_option(rs.option.hdr_enabled, 0)  # disable hdr before next tests
 | 
						|
 | 
						|
test.print_results_and_exit()
 |