Skip to main content
QCS6490Stable

SHDR

Staggered HDR

EIS

Stabilization

LDC

Lens Correction
Platform Scope:
This section is only applicable for QCS6490.

01 · Concurrency Logic

This section describes the possible concurrency use cases for running SHDR, EIS, and LDC. The following are the combinations available to run SHDR, EIS, and LDC in concurrency:
GST command optionDescription
vhdr=2 eis=1SHDR v3 applied on all streams. EIS applied on first stream
vhdr=2 eis=2SHDR v3 and EIS applied on two streams
vhdr=2 ldc=1SHDR v3+ LDC applied on all (1 or 2) streams
vhdr=1 ldc=1SHDR v2+ LDC applied on all (1 or 2) streams
eis=1 vhdr=2 ldc=1SHDRV3 applied on two streams. EIS+LDC applied on first stream
eis=2 vhdr=2 ldc=1SHDRV3+EIS+LDC applied on two streams

02 · Verification Setup

Before running any concurrency pipelines, ensure your environment is configured for log collection.
1

Connect to device

Connect to the device console using SSH.
2

Enable log collection

Run the following command on the device to collect the required system and CamX logs:
Log Collection
# journalctl -f > /opt/log.txt

03 · SHDR v3 and EIS Concurrence

SHDR and EIS concurrency is enabled for SHDR v3 only. This feature uses SHDR v3 sensor mode and does SHDR v3 processing first followed by EIS processing.
1

Enable Single Stream Concurrence

Use the following GStreamer command to enable the SHDR v3+EIS single stream use case:
GStreamer (SHDR v3 + EIS)
gst-launch-1.0 -e qtiqmmfsrc name=camsrc eis=1 vhdr=2 ! video/x-raw,format=NV12,\
width=1920,height=1080,framerate=30/1 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 \
extra-controls="controls,video_bitrate=6000000,video_bitrate_mode=0;" ! h264parse ! \
mp4mux ! filesink location=/opt/cam_1080p.mp4
2

Verify Single Stream Status

Verify the SHDR v3 + EIS single stream use case using the following logs:
Log Verification
cam-server[882]: [INFO]: RecorderCameraContext : OpenCamera: EIS on single stream is ON..
cam-server[882]: CamX: [ INFO]882 975 [CHI   ] camxchinodeeisdgv26.cpp:1346 Initialize() m_nodeCaps 131072
cam-server[882]: CamX: [CORE_CFG]882 1877 [CORE      ] camxpipeline.h:3024 SetPipelineStatus() RealTimeYUVSHDREISIOT_0 status is now PipelineStatus::STREAM_ON
3

Enable Dual Stream Concurrence

Use the following GStreamer command to enable the SHDR v3 + EIS on two streams use case:
GStreamer (Dual Stream)
gst-launch-1.0 -e qtiqmmfsrc name=camsrc eis=2 vhdr=2 video_0::type=preview ! \
video/x-raw,format= NV12,width=1920,height=1080,framerate=30/1 ! \
v4l2h264enc capture-io-mode=4 output-io-mode=5 extra-controls="controls,video_bitrate=6000000,\
video_bitrate_mode=0;" ! h264parse ! mp4mux ! filesink location=/opt/cam_prev.mp4 \
camsrc. ! video/x-raw,format=NV12,width=1280,height=720,\
framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 \
output-io-mode=5 extra-controls="controls,video_bitrate=6000000,video_bitrate_mode=0;" \
! h264parse ! mp4mux ! filesink location=/opt/cam_vid.mp4
4

Verify Dual Stream Status

Verify SHDR v3 + EIS on two streams use case using the following logs:
Log Verification
cam-server[882]: [INFO]: RecorderCameraContext : OpenCamera: EIS on dual stream is ON..
cam-server[882]: CamX: [ INFO]882 952 [CHI   ] camxchinodeeisdgv26.cpp:1346 Initialize() m_nodeCaps 131072
cam-server[882]: CamX: [CORE_CFG]882 2058 [CORE      ] camxpipeline.h:3024 SetPipelineStatus() RealTimeYUVSHDREISIOT_0 status is now PipelineStatus::STREAM_ON

04 · SHDR v3 and LDC Concurrence

This feature uses SHDR v3 sensor mode and does SHDR v3 processing followed by LDC processing.
1

Enable Pipeline

Use the following GStreamer command to enable this use case:
GStreamer (SHDR v3 + LDC)
gst-launch-1.0 -e qtiqmmfsrc name=camsrc vhdr=2 ldc=1 ! video/x-raw,\
format=NV12,width=1920,height=1080,framerate=30/1 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 \
extra-controls="controls,video_bitrate=6000000,video_bitrate_mode=0;" ! h264parse ! mp4mux ! \
filesink location=/opt/cam_1080p.mp4
2

Verify Status

Verify this use case is selected using the following logs:
Log Verification
cam-server[2089]: [INFO]: RecorderCameraContext : OpenCamera: EIS is disabled cam-server[2089]: CamX: [ INFO]2089 2090 [CHI  ]
camxchinodeeisdgv26.cpp:1346 Initialize() m_nodeCaps 524288
cam-server[2089]: CamX: [CORE_CFG]2089 2324 [CORE    ] camxpipeline.h:3024 SetPipelineStatus() RealTimeYUVSHDREISIOT_0 status is now PipelineStatus::STREAM_ON

05 · SHDR v2 and LDC Concurrence

This feature uses SHDR v2 sensor mode and does SHDR v2 processing followed by LDC processing.
1

Enable Pipeline

Use the following GStreamer command to enable this use case:
GStreamer (SHDR v2 + LDC)
gst-launch-1.0 -e qtiqmmfsrc name=camsrc vhdr=1 ldc=1 ! video/x-raw,\
format=NV12,width=1920,height=1080,framerate=30/1 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 \
extra-controls="controls,video_bitrate=6000000,video_bitrate_mode=0;" ! h264parse ! mp4mux ! \
filesink location=/opt/cam_1080p.mp4
2

Verify Status

Verify this use case is selected using the following logs:
Log Verification
cam-server[2358]: [INFO]: RecorderCameraContext : OpenCamera: EIS is disabled cam-server[2358]: CamX: [ INFO]2358 2366 [CHI  ]
camxchinodeeisdgv26.cpp:1346 Initialize() m_nodeCaps 524288
cam-server[2358]: CamX: [CORE_CFG]2358 2527 [CORE    ] camxpipeline.h:3024 SetPipelineStatus() RealTimeSHDRIOTLDC_0 status is now PipelineStatus::STREAM_ON

06 · SHDR v3, EIS, and LDC Concurrence

SHDR, EIS, and LDC concurrency is enabled with SHDR v3. This feature uses SHDR v3 sensor mode and does SHDR v3 processing followed by EIS and LDC processing.
1

Enable Single Stream Concurrence

Use the following GStreamer command to enable the SHDR v3, EIS, and LDC concurrency use case on a single stream:
GStreamer (SHDR v3 + EIS + LDC)
gst-launch-1.0 -e qtiqmmfsrc name=camsrc eis=1 vhdr=2 ldc=1 ! video/x-raw,\
format=NV12,width=1920,height=1080,framerate=30/1 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 \
extra-controls="controls,video_bitrate=6000000,video_bitrate_mode=0;" ! h264parse ! mp4mux ! \
filesink location=/opt/cam_1080p.mp4
2

Verify Single Stream Status

Verify the SHDR v3, EIS, and LDC concurrency on a single stream use case using the following logs:
Log Verification
cam-server[2555]: [INFO]: RecorderCameraContext : OpenCamera: EIS on single stream is ON..
cam-server[2555]: CamX: [ INFO]2555 2560 [CHI        ]
camxchinodeeisdgv26.cpp:1346 Initialize() m_nodeCaps 262144
cam-server[2555]: CamX: [CORE_CFG]2555 2764 [CORE    ] camxpipeline.h:3024 \
SetPipelineStatus() RealTimeYUVSHDREISIOT_0 status is now PipelineStatus::STREAM_ON
3

Enable Dual Stream Concurrence

Use the following GStreamer command to enable the SHDR v3, EIS, and LDC concurrency use case on two streams:
GStreamer (Dual Stream)
gst-launch-1.0 -e qtiqmmfsrc name=camsrc eis=2 vhdr=2 ldc=1 video_0::type=preview ! \
video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 ! \
v4l2h264enc capture-io-mode=4 output-io-mode=5 extra-controls="controls,video_bitrate=6000000,\
video_bitrate_mode=0;" ! h264parse ! mp4mux ! filesink location=/opt/cam_prev.mp4 \
camsrc. ! video/x-raw,format=NV12,width=1280,height=720,\
framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 \
output-io-mode=5 extra-controls="controls,video_bitrate=6000000,video_bitrate_mode=0;" ! \
h264parse ! mp4mux ! filesink location=/opt/cam_vid.mp4
4

Verify Dual Stream Status

Verify the SHDR v3, EIS, and LDC concurrency on two streams use case using the following logs:
Log Verification
cam-server[907]: [INFO]: RecorderCameraContext : OpenCamera: EIS on dual stream is ON..
cam-server[907]: CamX: [ INFO]907 984 [CHI   ] camxchinodeeisdgv26.cpp:1346 Initialize() m_nodeCaps 262144
cam-server[907]: CamX: [CORE_CFG]907 1586 [CORE      ] camxpipeline.h:3024 SetPipelineStatus() RealTimeYUVSHDREISIOT_0 status is now PipelineStatus::STREAM_ON