[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-nvidia-deepstream-dev":3,"mdc--gr69o4-key":31,"related-repo-nvidia-deepstream-dev":2315,"related-org-nvidia-deepstream-dev":2419},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":20,"repoUrl":21,"updatedAt":22,"license":23,"forks":24,"topics":25,"repo":26,"sourceUrl":29,"mdContent":30},"deepstream-dev","build video analytics pipelines with DeepStream","NVIDIA DeepStream SDK development with Python pyservicemaker API. Use when building video analytics pipelines, GStreamer-based video processing, TensorRT inference integration, object detection\u002Ftracking, or Kafka\u002Fmessage broker integration.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},"nvidia","NVIDIA","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fnvidia.png",[12,16,17],{"name":13,"slug":14,"type":15},"Data Pipeline","data-pipeline","tag",{"name":9,"slug":8,"type":15},{"name":18,"slug":19,"type":15},"Video","video",2473,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fskills","2026-07-17T05:29:07.918471","CC-BY-4.0 AND Apache-2.0",281,[],{"repoUrl":21,"stars":20,"forks":24,"topics":27,"description":28},[],"AI agent skills published by NVIDIA","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Fdeepstream-dev","---\nname: deepstream-dev\ndescription: NVIDIA DeepStream SDK development with Python pyservicemaker API. Use when building video analytics pipelines, GStreamer-based video processing, TensorRT inference integration, object detection\u002Ftracking, or Kafka\u002Fmessage broker integration.\nowner: NVIDIA CORPORATION\nservice: deepstream\nversion: 1.1.1\nreviewed: 2026-04-24\nlicense: CC-BY-4.0 AND Apache-2.0\n---\n\n# DeepStream Development Skill\n\nWhen this skill is active, **ALWAYS read the relevant reference documents** before generating code. Do NOT rely on memory - the reference documents contain critical details about exact property names, correct API usage, and common pitfalls.\n\n## SDK and Architecture Quick Reference\n\n### DeepStream SDK Version Requirements\n\n- **GStreamer**: 1.24.2\n- **NVIDIA Driver**: 590+\n- **CUDA**: 13.1\n- **TensorRT**: 10.14.1.48\n- **Platforms**: Ubuntu 24.04 (x86_64 and ARM64\u002FJetson)\n\n### Typical Pipeline Flow\n\n```\nSource → Stream Muxer → Inference → [Tracker] → OSD → Renderer\n```\nComponents in `[brackets]` are **optional** -- only add them when the user explicitly requests them.\n\n| Stage | Role | Key Element(s) | Required? |\n|-------|------|-----------------|-----------|\n| Source | Input from files, RTSP, cameras | `nvurisrcbin` (preferred), `nvmultiurisrcbin`, `filesrc` | Yes |\n| Stream Muxer | Batches streams for inference | `nvstreammux` | Yes |\n| Inference | TensorRT model execution | `nvinfer`, `nvinferserver` | Yes |\n| Tracker | Multi-object tracking across frames | `nvtracker` | **Only if requested** |\n| OSD | Draws bounding boxes, labels, overlays | `nvosdbin` | Yes (for visualization) |\n| Renderer | Display or save output | `nveglglessink`, `nv3dsink`, `filesink` | Yes |\n\n### Memory Model\n\nDeepStream uses NVIDIA Video Memory Manager (NVMM) for zero-copy GPU buffer transfers. Caps strings use `memory:NVMM` to indicate GPU memory (e.g., `video\u002Fx-raw(memory:NVMM), format=NV12`).\n\n## Critical Rules\n\n1. **Only Add Requested Components**: Do NOT add pipeline elements the user did not ask for.\n   - **Tracker (`nvtracker`)**: Only add when the user explicitly requests tracking or object IDs across frames\n   - **Secondary GIEs**: Only add when the user requests classification or attribute extraction\n   - **Analytics (`nvdsanalytics`)**: Only add when the user requests line crossing, ROI counting, etc.\n   - **Message broker (`nvmsgbroker`\u002F`nvmsgconv`)**: Only add when the user requests Kafka\u002Fcloud messaging\n   - When in doubt, build the **minimal working pipeline** and let the user ask for additions\n\n2. **Default to `nvurisrcbin` for Sources**: When the user says \"camera\", \"stream\", \"video\", or provides a file path:\n   - Always use `nvurisrcbin` -- it handles RTSP, HTTP, and local files (`file:\u002F\u002F`) transparently\n   - Only use `filesrc` + `qtdemux` + parser when the user explicitly needs raw file source control\n   - For RTSP\u002Flive sources, also set `live-source=1` on `nvstreammux` and `sync=0` on the sink\n   - Convert local paths to URI: `\"file:\u002F\u002F\" + os.path.abspath(path)`\n\n3. **Metadata Iteration**: Use `.frame_items` and `.object_items` (returns iterators, NOT lists)\n   - NEVER use `len()` on these - iterate to count\n   - Iterator can only be consumed once\n\n4. **Request Pad Syntax**: Use `\"sink_%u\"` template, NEVER literal pad names\n   ```python\n   pipeline.link((\"decoder\", \"mux\"), (\"\", \"sink_%u\"))  # CORRECT\n   # pipeline.link((\"decoder\", \"mux\"), (\"\", \"sink_0\"))  # WRONG - will fail\n   ```\n\n5. **Platform Detection for Sinks**:\n   ```python\n   import platform\n   sink_type = \"nv3dsink\" if platform.processor() == \"aarch64\" else \"nveglglessink\"\n   ```\n\n6. **Buffer Cloning**: Always clone buffers for async processing\n   ```python\n   tensor = buffer.extract(0).clone()  # CRITICAL\n   ```\n\n7. **Queue Types**:\n   - `queue.Queue` → Use with `threading.Thread`\n   - `multiprocessing.Queue` → Use with `multiprocessing.Process`\n   - Using wrong type causes silent data loss!\n\n8. **nvinfer Config Format**:\n   - YAML: Use `property:` section (NOT `model:`), `key: value` with space after colon\n   - INI: Use `[property]` section, `key=value` with equals sign\n   - Section MUST be named `property`\n\n9. **nvmsgbroker is a SINK**: Cannot have downstream elements - use `tee` to split pipeline\n\n10. **ALL Sinks Need async=0 for Tee Splits or Dynamic Sources**: CRITICAL for state transitions\n    ```python\n    # When using tee splits OR dynamic sources, ALL sinks MUST have async=0\n    pipeline.add(\"nveglglessink\", \"sink\", {\n        \"sync\": 0, \"qos\": 0,\n        \"async\": 0  # CRITICAL - prevents state transition deadlock\n    })\n    ```\n    **Symptom if missing**: Pipeline stays in PAUSED state, no video displays.\n\n11. **Built-in Probe Attachment**: `measure_fps_probe` can only be attached to processing elements (e.g., `nvinfer`, `nvosdbin`), **NOT** to sink elements. Attaching to a sink raises `RuntimeError: Probe failure`.\n\n12. **Dynamic ONNX Models Require `infer-dims`**: When the ONNX model has dynamic input shapes (e.g., exported with `dynamic=True` in Ultralytics YOLO, or with dynamic batch\u002Fheight\u002Fwidth axes), you **MUST** add `infer-dims=C;H;W` to the nvinfer config. Without it, TensorRT sees `-1` for dynamic dimensions and fails with `setDimensions: Error Code 3`. Common values:\n    - YOLO models (640 input): `infer-dims=3;640;640`\n    - Models with 416 input: `infer-dims=3;416;416`\n    - Models with 1280 input: `infer-dims=3;1280;1280`\n\n13. **Ultralytics YOLO Output Format Depends on Model Generation** — newer models (v10+\u002Fv26+) output post-NMS results; older models (v8\u002Fv11) output raw pre-NMS tensors. The custom parser and `cluster-mode` **must** match the actual output:\n\n   | Model generation | Output tensor shape | Fields | `cluster-mode` |\n   |------------------|--------------------|---------------------------------|----------------|\n   | v8 \u002F v11 | `[batch, 84, 8400]` | `[features(4+80), anchors]` — raw cx\u002Fcy\u002Fw\u002Fh + class scores, no NMS | `2` (NMS) |\n   | v10 \u002F v26+ | `[batch, 300, 6]` | `[max_det, (x1,y1,x2,y2,conf,cls)]` — already post-NMS, pixel coords | `4` (none) |\n\n   **How to identify at runtime**: log `inferDims.d[0]` and `inferDims.d[1]` inside the custom parser.\n   - `d={84, 8400}` → pre-NMS (v8\u002Fv11 style)\n   - `d={300, 6}` → post-NMS (v10\u002Fv26+ style)\n\n   **Symptom of mismatch**: If `cluster-mode: 2` is used with a post-NMS `[N, 6]` output, bounding boxes appear shifted by 45° or 135° from the actual objects (DeepStream's NMS incorrectly re-processes already-final coordinates).\n   If you see tilted or rotated boxes, also check the OBB \u002F `rotation_angle` note in `references\u002Fnvinfer_config.md`: for non-OBB models, value-initialize `NvDsInferObjectDetectionInfo` with `obj{}` and keep `rotation_angle = 0`; plain `NvDsInferObjectDetectionInfo obj;` leaves fields uninitialized.\n\n14. **Virtual Environment Must Include pyservicemaker**: `pyservicemaker` is installed system-wide but is NOT accessible from a standard Python virtual environment. When a task requires a venv (e.g., for model download\u002Fconversion pip dependencies), **always install `pyservicemaker` and `pyyaml` inside the venv**. The venv setup in generated code and README must always include:\n    ```bash\n    python3 -m venv venv\n    source venv\u002Fbin\u002Factivate\n    pip install \u002Fopt\u002Fnvidia\u002Fdeepstream\u002Fdeepstream\u002Fservice-maker\u002Fpython\u002Fpyservicemaker*.whl pyyaml\n    pip install -r requirements.txt  # other dependencies\n    ```\n    **Symptom if missing**: `ModuleNotFoundError: No module named 'pyservicemaker'` when running the app inside the venv.\n\n## Key Paths\n\n- Models: `\u002Fopt\u002Fnvidia\u002Fdeepstream\u002Fdeepstream\u002Fsamples\u002Fmodels\u002F`\n- Primary Detector: `\u002Fopt\u002Fnvidia\u002Fdeepstream\u002Fdeepstream\u002Fsamples\u002Fmodels\u002FPrimary_Detector\u002Fresnet18_trafficcamnet_pruned.onnx`\n- Tracker lib: `\u002Fopt\u002Fnvidia\u002Fdeepstream\u002Fdeepstream\u002Flib\u002Flibnvds_nvmultiobjecttracker.so`\n- Kafka lib: `\u002Fopt\u002Fnvidia\u002Fdeepstream\u002Fdeepstream\u002Flib\u002Flibnvds_kafka_proto.so`\n- Sample configs: `\u002Fopt\u002Fnvidia\u002Fdeepstream\u002Fdeepstream\u002Fsamples\u002Fconfigs\u002Fdeepstream-app\u002F`\n\n## Reference Documents\n\n**IMPORTANT**: Always read these documents for complete details. Do NOT generate code from memory.\n\n| Document | Use When |\n|----------|----------|\n| [references\u002Fgstreamer_plugins.md](references\u002Fgstreamer_plugins.md) | Looking up plugin properties, ALL properties listed |\n| [references\u002Fservice_maker_api.md](references\u002Fservice_maker_api.md) | Using Pipeline\u002FFlow API, metadata access, probes, EventMessageUserMetadata |\n| [references\u002Fuse_cases_pipelines.md](references\u002Fuse_cases_pipelines.md) | Building pipelines: simple playback, multi-inference, cascaded GIE |\n| [references\u002Fstreaming_sources.md](references\u002Fstreaming_sources.md) | Ingesting local files, HTTP MP4, HLS, MPEG-DASH, or RTSP sources with nvurisrcbin |\n| [references\u002Fkafka_messaging.md](references\u002Fkafka_messaging.md) | Kafka\u002Fmessage broker setup, nvmsgconv\u002Fnvmsgbroker config, msg2p-newapi |\n| [references\u002Fbest_practices.md](references\u002Fbest_practices.md) | Design patterns, common pitfalls, anti-patterns |\n| [references\u002Fbuffer_apis.md](references\u002Fbuffer_apis.md) | BufferProvider\u002FFeeder (injection), BufferRetriever\u002FReceiver (extraction) |\n| [references\u002Fmedia_extractor_advanced.md](references\u002Fmedia_extractor_advanced.md) | MediaExtractor, MediaChunk, FrameSampler |\n| [references\u002Futilities_config.md](references\u002Futilities_config.md) | PerfMonitor, EngineFileMonitor, SourceConfig, SensorInfo, SmartRecordConfig |\n| [references\u002Fnvinfer_config.md](references\u002Fnvinfer_config.md) | nvinfer config file format, ALL parameters |\n| [references\u002Ftracker_config.md](references\u002Ftracker_config.md) | nvtracker config, NvDCF\u002FIOU\u002FDeepSORT\u002FNvSORT |\n| [references\u002Ftroubleshooting.md](references\u002Ftroubleshooting.md) | Error messages and solutions |\n| [references\u002Frest_api_dynamic.md](references\u002Frest_api_dynamic.md) | REST API, dynamic source add\u002Fremove, nvmultiurisrcbin |\n| [references\u002Fmetamux_config.md](references\u002Fmetamux_config.md) | nvdsmetamux config, parallel multi-model inference, metadata merging, source ID filtering |\n| [references\u002Fdocker_containers.md](references\u002Fdocker_containers.md) | Docker images, Dockerfile examples, pyservicemaker install, container run commands |\n| [references\u002Fnvds_msgapi_adapter.md](references\u002Fnvds_msgapi_adapter.md) | Building custom protocol adapters: nvds_msgapi |\n\n## Quick Error Reference\n\n| Error | Solution |\n|-------|----------|\n| `iterator has no len()` | Iterate to count, don't use `len()` |\n| `pad template not found` | Use `\"sink_%u\"` not `\"sink_0\"` |\n| Queue data loss | Use `multiprocessing.Queue` with `Process` |\n| Config parse failed | Use `property:` not `model:` in YAML |\n| `is-classifier` deprecation warning | Use `network-type: 1` instead of `is-classifier: 1` for classifiers; omit both for detectors |\n| `min-boxes` unknown key warning | Use `minBoxes` (camelCase) in `class-attrs-*` sections, not `min-boxes` |\n| Secondary GIE inactive | Set `process-mode: 2`, check `operate-on-gie-id` |\n| Tee\u002Fdynamic source stuck PAUSED | Set `async: 0` on **ALL** sink elements |\n| RTSP no data\u002Freconnecting | Test URL with ffplay, check credentials |\n| `RuntimeError: Probe failure` | `measure_fps_probe` cannot attach to sink elements; use `nvinfer` or `nvosdbin` instead |\n| `setDimensions` negative dims \u002F engine build failed | Add `infer-dims=C;H;W` for dynamic ONNX models (e.g., `infer-dims=3;640;640`) |\n| `No module named 'pyservicemaker'` in venv | `pip install \u002Fopt\u002Fnvidia\u002Fdeepstream\u002Fdeepstream\u002Fservice-maker\u002Fpython\u002Fpyservicemaker*.whl pyyaml` inside the venv |\n| `AttributeError: object has no attribute 'obj_label'` | Use `obj_meta.label` not `obj_meta.obj_label` in pyservicemaker (C API name differs from Python binding) |\n\n\u003C!-- Signing refresh marker. -->\n",{"data":32,"body":37},{"name":4,"description":6,"owner":33,"service":34,"version":35,"reviewed":36,"license":23},"NVIDIA CORPORATION","deepstream","1.1.1","2026-04-24",{"type":38,"children":39},"root",[40,49,63,70,77,132,138,151,171,408,414,435,441,1160,1273,1298,1323,1397,1561,1567,1625,1631,1641,1919,1925,2309],{"type":41,"tag":42,"props":43,"children":45},"element","h1",{"id":44},"deepstream-development-skill",[46],{"type":47,"value":48},"text","DeepStream Development Skill",{"type":41,"tag":50,"props":51,"children":52},"p",{},[53,55,61],{"type":47,"value":54},"When this skill is active, ",{"type":41,"tag":56,"props":57,"children":58},"strong",{},[59],{"type":47,"value":60},"ALWAYS read the relevant reference documents",{"type":47,"value":62}," before generating code. Do NOT rely on memory - the reference documents contain critical details about exact property names, correct API usage, and common pitfalls.",{"type":41,"tag":64,"props":65,"children":67},"h2",{"id":66},"sdk-and-architecture-quick-reference",[68],{"type":47,"value":69},"SDK and Architecture Quick Reference",{"type":41,"tag":71,"props":72,"children":74},"h3",{"id":73},"deepstream-sdk-version-requirements",[75],{"type":47,"value":76},"DeepStream SDK Version Requirements",{"type":41,"tag":78,"props":79,"children":80},"ul",{},[81,92,102,112,122],{"type":41,"tag":82,"props":83,"children":84},"li",{},[85,90],{"type":41,"tag":56,"props":86,"children":87},{},[88],{"type":47,"value":89},"GStreamer",{"type":47,"value":91},": 1.24.2",{"type":41,"tag":82,"props":93,"children":94},{},[95,100],{"type":41,"tag":56,"props":96,"children":97},{},[98],{"type":47,"value":99},"NVIDIA Driver",{"type":47,"value":101},": 590+",{"type":41,"tag":82,"props":103,"children":104},{},[105,110],{"type":41,"tag":56,"props":106,"children":107},{},[108],{"type":47,"value":109},"CUDA",{"type":47,"value":111},": 13.1",{"type":41,"tag":82,"props":113,"children":114},{},[115,120],{"type":41,"tag":56,"props":116,"children":117},{},[118],{"type":47,"value":119},"TensorRT",{"type":47,"value":121},": 10.14.1.48",{"type":41,"tag":82,"props":123,"children":124},{},[125,130],{"type":41,"tag":56,"props":126,"children":127},{},[128],{"type":47,"value":129},"Platforms",{"type":47,"value":131},": Ubuntu 24.04 (x86_64 and ARM64\u002FJetson)",{"type":41,"tag":71,"props":133,"children":135},{"id":134},"typical-pipeline-flow",[136],{"type":47,"value":137},"Typical Pipeline Flow",{"type":41,"tag":139,"props":140,"children":144},"pre",{"className":141,"code":143,"language":47},[142],"language-text","Source → Stream Muxer → Inference → [Tracker] → OSD → Renderer\n",[145],{"type":41,"tag":146,"props":147,"children":149},"code",{"__ignoreMap":148},"",[150],{"type":47,"value":143},{"type":41,"tag":50,"props":152,"children":153},{},[154,156,162,164,169],{"type":47,"value":155},"Components in ",{"type":41,"tag":146,"props":157,"children":159},{"className":158},[],[160],{"type":47,"value":161},"[brackets]",{"type":47,"value":163}," are ",{"type":41,"tag":56,"props":165,"children":166},{},[167],{"type":47,"value":168},"optional",{"type":47,"value":170}," -- only add them when the user explicitly requests them.",{"type":41,"tag":172,"props":173,"children":174},"table",{},[175,204],{"type":41,"tag":176,"props":177,"children":178},"thead",{},[179],{"type":41,"tag":180,"props":181,"children":182},"tr",{},[183,189,194,199],{"type":41,"tag":184,"props":185,"children":186},"th",{},[187],{"type":47,"value":188},"Stage",{"type":41,"tag":184,"props":190,"children":191},{},[192],{"type":47,"value":193},"Role",{"type":41,"tag":184,"props":195,"children":196},{},[197],{"type":47,"value":198},"Key Element(s)",{"type":41,"tag":184,"props":200,"children":201},{},[202],{"type":47,"value":203},"Required?",{"type":41,"tag":205,"props":206,"children":207},"tbody",{},[208,252,278,311,341,368],{"type":41,"tag":180,"props":209,"children":210},{},[211,217,222,247],{"type":41,"tag":212,"props":213,"children":214},"td",{},[215],{"type":47,"value":216},"Source",{"type":41,"tag":212,"props":218,"children":219},{},[220],{"type":47,"value":221},"Input from files, RTSP, cameras",{"type":41,"tag":212,"props":223,"children":224},{},[225,231,233,239,241],{"type":41,"tag":146,"props":226,"children":228},{"className":227},[],[229],{"type":47,"value":230},"nvurisrcbin",{"type":47,"value":232}," (preferred), ",{"type":41,"tag":146,"props":234,"children":236},{"className":235},[],[237],{"type":47,"value":238},"nvmultiurisrcbin",{"type":47,"value":240},", ",{"type":41,"tag":146,"props":242,"children":244},{"className":243},[],[245],{"type":47,"value":246},"filesrc",{"type":41,"tag":212,"props":248,"children":249},{},[250],{"type":47,"value":251},"Yes",{"type":41,"tag":180,"props":253,"children":254},{},[255,260,265,274],{"type":41,"tag":212,"props":256,"children":257},{},[258],{"type":47,"value":259},"Stream Muxer",{"type":41,"tag":212,"props":261,"children":262},{},[263],{"type":47,"value":264},"Batches streams for inference",{"type":41,"tag":212,"props":266,"children":267},{},[268],{"type":41,"tag":146,"props":269,"children":271},{"className":270},[],[272],{"type":47,"value":273},"nvstreammux",{"type":41,"tag":212,"props":275,"children":276},{},[277],{"type":47,"value":251},{"type":41,"tag":180,"props":279,"children":280},{},[281,286,291,307],{"type":41,"tag":212,"props":282,"children":283},{},[284],{"type":47,"value":285},"Inference",{"type":41,"tag":212,"props":287,"children":288},{},[289],{"type":47,"value":290},"TensorRT model execution",{"type":41,"tag":212,"props":292,"children":293},{},[294,300,301],{"type":41,"tag":146,"props":295,"children":297},{"className":296},[],[298],{"type":47,"value":299},"nvinfer",{"type":47,"value":240},{"type":41,"tag":146,"props":302,"children":304},{"className":303},[],[305],{"type":47,"value":306},"nvinferserver",{"type":41,"tag":212,"props":308,"children":309},{},[310],{"type":47,"value":251},{"type":41,"tag":180,"props":312,"children":313},{},[314,319,324,333],{"type":41,"tag":212,"props":315,"children":316},{},[317],{"type":47,"value":318},"Tracker",{"type":41,"tag":212,"props":320,"children":321},{},[322],{"type":47,"value":323},"Multi-object tracking across frames",{"type":41,"tag":212,"props":325,"children":326},{},[327],{"type":41,"tag":146,"props":328,"children":330},{"className":329},[],[331],{"type":47,"value":332},"nvtracker",{"type":41,"tag":212,"props":334,"children":335},{},[336],{"type":41,"tag":56,"props":337,"children":338},{},[339],{"type":47,"value":340},"Only if requested",{"type":41,"tag":180,"props":342,"children":343},{},[344,349,354,363],{"type":41,"tag":212,"props":345,"children":346},{},[347],{"type":47,"value":348},"OSD",{"type":41,"tag":212,"props":350,"children":351},{},[352],{"type":47,"value":353},"Draws bounding boxes, labels, overlays",{"type":41,"tag":212,"props":355,"children":356},{},[357],{"type":41,"tag":146,"props":358,"children":360},{"className":359},[],[361],{"type":47,"value":362},"nvosdbin",{"type":41,"tag":212,"props":364,"children":365},{},[366],{"type":47,"value":367},"Yes (for visualization)",{"type":41,"tag":180,"props":369,"children":370},{},[371,376,381,404],{"type":41,"tag":212,"props":372,"children":373},{},[374],{"type":47,"value":375},"Renderer",{"type":41,"tag":212,"props":377,"children":378},{},[379],{"type":47,"value":380},"Display or save output",{"type":41,"tag":212,"props":382,"children":383},{},[384,390,391,397,398],{"type":41,"tag":146,"props":385,"children":387},{"className":386},[],[388],{"type":47,"value":389},"nveglglessink",{"type":47,"value":240},{"type":41,"tag":146,"props":392,"children":394},{"className":393},[],[395],{"type":47,"value":396},"nv3dsink",{"type":47,"value":240},{"type":41,"tag":146,"props":399,"children":401},{"className":400},[],[402],{"type":47,"value":403},"filesink",{"type":41,"tag":212,"props":405,"children":406},{},[407],{"type":47,"value":251},{"type":41,"tag":71,"props":409,"children":411},{"id":410},"memory-model",[412],{"type":47,"value":413},"Memory Model",{"type":41,"tag":50,"props":415,"children":416},{},[417,419,425,427,433],{"type":47,"value":418},"DeepStream uses NVIDIA Video Memory Manager (NVMM) for zero-copy GPU buffer transfers. Caps strings use ",{"type":41,"tag":146,"props":420,"children":422},{"className":421},[],[423],{"type":47,"value":424},"memory:NVMM",{"type":47,"value":426}," to indicate GPU memory (e.g., ",{"type":41,"tag":146,"props":428,"children":430},{"className":429},[],[431],{"type":47,"value":432},"video\u002Fx-raw(memory:NVMM), format=NV12",{"type":47,"value":434},").",{"type":41,"tag":64,"props":436,"children":438},{"id":437},"critical-rules",[439],{"type":47,"value":440},"Critical Rules",{"type":41,"tag":442,"props":443,"children":444},"ol",{},[445,539,638,684,730,763,787,837,910,928,999,1044,1135],{"type":41,"tag":82,"props":446,"children":447},{},[448,453,455],{"type":41,"tag":56,"props":449,"children":450},{},[451],{"type":47,"value":452},"Only Add Requested Components",{"type":47,"value":454},": Do NOT add pipeline elements the user did not ask for.",{"type":41,"tag":78,"props":456,"children":457},{},[458,475,485,502,527],{"type":41,"tag":82,"props":459,"children":460},{},[461,473],{"type":41,"tag":56,"props":462,"children":463},{},[464,466,471],{"type":47,"value":465},"Tracker (",{"type":41,"tag":146,"props":467,"children":469},{"className":468},[],[470],{"type":47,"value":332},{"type":47,"value":472},")",{"type":47,"value":474},": Only add when the user explicitly requests tracking or object IDs across frames",{"type":41,"tag":82,"props":476,"children":477},{},[478,483],{"type":41,"tag":56,"props":479,"children":480},{},[481],{"type":47,"value":482},"Secondary GIEs",{"type":47,"value":484},": Only add when the user requests classification or attribute extraction",{"type":41,"tag":82,"props":486,"children":487},{},[488,500],{"type":41,"tag":56,"props":489,"children":490},{},[491,493,499],{"type":47,"value":492},"Analytics (",{"type":41,"tag":146,"props":494,"children":496},{"className":495},[],[497],{"type":47,"value":498},"nvdsanalytics",{"type":47,"value":472},{"type":47,"value":501},": Only add when the user requests line crossing, ROI counting, etc.",{"type":41,"tag":82,"props":503,"children":504},{},[505,525],{"type":41,"tag":56,"props":506,"children":507},{},[508,510,516,518,524],{"type":47,"value":509},"Message broker (",{"type":41,"tag":146,"props":511,"children":513},{"className":512},[],[514],{"type":47,"value":515},"nvmsgbroker",{"type":47,"value":517},"\u002F",{"type":41,"tag":146,"props":519,"children":521},{"className":520},[],[522],{"type":47,"value":523},"nvmsgconv",{"type":47,"value":472},{"type":47,"value":526},": Only add when the user requests Kafka\u002Fcloud messaging",{"type":41,"tag":82,"props":528,"children":529},{},[530,532,537],{"type":47,"value":531},"When in doubt, build the ",{"type":41,"tag":56,"props":533,"children":534},{},[535],{"type":47,"value":536},"minimal working pipeline",{"type":47,"value":538}," and let the user ask for additions",{"type":41,"tag":82,"props":540,"children":541},{},[542,554,556],{"type":41,"tag":56,"props":543,"children":544},{},[545,547,552],{"type":47,"value":546},"Default to ",{"type":41,"tag":146,"props":548,"children":550},{"className":549},[],[551],{"type":47,"value":230},{"type":47,"value":553}," for Sources",{"type":47,"value":555},": When the user says \"camera\", \"stream\", \"video\", or provides a file path:",{"type":41,"tag":78,"props":557,"children":558},{},[559,579,599,627],{"type":41,"tag":82,"props":560,"children":561},{},[562,564,569,571,577],{"type":47,"value":563},"Always use ",{"type":41,"tag":146,"props":565,"children":567},{"className":566},[],[568],{"type":47,"value":230},{"type":47,"value":570}," -- it handles RTSP, HTTP, and local files (",{"type":41,"tag":146,"props":572,"children":574},{"className":573},[],[575],{"type":47,"value":576},"file:\u002F\u002F",{"type":47,"value":578},") transparently",{"type":41,"tag":82,"props":580,"children":581},{},[582,584,589,591,597],{"type":47,"value":583},"Only use ",{"type":41,"tag":146,"props":585,"children":587},{"className":586},[],[588],{"type":47,"value":246},{"type":47,"value":590}," + ",{"type":41,"tag":146,"props":592,"children":594},{"className":593},[],[595],{"type":47,"value":596},"qtdemux",{"type":47,"value":598}," + parser when the user explicitly needs raw file source control",{"type":41,"tag":82,"props":600,"children":601},{},[602,604,610,612,617,619,625],{"type":47,"value":603},"For RTSP\u002Flive sources, also set ",{"type":41,"tag":146,"props":605,"children":607},{"className":606},[],[608],{"type":47,"value":609},"live-source=1",{"type":47,"value":611}," on ",{"type":41,"tag":146,"props":613,"children":615},{"className":614},[],[616],{"type":47,"value":273},{"type":47,"value":618}," and ",{"type":41,"tag":146,"props":620,"children":622},{"className":621},[],[623],{"type":47,"value":624},"sync=0",{"type":47,"value":626}," on the sink",{"type":41,"tag":82,"props":628,"children":629},{},[630,632],{"type":47,"value":631},"Convert local paths to URI: ",{"type":41,"tag":146,"props":633,"children":635},{"className":634},[],[636],{"type":47,"value":637},"\"file:\u002F\u002F\" + os.path.abspath(path)",{"type":41,"tag":82,"props":639,"children":640},{},[641,646,648,654,655,661,663],{"type":41,"tag":56,"props":642,"children":643},{},[644],{"type":47,"value":645},"Metadata Iteration",{"type":47,"value":647},": Use ",{"type":41,"tag":146,"props":649,"children":651},{"className":650},[],[652],{"type":47,"value":653},".frame_items",{"type":47,"value":618},{"type":41,"tag":146,"props":656,"children":658},{"className":657},[],[659],{"type":47,"value":660},".object_items",{"type":47,"value":662}," (returns iterators, NOT lists)",{"type":41,"tag":78,"props":664,"children":665},{},[666,679],{"type":41,"tag":82,"props":667,"children":668},{},[669,671,677],{"type":47,"value":670},"NEVER use ",{"type":41,"tag":146,"props":672,"children":674},{"className":673},[],[675],{"type":47,"value":676},"len()",{"type":47,"value":678}," on these - iterate to count",{"type":41,"tag":82,"props":680,"children":681},{},[682],{"type":47,"value":683},"Iterator can only be consumed once",{"type":41,"tag":82,"props":685,"children":686},{},[687,692,693,699,701],{"type":41,"tag":56,"props":688,"children":689},{},[690],{"type":47,"value":691},"Request Pad Syntax",{"type":47,"value":647},{"type":41,"tag":146,"props":694,"children":696},{"className":695},[],[697],{"type":47,"value":698},"\"sink_%u\"",{"type":47,"value":700}," template, NEVER literal pad names",{"type":41,"tag":139,"props":702,"children":706},{"className":703,"code":704,"language":705,"meta":148,"style":148},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pipeline.link((\"decoder\", \"mux\"), (\"\", \"sink_%u\"))  # CORRECT\n# pipeline.link((\"decoder\", \"mux\"), (\"\", \"sink_0\"))  # WRONG - will fail\n","python",[707],{"type":41,"tag":146,"props":708,"children":709},{"__ignoreMap":148},[710,721],{"type":41,"tag":711,"props":712,"children":715},"span",{"class":713,"line":714},"line",1,[716],{"type":41,"tag":711,"props":717,"children":718},{},[719],{"type":47,"value":720},"pipeline.link((\"decoder\", \"mux\"), (\"\", \"sink_%u\"))  # CORRECT\n",{"type":41,"tag":711,"props":722,"children":724},{"class":713,"line":723},2,[725],{"type":41,"tag":711,"props":726,"children":727},{},[728],{"type":47,"value":729},"# pipeline.link((\"decoder\", \"mux\"), (\"\", \"sink_0\"))  # WRONG - will fail\n",{"type":41,"tag":82,"props":731,"children":732},{},[733,738,740],{"type":41,"tag":56,"props":734,"children":735},{},[736],{"type":47,"value":737},"Platform Detection for Sinks",{"type":47,"value":739},":",{"type":41,"tag":139,"props":741,"children":743},{"className":703,"code":742,"language":705,"meta":148,"style":148},"import platform\nsink_type = \"nv3dsink\" if platform.processor() == \"aarch64\" else \"nveglglessink\"\n",[744],{"type":41,"tag":146,"props":745,"children":746},{"__ignoreMap":148},[747,755],{"type":41,"tag":711,"props":748,"children":749},{"class":713,"line":714},[750],{"type":41,"tag":711,"props":751,"children":752},{},[753],{"type":47,"value":754},"import platform\n",{"type":41,"tag":711,"props":756,"children":757},{"class":713,"line":723},[758],{"type":41,"tag":711,"props":759,"children":760},{},[761],{"type":47,"value":762},"sink_type = \"nv3dsink\" if platform.processor() == \"aarch64\" else \"nveglglessink\"\n",{"type":41,"tag":82,"props":764,"children":765},{},[766,771,773],{"type":41,"tag":56,"props":767,"children":768},{},[769],{"type":47,"value":770},"Buffer Cloning",{"type":47,"value":772},": Always clone buffers for async processing",{"type":41,"tag":139,"props":774,"children":776},{"className":703,"code":775,"language":705,"meta":148,"style":148},"tensor = buffer.extract(0).clone()  # CRITICAL\n",[777],{"type":41,"tag":146,"props":778,"children":779},{"__ignoreMap":148},[780],{"type":41,"tag":711,"props":781,"children":782},{"class":713,"line":714},[783],{"type":41,"tag":711,"props":784,"children":785},{},[786],{"type":47,"value":775},{"type":41,"tag":82,"props":788,"children":789},{},[790,795,796],{"type":41,"tag":56,"props":791,"children":792},{},[793],{"type":47,"value":794},"Queue Types",{"type":47,"value":739},{"type":41,"tag":78,"props":797,"children":798},{},[799,816,832],{"type":41,"tag":82,"props":800,"children":801},{},[802,808,810],{"type":41,"tag":146,"props":803,"children":805},{"className":804},[],[806],{"type":47,"value":807},"queue.Queue",{"type":47,"value":809}," → Use with ",{"type":41,"tag":146,"props":811,"children":813},{"className":812},[],[814],{"type":47,"value":815},"threading.Thread",{"type":41,"tag":82,"props":817,"children":818},{},[819,825,826],{"type":41,"tag":146,"props":820,"children":822},{"className":821},[],[823],{"type":47,"value":824},"multiprocessing.Queue",{"type":47,"value":809},{"type":41,"tag":146,"props":827,"children":829},{"className":828},[],[830],{"type":47,"value":831},"multiprocessing.Process",{"type":41,"tag":82,"props":833,"children":834},{},[835],{"type":47,"value":836},"Using wrong type causes silent data loss!",{"type":41,"tag":82,"props":838,"children":839},{},[840,845,846],{"type":41,"tag":56,"props":841,"children":842},{},[843],{"type":47,"value":844},"nvinfer Config Format",{"type":47,"value":739},{"type":41,"tag":78,"props":847,"children":848},{},[849,878,899],{"type":41,"tag":82,"props":850,"children":851},{},[852,854,860,862,868,870,876],{"type":47,"value":853},"YAML: Use ",{"type":41,"tag":146,"props":855,"children":857},{"className":856},[],[858],{"type":47,"value":859},"property:",{"type":47,"value":861}," section (NOT ",{"type":41,"tag":146,"props":863,"children":865},{"className":864},[],[866],{"type":47,"value":867},"model:",{"type":47,"value":869},"), ",{"type":41,"tag":146,"props":871,"children":873},{"className":872},[],[874],{"type":47,"value":875},"key: value",{"type":47,"value":877}," with space after colon",{"type":41,"tag":82,"props":879,"children":880},{},[881,883,889,891,897],{"type":47,"value":882},"INI: Use ",{"type":41,"tag":146,"props":884,"children":886},{"className":885},[],[887],{"type":47,"value":888},"[property]",{"type":47,"value":890}," section, ",{"type":41,"tag":146,"props":892,"children":894},{"className":893},[],[895],{"type":47,"value":896},"key=value",{"type":47,"value":898}," with equals sign",{"type":41,"tag":82,"props":900,"children":901},{},[902,904],{"type":47,"value":903},"Section MUST be named ",{"type":41,"tag":146,"props":905,"children":907},{"className":906},[],[908],{"type":47,"value":909},"property",{"type":41,"tag":82,"props":911,"children":912},{},[913,918,920,926],{"type":41,"tag":56,"props":914,"children":915},{},[916],{"type":47,"value":917},"nvmsgbroker is a SINK",{"type":47,"value":919},": Cannot have downstream elements - use ",{"type":41,"tag":146,"props":921,"children":923},{"className":922},[],[924],{"type":47,"value":925},"tee",{"type":47,"value":927}," to split pipeline",{"type":41,"tag":82,"props":929,"children":930},{},[931,936,938,988,992,997],{"type":41,"tag":56,"props":932,"children":933},{},[934],{"type":47,"value":935},"ALL Sinks Need async=0 for Tee Splits or Dynamic Sources",{"type":47,"value":937},": CRITICAL for state transitions",{"type":41,"tag":139,"props":939,"children":941},{"className":703,"code":940,"language":705,"meta":148,"style":148},"# When using tee splits OR dynamic sources, ALL sinks MUST have async=0\npipeline.add(\"nveglglessink\", \"sink\", {\n    \"sync\": 0, \"qos\": 0,\n    \"async\": 0  # CRITICAL - prevents state transition deadlock\n})\n",[942],{"type":41,"tag":146,"props":943,"children":944},{"__ignoreMap":148},[945,953,961,970,979],{"type":41,"tag":711,"props":946,"children":947},{"class":713,"line":714},[948],{"type":41,"tag":711,"props":949,"children":950},{},[951],{"type":47,"value":952},"# When using tee splits OR dynamic sources, ALL sinks MUST have async=0\n",{"type":41,"tag":711,"props":954,"children":955},{"class":713,"line":723},[956],{"type":41,"tag":711,"props":957,"children":958},{},[959],{"type":47,"value":960},"pipeline.add(\"nveglglessink\", \"sink\", {\n",{"type":41,"tag":711,"props":962,"children":964},{"class":713,"line":963},3,[965],{"type":41,"tag":711,"props":966,"children":967},{},[968],{"type":47,"value":969},"    \"sync\": 0, \"qos\": 0,\n",{"type":41,"tag":711,"props":971,"children":973},{"class":713,"line":972},4,[974],{"type":41,"tag":711,"props":975,"children":976},{},[977],{"type":47,"value":978},"    \"async\": 0  # CRITICAL - prevents state transition deadlock\n",{"type":41,"tag":711,"props":980,"children":982},{"class":713,"line":981},5,[983],{"type":41,"tag":711,"props":984,"children":985},{},[986],{"type":47,"value":987},"})\n",{"type":41,"tag":989,"props":990,"children":991},"br",{},[],{"type":41,"tag":56,"props":993,"children":994},{},[995],{"type":47,"value":996},"Symptom if missing",{"type":47,"value":998},": Pipeline stays in PAUSED state, no video displays.",{"type":41,"tag":82,"props":1000,"children":1001},{},[1002,1007,1009,1015,1017,1022,1023,1028,1029,1034,1036,1042],{"type":41,"tag":56,"props":1003,"children":1004},{},[1005],{"type":47,"value":1006},"Built-in Probe Attachment",{"type":47,"value":1008},": ",{"type":41,"tag":146,"props":1010,"children":1012},{"className":1011},[],[1013],{"type":47,"value":1014},"measure_fps_probe",{"type":47,"value":1016}," can only be attached to processing elements (e.g., ",{"type":41,"tag":146,"props":1018,"children":1020},{"className":1019},[],[1021],{"type":47,"value":299},{"type":47,"value":240},{"type":41,"tag":146,"props":1024,"children":1026},{"className":1025},[],[1027],{"type":47,"value":362},{"type":47,"value":869},{"type":41,"tag":56,"props":1030,"children":1031},{},[1032],{"type":47,"value":1033},"NOT",{"type":47,"value":1035}," to sink elements. Attaching to a sink raises ",{"type":41,"tag":146,"props":1037,"children":1039},{"className":1038},[],[1040],{"type":47,"value":1041},"RuntimeError: Probe failure",{"type":47,"value":1043},".",{"type":41,"tag":82,"props":1045,"children":1046},{},[1047,1058,1060,1066,1068,1073,1075,1081,1083,1089,1091,1097,1099],{"type":41,"tag":56,"props":1048,"children":1049},{},[1050,1052],{"type":47,"value":1051},"Dynamic ONNX Models Require ",{"type":41,"tag":146,"props":1053,"children":1055},{"className":1054},[],[1056],{"type":47,"value":1057},"infer-dims",{"type":47,"value":1059},": When the ONNX model has dynamic input shapes (e.g., exported with ",{"type":41,"tag":146,"props":1061,"children":1063},{"className":1062},[],[1064],{"type":47,"value":1065},"dynamic=True",{"type":47,"value":1067}," in Ultralytics YOLO, or with dynamic batch\u002Fheight\u002Fwidth axes), you ",{"type":41,"tag":56,"props":1069,"children":1070},{},[1071],{"type":47,"value":1072},"MUST",{"type":47,"value":1074}," add ",{"type":41,"tag":146,"props":1076,"children":1078},{"className":1077},[],[1079],{"type":47,"value":1080},"infer-dims=C;H;W",{"type":47,"value":1082}," to the nvinfer config. Without it, TensorRT sees ",{"type":41,"tag":146,"props":1084,"children":1086},{"className":1085},[],[1087],{"type":47,"value":1088},"-1",{"type":47,"value":1090}," for dynamic dimensions and fails with ",{"type":41,"tag":146,"props":1092,"children":1094},{"className":1093},[],[1095],{"type":47,"value":1096},"setDimensions: Error Code 3",{"type":47,"value":1098},". Common values:",{"type":41,"tag":78,"props":1100,"children":1101},{},[1102,1113,1124],{"type":41,"tag":82,"props":1103,"children":1104},{},[1105,1107],{"type":47,"value":1106},"YOLO models (640 input): ",{"type":41,"tag":146,"props":1108,"children":1110},{"className":1109},[],[1111],{"type":47,"value":1112},"infer-dims=3;640;640",{"type":41,"tag":82,"props":1114,"children":1115},{},[1116,1118],{"type":47,"value":1117},"Models with 416 input: ",{"type":41,"tag":146,"props":1119,"children":1121},{"className":1120},[],[1122],{"type":47,"value":1123},"infer-dims=3;416;416",{"type":41,"tag":82,"props":1125,"children":1126},{},[1127,1129],{"type":47,"value":1128},"Models with 1280 input: ",{"type":41,"tag":146,"props":1130,"children":1132},{"className":1131},[],[1133],{"type":47,"value":1134},"infer-dims=3;1280;1280",{"type":41,"tag":82,"props":1136,"children":1137},{},[1138,1143,1145,1151,1153,1158],{"type":41,"tag":56,"props":1139,"children":1140},{},[1141],{"type":47,"value":1142},"Ultralytics YOLO Output Format Depends on Model Generation",{"type":47,"value":1144}," — newer models (v10+\u002Fv26+) output post-NMS results; older models (v8\u002Fv11) output raw pre-NMS tensors. The custom parser and ",{"type":41,"tag":146,"props":1146,"children":1148},{"className":1147},[],[1149],{"type":47,"value":1150},"cluster-mode",{"type":47,"value":1152}," ",{"type":41,"tag":56,"props":1154,"children":1155},{},[1156],{"type":47,"value":1157},"must",{"type":47,"value":1159}," match the actual output:",{"type":41,"tag":172,"props":1161,"children":1162},{},[1163,1192],{"type":41,"tag":176,"props":1164,"children":1165},{},[1166],{"type":41,"tag":180,"props":1167,"children":1168},{},[1169,1174,1179,1184],{"type":41,"tag":184,"props":1170,"children":1171},{},[1172],{"type":47,"value":1173},"Model generation",{"type":41,"tag":184,"props":1175,"children":1176},{},[1177],{"type":47,"value":1178},"Output tensor shape",{"type":41,"tag":184,"props":1180,"children":1181},{},[1182],{"type":47,"value":1183},"Fields",{"type":41,"tag":184,"props":1185,"children":1186},{},[1187],{"type":41,"tag":146,"props":1188,"children":1190},{"className":1189},[],[1191],{"type":47,"value":1150},{"type":41,"tag":205,"props":1193,"children":1194},{},[1195,1234],{"type":41,"tag":180,"props":1196,"children":1197},{},[1198,1203,1212,1223],{"type":41,"tag":212,"props":1199,"children":1200},{},[1201],{"type":47,"value":1202},"v8 \u002F v11",{"type":41,"tag":212,"props":1204,"children":1205},{},[1206],{"type":41,"tag":146,"props":1207,"children":1209},{"className":1208},[],[1210],{"type":47,"value":1211},"[batch, 84, 8400]",{"type":41,"tag":212,"props":1213,"children":1214},{},[1215,1221],{"type":41,"tag":146,"props":1216,"children":1218},{"className":1217},[],[1219],{"type":47,"value":1220},"[features(4+80), anchors]",{"type":47,"value":1222}," — raw cx\u002Fcy\u002Fw\u002Fh + class scores, no NMS",{"type":41,"tag":212,"props":1224,"children":1225},{},[1226,1232],{"type":41,"tag":146,"props":1227,"children":1229},{"className":1228},[],[1230],{"type":47,"value":1231},"2",{"type":47,"value":1233}," (NMS)",{"type":41,"tag":180,"props":1235,"children":1236},{},[1237,1242,1251,1262],{"type":41,"tag":212,"props":1238,"children":1239},{},[1240],{"type":47,"value":1241},"v10 \u002F v26+",{"type":41,"tag":212,"props":1243,"children":1244},{},[1245],{"type":41,"tag":146,"props":1246,"children":1248},{"className":1247},[],[1249],{"type":47,"value":1250},"[batch, 300, 6]",{"type":41,"tag":212,"props":1252,"children":1253},{},[1254,1260],{"type":41,"tag":146,"props":1255,"children":1257},{"className":1256},[],[1258],{"type":47,"value":1259},"[max_det, (x1,y1,x2,y2,conf,cls)]",{"type":47,"value":1261}," — already post-NMS, pixel coords",{"type":41,"tag":212,"props":1263,"children":1264},{},[1265,1271],{"type":41,"tag":146,"props":1266,"children":1268},{"className":1267},[],[1269],{"type":47,"value":1270},"4",{"type":47,"value":1272}," (none)",{"type":41,"tag":50,"props":1274,"children":1275},{},[1276,1281,1283,1289,1290,1296],{"type":41,"tag":56,"props":1277,"children":1278},{},[1279],{"type":47,"value":1280},"How to identify at runtime",{"type":47,"value":1282},": log ",{"type":41,"tag":146,"props":1284,"children":1286},{"className":1285},[],[1287],{"type":47,"value":1288},"inferDims.d[0]",{"type":47,"value":618},{"type":41,"tag":146,"props":1291,"children":1293},{"className":1292},[],[1294],{"type":47,"value":1295},"inferDims.d[1]",{"type":47,"value":1297}," inside the custom parser.",{"type":41,"tag":78,"props":1299,"children":1300},{},[1301,1312],{"type":41,"tag":82,"props":1302,"children":1303},{},[1304,1310],{"type":41,"tag":146,"props":1305,"children":1307},{"className":1306},[],[1308],{"type":47,"value":1309},"d={84, 8400}",{"type":47,"value":1311}," → pre-NMS (v8\u002Fv11 style)",{"type":41,"tag":82,"props":1313,"children":1314},{},[1315,1321],{"type":41,"tag":146,"props":1316,"children":1318},{"className":1317},[],[1319],{"type":47,"value":1320},"d={300, 6}",{"type":47,"value":1322}," → post-NMS (v10\u002Fv26+ style)",{"type":41,"tag":50,"props":1324,"children":1325},{},[1326,1331,1333,1339,1341,1347,1349,1355,1357,1363,1365,1371,1373,1379,1381,1387,1389,1395],{"type":41,"tag":56,"props":1327,"children":1328},{},[1329],{"type":47,"value":1330},"Symptom of mismatch",{"type":47,"value":1332},": If ",{"type":41,"tag":146,"props":1334,"children":1336},{"className":1335},[],[1337],{"type":47,"value":1338},"cluster-mode: 2",{"type":47,"value":1340}," is used with a post-NMS ",{"type":41,"tag":146,"props":1342,"children":1344},{"className":1343},[],[1345],{"type":47,"value":1346},"[N, 6]",{"type":47,"value":1348}," output, bounding boxes appear shifted by 45° or 135° from the actual objects (DeepStream's NMS incorrectly re-processes already-final coordinates).\nIf you see tilted or rotated boxes, also check the OBB \u002F ",{"type":41,"tag":146,"props":1350,"children":1352},{"className":1351},[],[1353],{"type":47,"value":1354},"rotation_angle",{"type":47,"value":1356}," note in ",{"type":41,"tag":146,"props":1358,"children":1360},{"className":1359},[],[1361],{"type":47,"value":1362},"references\u002Fnvinfer_config.md",{"type":47,"value":1364},": for non-OBB models, value-initialize ",{"type":41,"tag":146,"props":1366,"children":1368},{"className":1367},[],[1369],{"type":47,"value":1370},"NvDsInferObjectDetectionInfo",{"type":47,"value":1372}," with ",{"type":41,"tag":146,"props":1374,"children":1376},{"className":1375},[],[1377],{"type":47,"value":1378},"obj{}",{"type":47,"value":1380}," and keep ",{"type":41,"tag":146,"props":1382,"children":1384},{"className":1383},[],[1385],{"type":47,"value":1386},"rotation_angle = 0",{"type":47,"value":1388},"; plain ",{"type":41,"tag":146,"props":1390,"children":1392},{"className":1391},[],[1393],{"type":47,"value":1394},"NvDsInferObjectDetectionInfo obj;",{"type":47,"value":1396}," leaves fields uninitialized.",{"type":41,"tag":442,"props":1398,"children":1400},{"start":1399},14,[1401],{"type":41,"tag":82,"props":1402,"children":1403},{},[1404,1409,1410,1416,1418,1437,1439,1548,1552,1553,1559],{"type":41,"tag":56,"props":1405,"children":1406},{},[1407],{"type":47,"value":1408},"Virtual Environment Must Include pyservicemaker",{"type":47,"value":1008},{"type":41,"tag":146,"props":1411,"children":1413},{"className":1412},[],[1414],{"type":47,"value":1415},"pyservicemaker",{"type":47,"value":1417}," is installed system-wide but is NOT accessible from a standard Python virtual environment. When a task requires a venv (e.g., for model download\u002Fconversion pip dependencies), ",{"type":41,"tag":56,"props":1419,"children":1420},{},[1421,1423,1428,1429,1435],{"type":47,"value":1422},"always install ",{"type":41,"tag":146,"props":1424,"children":1426},{"className":1425},[],[1427],{"type":47,"value":1415},{"type":47,"value":618},{"type":41,"tag":146,"props":1430,"children":1432},{"className":1431},[],[1433],{"type":47,"value":1434},"pyyaml",{"type":47,"value":1436}," inside the venv",{"type":47,"value":1438},". The venv setup in generated code and README must always include:\n",{"type":41,"tag":139,"props":1440,"children":1444},{"className":1441,"code":1442,"language":1443,"meta":148,"style":148},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","python3 -m venv venv\nsource venv\u002Fbin\u002Factivate\npip install \u002Fopt\u002Fnvidia\u002Fdeepstream\u002Fdeepstream\u002Fservice-maker\u002Fpython\u002Fpyservicemaker*.whl pyyaml\npip install -r requirements.txt  # other dependencies\n","bash",[1445],{"type":41,"tag":146,"props":1446,"children":1447},{"__ignoreMap":148},[1448,1473,1487,1521],{"type":41,"tag":711,"props":1449,"children":1450},{"class":713,"line":714},[1451,1457,1463,1468],{"type":41,"tag":711,"props":1452,"children":1454},{"style":1453},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[1455],{"type":47,"value":1456},"python3",{"type":41,"tag":711,"props":1458,"children":1460},{"style":1459},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[1461],{"type":47,"value":1462}," -m",{"type":41,"tag":711,"props":1464,"children":1465},{"style":1459},[1466],{"type":47,"value":1467}," venv",{"type":41,"tag":711,"props":1469,"children":1470},{"style":1459},[1471],{"type":47,"value":1472}," venv\n",{"type":41,"tag":711,"props":1474,"children":1475},{"class":713,"line":723},[1476,1482],{"type":41,"tag":711,"props":1477,"children":1479},{"style":1478},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[1480],{"type":47,"value":1481},"source",{"type":41,"tag":711,"props":1483,"children":1484},{"style":1459},[1485],{"type":47,"value":1486}," venv\u002Fbin\u002Factivate\n",{"type":41,"tag":711,"props":1488,"children":1489},{"class":713,"line":963},[1490,1495,1500,1505,1511,1516],{"type":41,"tag":711,"props":1491,"children":1492},{"style":1453},[1493],{"type":47,"value":1494},"pip",{"type":41,"tag":711,"props":1496,"children":1497},{"style":1459},[1498],{"type":47,"value":1499}," install",{"type":41,"tag":711,"props":1501,"children":1502},{"style":1459},[1503],{"type":47,"value":1504}," \u002Fopt\u002Fnvidia\u002Fdeepstream\u002Fdeepstream\u002Fservice-maker\u002Fpython\u002Fpyservicemaker",{"type":41,"tag":711,"props":1506,"children":1508},{"style":1507},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[1509],{"type":47,"value":1510},"*",{"type":41,"tag":711,"props":1512,"children":1513},{"style":1459},[1514],{"type":47,"value":1515},".whl",{"type":41,"tag":711,"props":1517,"children":1518},{"style":1459},[1519],{"type":47,"value":1520}," pyyaml\n",{"type":41,"tag":711,"props":1522,"children":1523},{"class":713,"line":972},[1524,1528,1532,1537,1542],{"type":41,"tag":711,"props":1525,"children":1526},{"style":1453},[1527],{"type":47,"value":1494},{"type":41,"tag":711,"props":1529,"children":1530},{"style":1459},[1531],{"type":47,"value":1499},{"type":41,"tag":711,"props":1533,"children":1534},{"style":1459},[1535],{"type":47,"value":1536}," -r",{"type":41,"tag":711,"props":1538,"children":1539},{"style":1459},[1540],{"type":47,"value":1541}," requirements.txt",{"type":41,"tag":711,"props":1543,"children":1545},{"style":1544},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[1546],{"type":47,"value":1547},"  # other dependencies\n",{"type":41,"tag":56,"props":1549,"children":1550},{},[1551],{"type":47,"value":996},{"type":47,"value":1008},{"type":41,"tag":146,"props":1554,"children":1556},{"className":1555},[],[1557],{"type":47,"value":1558},"ModuleNotFoundError: No module named 'pyservicemaker'",{"type":47,"value":1560}," when running the app inside the venv.",{"type":41,"tag":64,"props":1562,"children":1564},{"id":1563},"key-paths",[1565],{"type":47,"value":1566},"Key Paths",{"type":41,"tag":78,"props":1568,"children":1569},{},[1570,1581,1592,1603,1614],{"type":41,"tag":82,"props":1571,"children":1572},{},[1573,1575],{"type":47,"value":1574},"Models: ",{"type":41,"tag":146,"props":1576,"children":1578},{"className":1577},[],[1579],{"type":47,"value":1580},"\u002Fopt\u002Fnvidia\u002Fdeepstream\u002Fdeepstream\u002Fsamples\u002Fmodels\u002F",{"type":41,"tag":82,"props":1582,"children":1583},{},[1584,1586],{"type":47,"value":1585},"Primary Detector: ",{"type":41,"tag":146,"props":1587,"children":1589},{"className":1588},[],[1590],{"type":47,"value":1591},"\u002Fopt\u002Fnvidia\u002Fdeepstream\u002Fdeepstream\u002Fsamples\u002Fmodels\u002FPrimary_Detector\u002Fresnet18_trafficcamnet_pruned.onnx",{"type":41,"tag":82,"props":1593,"children":1594},{},[1595,1597],{"type":47,"value":1596},"Tracker lib: ",{"type":41,"tag":146,"props":1598,"children":1600},{"className":1599},[],[1601],{"type":47,"value":1602},"\u002Fopt\u002Fnvidia\u002Fdeepstream\u002Fdeepstream\u002Flib\u002Flibnvds_nvmultiobjecttracker.so",{"type":41,"tag":82,"props":1604,"children":1605},{},[1606,1608],{"type":47,"value":1607},"Kafka lib: ",{"type":41,"tag":146,"props":1609,"children":1611},{"className":1610},[],[1612],{"type":47,"value":1613},"\u002Fopt\u002Fnvidia\u002Fdeepstream\u002Fdeepstream\u002Flib\u002Flibnvds_kafka_proto.so",{"type":41,"tag":82,"props":1615,"children":1616},{},[1617,1619],{"type":47,"value":1618},"Sample configs: ",{"type":41,"tag":146,"props":1620,"children":1622},{"className":1621},[],[1623],{"type":47,"value":1624},"\u002Fopt\u002Fnvidia\u002Fdeepstream\u002Fdeepstream\u002Fsamples\u002Fconfigs\u002Fdeepstream-app\u002F",{"type":41,"tag":64,"props":1626,"children":1628},{"id":1627},"reference-documents",[1629],{"type":47,"value":1630},"Reference Documents",{"type":41,"tag":50,"props":1632,"children":1633},{},[1634,1639],{"type":41,"tag":56,"props":1635,"children":1636},{},[1637],{"type":47,"value":1638},"IMPORTANT",{"type":47,"value":1640},": Always read these documents for complete details. Do NOT generate code from memory.",{"type":41,"tag":172,"props":1642,"children":1643},{},[1644,1660],{"type":41,"tag":176,"props":1645,"children":1646},{},[1647],{"type":41,"tag":180,"props":1648,"children":1649},{},[1650,1655],{"type":41,"tag":184,"props":1651,"children":1652},{},[1653],{"type":47,"value":1654},"Document",{"type":41,"tag":184,"props":1656,"children":1657},{},[1658],{"type":47,"value":1659},"Use When",{"type":41,"tag":205,"props":1661,"children":1662},{},[1663,1680,1696,1712,1728,1744,1760,1776,1792,1808,1823,1839,1855,1871,1887,1903],{"type":41,"tag":180,"props":1664,"children":1665},{},[1666,1675],{"type":41,"tag":212,"props":1667,"children":1668},{},[1669],{"type":41,"tag":1670,"props":1671,"children":1673},"a",{"href":1672},"references\u002Fgstreamer_plugins.md",[1674],{"type":47,"value":1672},{"type":41,"tag":212,"props":1676,"children":1677},{},[1678],{"type":47,"value":1679},"Looking up plugin properties, ALL properties listed",{"type":41,"tag":180,"props":1681,"children":1682},{},[1683,1691],{"type":41,"tag":212,"props":1684,"children":1685},{},[1686],{"type":41,"tag":1670,"props":1687,"children":1689},{"href":1688},"references\u002Fservice_maker_api.md",[1690],{"type":47,"value":1688},{"type":41,"tag":212,"props":1692,"children":1693},{},[1694],{"type":47,"value":1695},"Using Pipeline\u002FFlow API, metadata access, probes, EventMessageUserMetadata",{"type":41,"tag":180,"props":1697,"children":1698},{},[1699,1707],{"type":41,"tag":212,"props":1700,"children":1701},{},[1702],{"type":41,"tag":1670,"props":1703,"children":1705},{"href":1704},"references\u002Fuse_cases_pipelines.md",[1706],{"type":47,"value":1704},{"type":41,"tag":212,"props":1708,"children":1709},{},[1710],{"type":47,"value":1711},"Building pipelines: simple playback, multi-inference, cascaded GIE",{"type":41,"tag":180,"props":1713,"children":1714},{},[1715,1723],{"type":41,"tag":212,"props":1716,"children":1717},{},[1718],{"type":41,"tag":1670,"props":1719,"children":1721},{"href":1720},"references\u002Fstreaming_sources.md",[1722],{"type":47,"value":1720},{"type":41,"tag":212,"props":1724,"children":1725},{},[1726],{"type":47,"value":1727},"Ingesting local files, HTTP MP4, HLS, MPEG-DASH, or RTSP sources with nvurisrcbin",{"type":41,"tag":180,"props":1729,"children":1730},{},[1731,1739],{"type":41,"tag":212,"props":1732,"children":1733},{},[1734],{"type":41,"tag":1670,"props":1735,"children":1737},{"href":1736},"references\u002Fkafka_messaging.md",[1738],{"type":47,"value":1736},{"type":41,"tag":212,"props":1740,"children":1741},{},[1742],{"type":47,"value":1743},"Kafka\u002Fmessage broker setup, nvmsgconv\u002Fnvmsgbroker config, msg2p-newapi",{"type":41,"tag":180,"props":1745,"children":1746},{},[1747,1755],{"type":41,"tag":212,"props":1748,"children":1749},{},[1750],{"type":41,"tag":1670,"props":1751,"children":1753},{"href":1752},"references\u002Fbest_practices.md",[1754],{"type":47,"value":1752},{"type":41,"tag":212,"props":1756,"children":1757},{},[1758],{"type":47,"value":1759},"Design patterns, common pitfalls, anti-patterns",{"type":41,"tag":180,"props":1761,"children":1762},{},[1763,1771],{"type":41,"tag":212,"props":1764,"children":1765},{},[1766],{"type":41,"tag":1670,"props":1767,"children":1769},{"href":1768},"references\u002Fbuffer_apis.md",[1770],{"type":47,"value":1768},{"type":41,"tag":212,"props":1772,"children":1773},{},[1774],{"type":47,"value":1775},"BufferProvider\u002FFeeder (injection), BufferRetriever\u002FReceiver (extraction)",{"type":41,"tag":180,"props":1777,"children":1778},{},[1779,1787],{"type":41,"tag":212,"props":1780,"children":1781},{},[1782],{"type":41,"tag":1670,"props":1783,"children":1785},{"href":1784},"references\u002Fmedia_extractor_advanced.md",[1786],{"type":47,"value":1784},{"type":41,"tag":212,"props":1788,"children":1789},{},[1790],{"type":47,"value":1791},"MediaExtractor, MediaChunk, FrameSampler",{"type":41,"tag":180,"props":1793,"children":1794},{},[1795,1803],{"type":41,"tag":212,"props":1796,"children":1797},{},[1798],{"type":41,"tag":1670,"props":1799,"children":1801},{"href":1800},"references\u002Futilities_config.md",[1802],{"type":47,"value":1800},{"type":41,"tag":212,"props":1804,"children":1805},{},[1806],{"type":47,"value":1807},"PerfMonitor, EngineFileMonitor, SourceConfig, SensorInfo, SmartRecordConfig",{"type":41,"tag":180,"props":1809,"children":1810},{},[1811,1818],{"type":41,"tag":212,"props":1812,"children":1813},{},[1814],{"type":41,"tag":1670,"props":1815,"children":1816},{"href":1362},[1817],{"type":47,"value":1362},{"type":41,"tag":212,"props":1819,"children":1820},{},[1821],{"type":47,"value":1822},"nvinfer config file format, ALL parameters",{"type":41,"tag":180,"props":1824,"children":1825},{},[1826,1834],{"type":41,"tag":212,"props":1827,"children":1828},{},[1829],{"type":41,"tag":1670,"props":1830,"children":1832},{"href":1831},"references\u002Ftracker_config.md",[1833],{"type":47,"value":1831},{"type":41,"tag":212,"props":1835,"children":1836},{},[1837],{"type":47,"value":1838},"nvtracker config, NvDCF\u002FIOU\u002FDeepSORT\u002FNvSORT",{"type":41,"tag":180,"props":1840,"children":1841},{},[1842,1850],{"type":41,"tag":212,"props":1843,"children":1844},{},[1845],{"type":41,"tag":1670,"props":1846,"children":1848},{"href":1847},"references\u002Ftroubleshooting.md",[1849],{"type":47,"value":1847},{"type":41,"tag":212,"props":1851,"children":1852},{},[1853],{"type":47,"value":1854},"Error messages and solutions",{"type":41,"tag":180,"props":1856,"children":1857},{},[1858,1866],{"type":41,"tag":212,"props":1859,"children":1860},{},[1861],{"type":41,"tag":1670,"props":1862,"children":1864},{"href":1863},"references\u002Frest_api_dynamic.md",[1865],{"type":47,"value":1863},{"type":41,"tag":212,"props":1867,"children":1868},{},[1869],{"type":47,"value":1870},"REST API, dynamic source add\u002Fremove, nvmultiurisrcbin",{"type":41,"tag":180,"props":1872,"children":1873},{},[1874,1882],{"type":41,"tag":212,"props":1875,"children":1876},{},[1877],{"type":41,"tag":1670,"props":1878,"children":1880},{"href":1879},"references\u002Fmetamux_config.md",[1881],{"type":47,"value":1879},{"type":41,"tag":212,"props":1883,"children":1884},{},[1885],{"type":47,"value":1886},"nvdsmetamux config, parallel multi-model inference, metadata merging, source ID filtering",{"type":41,"tag":180,"props":1888,"children":1889},{},[1890,1898],{"type":41,"tag":212,"props":1891,"children":1892},{},[1893],{"type":41,"tag":1670,"props":1894,"children":1896},{"href":1895},"references\u002Fdocker_containers.md",[1897],{"type":47,"value":1895},{"type":41,"tag":212,"props":1899,"children":1900},{},[1901],{"type":47,"value":1902},"Docker images, Dockerfile examples, pyservicemaker install, container run commands",{"type":41,"tag":180,"props":1904,"children":1905},{},[1906,1914],{"type":41,"tag":212,"props":1907,"children":1908},{},[1909],{"type":41,"tag":1670,"props":1910,"children":1912},{"href":1911},"references\u002Fnvds_msgapi_adapter.md",[1913],{"type":47,"value":1911},{"type":41,"tag":212,"props":1915,"children":1916},{},[1917],{"type":47,"value":1918},"Building custom protocol adapters: nvds_msgapi",{"type":41,"tag":64,"props":1920,"children":1922},{"id":1921},"quick-error-reference",[1923],{"type":47,"value":1924},"Quick Error Reference",{"type":41,"tag":172,"props":1926,"children":1927},{},[1928,1944],{"type":41,"tag":176,"props":1929,"children":1930},{},[1931],{"type":41,"tag":180,"props":1932,"children":1933},{},[1934,1939],{"type":41,"tag":184,"props":1935,"children":1936},{},[1937],{"type":47,"value":1938},"Error",{"type":41,"tag":184,"props":1940,"children":1941},{},[1942],{"type":47,"value":1943},"Solution",{"type":41,"tag":205,"props":1945,"children":1946},{},[1947,1969,1999,2023,2048,2082,2121,2148,2174,2187,2222,2254,2278],{"type":41,"tag":180,"props":1948,"children":1949},{},[1950,1959],{"type":41,"tag":212,"props":1951,"children":1952},{},[1953],{"type":41,"tag":146,"props":1954,"children":1956},{"className":1955},[],[1957],{"type":47,"value":1958},"iterator has no len()",{"type":41,"tag":212,"props":1960,"children":1961},{},[1962,1964],{"type":47,"value":1963},"Iterate to count, don't use ",{"type":41,"tag":146,"props":1965,"children":1967},{"className":1966},[],[1968],{"type":47,"value":676},{"type":41,"tag":180,"props":1970,"children":1971},{},[1972,1981],{"type":41,"tag":212,"props":1973,"children":1974},{},[1975],{"type":41,"tag":146,"props":1976,"children":1978},{"className":1977},[],[1979],{"type":47,"value":1980},"pad template not found",{"type":41,"tag":212,"props":1982,"children":1983},{},[1984,1986,1991,1993],{"type":47,"value":1985},"Use ",{"type":41,"tag":146,"props":1987,"children":1989},{"className":1988},[],[1990],{"type":47,"value":698},{"type":47,"value":1992}," not ",{"type":41,"tag":146,"props":1994,"children":1996},{"className":1995},[],[1997],{"type":47,"value":1998},"\"sink_0\"",{"type":41,"tag":180,"props":2000,"children":2001},{},[2002,2007],{"type":41,"tag":212,"props":2003,"children":2004},{},[2005],{"type":47,"value":2006},"Queue data loss",{"type":41,"tag":212,"props":2008,"children":2009},{},[2010,2011,2016,2017],{"type":47,"value":1985},{"type":41,"tag":146,"props":2012,"children":2014},{"className":2013},[],[2015],{"type":47,"value":824},{"type":47,"value":1372},{"type":41,"tag":146,"props":2018,"children":2020},{"className":2019},[],[2021],{"type":47,"value":2022},"Process",{"type":41,"tag":180,"props":2024,"children":2025},{},[2026,2031],{"type":41,"tag":212,"props":2027,"children":2028},{},[2029],{"type":47,"value":2030},"Config parse failed",{"type":41,"tag":212,"props":2032,"children":2033},{},[2034,2035,2040,2041,2046],{"type":47,"value":1985},{"type":41,"tag":146,"props":2036,"children":2038},{"className":2037},[],[2039],{"type":47,"value":859},{"type":47,"value":1992},{"type":41,"tag":146,"props":2042,"children":2044},{"className":2043},[],[2045],{"type":47,"value":867},{"type":47,"value":2047}," in YAML",{"type":41,"tag":180,"props":2049,"children":2050},{},[2051,2062],{"type":41,"tag":212,"props":2052,"children":2053},{},[2054,2060],{"type":41,"tag":146,"props":2055,"children":2057},{"className":2056},[],[2058],{"type":47,"value":2059},"is-classifier",{"type":47,"value":2061}," deprecation warning",{"type":41,"tag":212,"props":2063,"children":2064},{},[2065,2066,2072,2074,2080],{"type":47,"value":1985},{"type":41,"tag":146,"props":2067,"children":2069},{"className":2068},[],[2070],{"type":47,"value":2071},"network-type: 1",{"type":47,"value":2073}," instead of ",{"type":41,"tag":146,"props":2075,"children":2077},{"className":2076},[],[2078],{"type":47,"value":2079},"is-classifier: 1",{"type":47,"value":2081}," for classifiers; omit both for detectors",{"type":41,"tag":180,"props":2083,"children":2084},{},[2085,2096],{"type":41,"tag":212,"props":2086,"children":2087},{},[2088,2094],{"type":41,"tag":146,"props":2089,"children":2091},{"className":2090},[],[2092],{"type":47,"value":2093},"min-boxes",{"type":47,"value":2095}," unknown key warning",{"type":41,"tag":212,"props":2097,"children":2098},{},[2099,2100,2106,2108,2114,2116],{"type":47,"value":1985},{"type":41,"tag":146,"props":2101,"children":2103},{"className":2102},[],[2104],{"type":47,"value":2105},"minBoxes",{"type":47,"value":2107}," (camelCase) in ",{"type":41,"tag":146,"props":2109,"children":2111},{"className":2110},[],[2112],{"type":47,"value":2113},"class-attrs-*",{"type":47,"value":2115}," sections, not ",{"type":41,"tag":146,"props":2117,"children":2119},{"className":2118},[],[2120],{"type":47,"value":2093},{"type":41,"tag":180,"props":2122,"children":2123},{},[2124,2129],{"type":41,"tag":212,"props":2125,"children":2126},{},[2127],{"type":47,"value":2128},"Secondary GIE inactive",{"type":41,"tag":212,"props":2130,"children":2131},{},[2132,2134,2140,2142],{"type":47,"value":2133},"Set ",{"type":41,"tag":146,"props":2135,"children":2137},{"className":2136},[],[2138],{"type":47,"value":2139},"process-mode: 2",{"type":47,"value":2141},", check ",{"type":41,"tag":146,"props":2143,"children":2145},{"className":2144},[],[2146],{"type":47,"value":2147},"operate-on-gie-id",{"type":41,"tag":180,"props":2149,"children":2150},{},[2151,2156],{"type":41,"tag":212,"props":2152,"children":2153},{},[2154],{"type":47,"value":2155},"Tee\u002Fdynamic source stuck PAUSED",{"type":41,"tag":212,"props":2157,"children":2158},{},[2159,2160,2166,2167,2172],{"type":47,"value":2133},{"type":41,"tag":146,"props":2161,"children":2163},{"className":2162},[],[2164],{"type":47,"value":2165},"async: 0",{"type":47,"value":611},{"type":41,"tag":56,"props":2168,"children":2169},{},[2170],{"type":47,"value":2171},"ALL",{"type":47,"value":2173}," sink elements",{"type":41,"tag":180,"props":2175,"children":2176},{},[2177,2182],{"type":41,"tag":212,"props":2178,"children":2179},{},[2180],{"type":47,"value":2181},"RTSP no data\u002Freconnecting",{"type":41,"tag":212,"props":2183,"children":2184},{},[2185],{"type":47,"value":2186},"Test URL with ffplay, check credentials",{"type":41,"tag":180,"props":2188,"children":2189},{},[2190,2198],{"type":41,"tag":212,"props":2191,"children":2192},{},[2193],{"type":41,"tag":146,"props":2194,"children":2196},{"className":2195},[],[2197],{"type":47,"value":1041},{"type":41,"tag":212,"props":2199,"children":2200},{},[2201,2206,2208,2213,2215,2220],{"type":41,"tag":146,"props":2202,"children":2204},{"className":2203},[],[2205],{"type":47,"value":1014},{"type":47,"value":2207}," cannot attach to sink elements; use ",{"type":41,"tag":146,"props":2209,"children":2211},{"className":2210},[],[2212],{"type":47,"value":299},{"type":47,"value":2214}," or ",{"type":41,"tag":146,"props":2216,"children":2218},{"className":2217},[],[2219],{"type":47,"value":362},{"type":47,"value":2221}," instead",{"type":41,"tag":180,"props":2223,"children":2224},{},[2225,2236],{"type":41,"tag":212,"props":2226,"children":2227},{},[2228,2234],{"type":41,"tag":146,"props":2229,"children":2231},{"className":2230},[],[2232],{"type":47,"value":2233},"setDimensions",{"type":47,"value":2235}," negative dims \u002F engine build failed",{"type":41,"tag":212,"props":2237,"children":2238},{},[2239,2241,2246,2248,2253],{"type":47,"value":2240},"Add ",{"type":41,"tag":146,"props":2242,"children":2244},{"className":2243},[],[2245],{"type":47,"value":1080},{"type":47,"value":2247}," for dynamic ONNX models (e.g., ",{"type":41,"tag":146,"props":2249,"children":2251},{"className":2250},[],[2252],{"type":47,"value":1112},{"type":47,"value":472},{"type":41,"tag":180,"props":2255,"children":2256},{},[2257,2268],{"type":41,"tag":212,"props":2258,"children":2259},{},[2260,2266],{"type":41,"tag":146,"props":2261,"children":2263},{"className":2262},[],[2264],{"type":47,"value":2265},"No module named 'pyservicemaker'",{"type":47,"value":2267}," in venv",{"type":41,"tag":212,"props":2269,"children":2270},{},[2271,2277],{"type":41,"tag":146,"props":2272,"children":2274},{"className":2273},[],[2275],{"type":47,"value":2276},"pip install \u002Fopt\u002Fnvidia\u002Fdeepstream\u002Fdeepstream\u002Fservice-maker\u002Fpython\u002Fpyservicemaker*.whl pyyaml",{"type":47,"value":1436},{"type":41,"tag":180,"props":2279,"children":2280},{},[2281,2290],{"type":41,"tag":212,"props":2282,"children":2283},{},[2284],{"type":41,"tag":146,"props":2285,"children":2287},{"className":2286},[],[2288],{"type":47,"value":2289},"AttributeError: object has no attribute 'obj_label'",{"type":41,"tag":212,"props":2291,"children":2292},{},[2293,2294,2300,2301,2307],{"type":47,"value":1985},{"type":41,"tag":146,"props":2295,"children":2297},{"className":2296},[],[2298],{"type":47,"value":2299},"obj_meta.label",{"type":47,"value":1992},{"type":41,"tag":146,"props":2302,"children":2304},{"className":2303},[],[2305],{"type":47,"value":2306},"obj_meta.obj_label",{"type":47,"value":2308}," in pyservicemaker (C API name differs from Python binding)",{"type":41,"tag":2310,"props":2311,"children":2312},"style",{},[2313],{"type":47,"value":2314},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2316,"total":2418},[2317,2334,2348,2362,2374,2389,2404],{"slug":2318,"name":2318,"fn":2319,"description":2320,"org":2321,"tags":2322,"stars":20,"repoUrl":21,"updatedAt":2333},"accelerated-computing-cudf","accelerate data processing with cuDF","Official NVIDIA-authored guidance for NVIDIA cuDF GPU DataFrames, pandas acceleration, dask-cuDF, ETL, joins, groupby, CSV\u002FParquet I\u002FO, nullable semantics, and multi-GPU DataFrame workloads.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2323,2326,2329,2330],{"name":2324,"slug":2325,"type":15},"Data Analysis","data-analysis",{"name":2327,"slug":2328,"type":15},"Data Engineering","data-engineering",{"name":9,"slug":8,"type":15},{"name":2331,"slug":2332,"type":15},"Performance","performance","2026-07-14T05:28:43.176466",{"slug":2335,"name":2335,"fn":2336,"description":2337,"org":2338,"tags":2339,"stars":20,"repoUrl":21,"updatedAt":2347},"aiq-deploy","deploy and manage NVIDIA AI-Q infrastructure","Use when asked to install, deploy, run, validate, troubleshoot, or stop NVIDIA AI-Q Blueprint infrastructure.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2340,2343,2346],{"name":2341,"slug":2342,"type":15},"Deployment","deployment",{"name":2344,"slug":2345,"type":15},"Infrastructure","infrastructure",{"name":9,"slug":8,"type":15},"2026-07-14T05:29:06.667109",{"slug":2349,"name":2349,"fn":2350,"description":2351,"org":2352,"tags":2353,"stars":20,"repoUrl":21,"updatedAt":2361},"aiq-research","conduct deep research with AI-Q","Use when asked to run deep research or AI-Q research through a reachable NVIDIA AI-Q Blueprint backend.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2354,2357,2358],{"name":2355,"slug":2356,"type":15},"Agents","agents",{"name":9,"slug":8,"type":15},{"name":2359,"slug":2360,"type":15},"Research","research","2026-07-14T05:28:06.816956",{"slug":2363,"name":2363,"fn":2364,"description":2365,"org":2366,"tags":2367,"stars":20,"repoUrl":21,"updatedAt":2373},"amc-run-sample-calibration","run AMC sample dataset calibration","Run end-to-end calibration on the shipped sample dataset (sdg_08_2_sample_data_010926.zip) against a running AMC microservice. Use when user says 'test sample dataset', 'run sample calibration', 'verify AMC install', or 'launch and test'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2368,2369,2370],{"name":2324,"slug":2325,"type":15},{"name":9,"slug":8,"type":15},{"name":2371,"slug":2372,"type":15},"Testing","testing","2026-07-17T05:29:03.913266",{"slug":2375,"name":2375,"fn":2376,"description":2377,"org":2378,"tags":2379,"stars":20,"repoUrl":21,"updatedAt":2388},"amc-run-video-calibration","calibrate video datasets with AutoMagicCalib","Calibrate a new dataset from pre-recorded video files via the AutoMagicCalib REST API. Use when user has local MP4s and says 'calibrate my videos', 'run AMC on these videos', or similar. For RTSP\u002Flive streams, use amc-run-rtsp-calibration instead.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2380,2383,2386,2387],{"name":2381,"slug":2382,"type":15},"Automation","automation",{"name":2384,"slug":2385,"type":15},"Imaging","imaging",{"name":9,"slug":8,"type":15},{"name":18,"slug":19,"type":15},"2026-07-17T05:28:53.905004",{"slug":2390,"name":2390,"fn":2391,"description":2392,"org":2393,"tags":2394,"stars":20,"repoUrl":21,"updatedAt":2403},"amc-setup-calibration-stack","deploy AutoMagicCalib microservice with Docker","Launch AutoMagicCalib microservice and web UI from NGC release images via Docker Compose. Use when user says 'deploy auto calibration', 'launch auto calibration', 'launch AMC', 'start MS+UI', or 'set up auto-magic-calib'. Requires NGC API key.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2395,2396,2399,2400],{"name":2341,"slug":2342,"type":15},{"name":2397,"slug":2398,"type":15},"Docker","docker",{"name":9,"slug":8,"type":15},{"name":2401,"slug":2402,"type":15},"Operations","operations","2026-07-17T05:28:56.913999",{"slug":2405,"name":2405,"fn":2406,"description":2407,"org":2408,"tags":2409,"stars":20,"repoUrl":21,"updatedAt":2417},"cudaq-guide","develop quantum applications with CUDA-Q","CUDA-Q onboarding guide for installation, test programs, GPU simulation, QPU hardware, and quantum applications.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2410,2411,2414],{"name":9,"slug":8,"type":15},{"name":2412,"slug":2413,"type":15},"Quantum Computing","quantum-computing",{"name":2415,"slug":2416,"type":15},"Simulation","simulation","2026-07-14T05:26:58.898253",305,{"items":2420,"total":2570},[2421,2439,2454,2465,2477,2491,2504,2518,2529,2538,2552,2561],{"slug":2422,"name":2422,"fn":2423,"description":2424,"org":2425,"tags":2426,"stars":2436,"repoUrl":2437,"updatedAt":2438},"nemoclaw-user-guide","retrieve NemoClaw documentation and configuration","Guides human users' AI agents to the NemoClaw docs MCP server and canonical Fern documentation in Markdown form. Use when users ask how to install, configure, operate, troubleshoot, secure, or learn NemoClaw with an AI coding assistant. Trigger keywords - nemoclaw docs, use nemoclaw with ai agent, nemoclaw mcp docs, nemoclaw install help, nemoclaw quickstart, nemoclaw markdown docs, llms.txt, agent skills.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2427,2430,2433],{"name":2428,"slug":2429,"type":15},"Documentation","documentation",{"name":2431,"slug":2432,"type":15},"MCP","mcp",{"name":2434,"slug":2435,"type":15},"Search","search",21777,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNemoClaw","2026-07-20T06:00:01.461044",{"slug":2440,"name":2440,"fn":2441,"description":2442,"org":2443,"tags":2444,"stars":2451,"repoUrl":2452,"updatedAt":2453},"mcore-build-and-dependency","manage Megatron-LM development environments","Container-based dev environment setup and dependency management for Megatron-LM. Covers acquiring and launching the CI container, uv package management, and updating uv.lock.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2445,2448,2449],{"name":2446,"slug":2447,"type":15},"Containers","containers",{"name":2341,"slug":2342,"type":15},{"name":2450,"slug":705,"type":15},"Python",17049,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM","2026-07-27T06:06:11.249662",{"slug":2455,"name":2455,"fn":2456,"description":2457,"org":2458,"tags":2459,"stars":2451,"repoUrl":2452,"updatedAt":2464},"mcore-bump-base-image","update NVIDIA PyTorch base images","Bump the NVIDIA PyTorch base image (`nvcr.io\u002Fnvidia\u002Fpytorch:YY.MM-py3`) used by Megatron-LM CI. Covers the two pin sites (GitHub CI in `docker\u002F.ngc_version.dev` and GitLab CI in `.gitlab\u002Fstages\u002F01.build.yml`), the post-bump CI loop (re-run functional tests, refresh golden values, mark broken tests), and the gotchas that bit PRs",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2460,2463],{"name":2461,"slug":2462,"type":15},"CI\u002FCD","ci-cd",{"name":2341,"slug":2342,"type":15},"2026-07-14T05:25:59.97109",{"slug":2466,"name":2466,"fn":2467,"description":2468,"org":2469,"tags":2470,"stars":2451,"repoUrl":2452,"updatedAt":2476},"mcore-cicd","manage CI\u002FCD pipelines for Megatron-LM","CI\u002FCD reference for Megatron-LM. Covers CI pipeline structure, PR scope labels, triggering internal GitLab CI (which force-pushes the current branch to a pull-request\u002FBRANCH ref — always dry-run and verify the destination first; never run against shared or protected branches), and CI failure investigation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2471,2472,2473],{"name":2461,"slug":2462,"type":15},{"name":2341,"slug":2342,"type":15},{"name":2474,"slug":2475,"type":15},"GitHub","github","2026-07-27T06:06:12.278222",{"slug":2478,"name":2478,"fn":2479,"description":2480,"org":2481,"tags":2482,"stars":2451,"repoUrl":2452,"updatedAt":2490},"mcore-create-issue","investigate CI failures and create issues","Investigate a failing GitHub Actions run or job and create a GitHub issue for the failure.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2483,2486,2487],{"name":2484,"slug":2485,"type":15},"Debugging","debugging",{"name":2474,"slug":2475,"type":15},{"name":2488,"slug":2489,"type":15},"Triage","triage","2026-07-14T05:25:57.442089",{"slug":2492,"name":2492,"fn":2493,"description":2494,"org":2495,"tags":2496,"stars":2451,"repoUrl":2452,"updatedAt":2503},"mcore-linting-and-formatting","lint and format Megatron-LM code","Linting and formatting for Megatron-LM. Covers running autoformat.sh, tools (ruff, black, isort, pylint, mypy), and code style rules.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2497,2500],{"name":2498,"slug":2499,"type":15},"Best Practices","best-practices",{"name":2501,"slug":2502,"type":15},"Code Analysis","code-analysis","2026-07-14T05:25:56.18433",{"slug":2505,"name":2505,"fn":2506,"description":2507,"org":2508,"tags":2509,"stars":2451,"repoUrl":2452,"updatedAt":2517},"mcore-migrate-gpt-to-hybrid","migrate Megatron-LM models to HybridModel","Migration guide for moving Megatron Core GPTModel checkpoints, model providers, training commands, and layer mappings to HybridModel.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2510,2513,2516],{"name":2511,"slug":2512,"type":15},"Machine Learning","machine-learning",{"name":2514,"slug":2515,"type":15},"Migration","migration",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:11.777011",{"slug":2519,"name":2519,"fn":2520,"description":2521,"org":2522,"tags":2523,"stars":2451,"repoUrl":2452,"updatedAt":2528},"mcore-onboard-gb200-1node-tests","onboard functional tests for GB200","Onboard 1-node GitHub MR functional tests for GB200 from existing mr-scoped 2-node tests.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2524,2527],{"name":2525,"slug":2526,"type":15},"QA","qa",{"name":2371,"slug":2372,"type":15},"2026-07-14T05:25:53.673039",{"slug":2530,"name":2530,"fn":2531,"description":2532,"org":2533,"tags":2534,"stars":2451,"repoUrl":2452,"updatedAt":2537},"mcore-run-on-slurm","launch distributed training jobs on SLURM","How to launch distributed Megatron-LM training jobs on a SLURM cluster. Covers a minimal sbatch skeleton, environment-variable setup for torch.distributed.run, CUDA_DEVICE_MAX_CONNECTIONS rules across hardware and parallelism modes, container conventions, monitoring, and per-rank failure diagnosis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2535,2536],{"name":2341,"slug":2342,"type":15},{"name":2344,"slug":2345,"type":15},"2026-07-14T05:25:49.362534",{"slug":2539,"name":2539,"fn":2540,"description":2541,"org":2542,"tags":2543,"stars":2451,"repoUrl":2452,"updatedAt":2551},"mcore-split-pr","split pull requests to reduce review load","Split a PR into multiple PRs to reduce the number of required CODEOWNERS reviewer groups.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2544,2547,2548],{"name":2545,"slug":2546,"type":15},"Code Review","code-review",{"name":2474,"slug":2475,"type":15},{"name":2549,"slug":2550,"type":15},"Pull Requests","pull-requests","2026-07-14T05:26:01.226578",{"slug":2553,"name":2553,"fn":2554,"description":2555,"org":2556,"tags":2557,"stars":2451,"repoUrl":2452,"updatedAt":2560},"mcore-testing","run and manage Megatron-LM tests","Test system for Megatron-LM. Covers test layout, recipe YAML structure, adding and running unit and functional tests, golden values, marker filters, and CI parity.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2558,2559],{"name":2525,"slug":2526,"type":15},{"name":2371,"slug":2372,"type":15},"2026-07-14T05:25:54.928983",{"slug":2562,"name":2562,"fn":2563,"description":2564,"org":2565,"tags":2566,"stars":2451,"repoUrl":2452,"updatedAt":2569},"nightly-sync","manage nightly main-to-dev sync workflows","Domain knowledge for the nightly main-to-dev sync workflow. Covers merge strategy, CI architecture, failure investigation, and known issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2567,2568],{"name":2381,"slug":2382,"type":15},{"name":2461,"slug":2462,"type":15},"2026-07-30T05:29:03.275638",496]