> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 自动切换线性与 SHDR 模式

> 在 QCS6490 平台上实现线性（Linear）与 SHDR v2 流水线之间的无缝运行时切换。

<div style={{display:'flex',gap:'8px',flexWrap:'wrap',marginBottom:'16px'}}>
  <span style={{background:'#ede9fe',color:'#5b21b6',padding:'2px 10px',borderRadius:'999px',fontSize:'12px',fontWeight:600}}>QCS6490</span>
  <span style={{background:'#f0fdf4',color:'#166534',padding:'2px 10px',borderRadius:'999px',fontSize:'12px',fontWeight:600}}>稳定</span>
</div>

<CardGroup cols={3}>
  <Card title="vhdr=3" icon="toggle-on">激活标志</Card>
  <Card title="Linear ↔ SHDR" icon="shuffle">无缝切换</Card>
  <Card title="预初始化" icon="bolt">低延迟</Card>
</CardGroup>

<Note>
  **平台适用范围：**<br />
  此功能仅适用于 **QCS6490**。
</Note>

***

## 01 · 它是什么？

此功能支持在不终止当前摄像头会话的情况下，在线性（Linear）与 SHDR v2 模式流水线之间**动态切换**。

主要架构优势包括：

* \*\*会话连续性：\*\*在光照水平（lux）波动期间防止视频会话中断。
* \*\*延迟优化：\*\*流水线在会话创建时预先初始化，以最大程度减少切换开销。
* \*\*资源管理：\*\*在重新配置阶段自动释放并重新获取硬件模块（传感器、IFE、IPE）。

<Note>
  此功能仅适用于 **SHDR v2** 和**线性**模式流水线。
</Note>

***

## 02 · 验证准备

<Note>
  使用 SSH 连接到设备控制台。相关说明请参阅 [How To SSH?](https://dragonwingdocs.qualcomm.com/Linux/devices/iq9075-evk/set-up-the-device#connect-over-ssh)。
</Note>

<Steps>
  <Step title="启动日志收集">
    在设备上运行以下命令以监控运行时事件：

    ```bash Log Collection theme={null}
    # journalctl -f > /opt/log.txt
    ```
  </Step>
</Steps>

***

## 03 · 功能验证

在 GST 命令中使用 `vhdr=3` 启用此功能。要启用该功能并在线性与 SHDR 模式之间切换：

<Steps>
  <Step title="执行元数据应用程序">
    运行 `gst-camera-metadata-example` 应用程序以支持运行时供应商标签配置。

    ```bash GStreamer (Auto Mode Switch) theme={null}
    gst-camera-metadata-example -p "qtiqmmfsrc name=camsrc camera=0 vhdr=3 ! \
    video/x-raw,format=NV12,width=3840,height=2160,framerate=30/1,\
    interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=4 \
    output-io-mode=5 ! queue ! h264parse ! mp4mux ! queue ! filesink location=/opt/mux4k.mp4"
    ```
  </Step>

  <Step title="切换到 READY 状态">
    在应用程序中，选择 **(1) READY**。
  </Step>

  <Step title="进入 PLAYING 状态">
    选择 **(3) PLAYING**。摄像头以线性模式启动。
  </Step>

  <Step title="打开元数据菜单">
    选择 **(4) META**。将显示以下菜单：

    ```text Metadata Root Menu theme={null}
     ---------MENU---------
    (1)        video-metadata
    (2)        image-metadata
    (3)        static-metadata
    (4)        session-metadata
    ```
  </Step>

  <Step title="选择视频类别">
    选择 **(1) video-metadata**。将显示以下菜单：

    ```text Video Metadata Menu theme={null}
     ---------video-metadata---------
    (1)        List all available tags
    (2)        Dump all tags values in a file
    (3)        Dump custom tags values in a file
    (4)        Get a tag
    (5)        Set a tag
    ```
  </Step>

  <Step title="调用标签修改">
    选择 **(5) Set a tag**。
  </Step>

  <Step title="定义供应商标签">
    出现提示，要求输入以空格分隔且不带引号的 section 名称和标签名称。输入：
    `org.quic.camera.videoHDRmode modeType`
  </Step>

  <Step title="触发模式切换">
    出现设置值的提示。输入 **1** 以切换到 SHDR 模式。

    <Tip>
      要在线性与 SHDR 模式之间切换，重复此过程，并根据需要输入 **1**（SHDR 模式）或 **0**（线性模式）。
    </Tip>
  </Step>
</Steps>

<Warning>
  要关闭摄像头，选择 **(q) QUIT** 或按 **CTRL + C**。
</Warning>

***

## 04 · 日志验证

通过检查以下日志特征验证流水线重新配置：

### 线性模式选择

```text CamX Status (Linear) theme={null}
cam-server[1693]: CamX: [REQMAP]1693 2652 [CORE   ] camxsession.cpp:4811
ProcessRequest() chiFrameNum: 0 <==> requestId: 1 <==> sequenceId: 0
<==> CSLSyncId: 1 -- RealTimeFeatureZSLPreviewRawYUV_0
```

### SHDR 模式选择

```text CamX Status (SHDR) theme={null}
cam-server[1693]: CamX: [REQMAP]1693 2652 [CORE   ] camxsession.cpp:4811
ProcessRequest() chiFrameNum: 296 <==> requestId: 297 <==> sequenceId:
296 <==> CSLSyncId: 297 -- RealTimeSHDR_0
```
