Skip to content

Conversation

@megnvidia
Copy link
Collaborator

@megnvidia megnvidia commented Jan 6, 2026

Nvidia style guide edits to one readme file

Please add reviewers. I am learning the team and processes at this stage.

Summary by CodeRabbit

  • Documentation
    • Complete rewrite of the GST video recorder README into clear, labeled sections (Overview, Supported Video Sources, Requirements, Installation, Quick Start, Building, Running, Usage, Command-Line Options, Examples, Architecture, Notes, Testing).
    • Reorganized options into categorized tables with defaults; expanded quick-start, installation (container vs local), usage examples, testing guidance, pipeline/architecture explanations, and clarified memory, recording, output, and encoder behavior.

✏️ Tip: You can customize this high-level summary in your review settings.

@megnvidia megnvidia requested a review from bhashemian January 6, 2026 20:49
@megnvidia megnvidia self-assigned this Jan 6, 2026
@greptile-apps
Copy link
Contributor

greptile-apps bot commented Jan 6, 2026

Greptile Summary

This PR comprehensively rewrites the GStreamer Video Recorder README to align with NVIDIA style guide standards. The documentation has been transformed from a basic reference into a well-structured, professional guide with clear navigation, detailed options tables, practical examples, and improved architecture explanations.

Key Improvements:

  • Restructured into logical sections with a table of contents for easy navigation
  • Converted command-line options from bullet lists to organized tables with defaults
  • Enhanced Quick Start section with side-by-side comparison table
  • Expanded installation instructions covering both containerized and local builds
  • Added comprehensive usage examples with practical copy-paste commands
  • Improved architecture documentation with detailed pipeline explanations
  • Added Tips section for common troubleshooting and best practices
  • Consistent formatting and terminology throughout

Style Choices:

  • Numbers under ten are spelled out (e.g., "ten seconds") per NVIDIA editorial standards
  • Double space after image on line 5 is intentional for markdown line break formatting
  • Descriptive example titles use colons for clarity and consistency

The changes are purely documentation improvements with no code modifications. All technical information remains accurate and the examples are valid.

Confidence Score: 5/5

  • This PR is safe to merge with no risk - it contains only documentation improvements
  • Score reflects that this is a documentation-only change with no code modifications. The README rewrite follows NVIDIA style guide standards, improves structure and readability, and maintains technical accuracy. All examples and commands remain valid. Previous review feedback has been addressed appropriately, with remaining style choices being intentional per NVIDIA editorial guidelines.
  • No files require special attention

Important Files Changed

Filename Overview
applications/gstreamer/gst_video_recorder/README.md Documentation rewrite following NVIDIA style guide with improved structure, tables, and examples; minor formatting inconsistencies remain

Sequence Diagram

sequenceDiagram
    participant User
    participant Holohub
    participant Container
    participant App as gst_video_recorder
    participant Source as Video Source<br/>(V4L2/Pattern)
    participant Recorder as GstVideoRecorderOp
    participant GStreamer
    participant File as Output File

    User->>Holohub: ./holohub run gst_video_recorder
    Holohub->>Container: Build & start container
    Container->>App: Launch application
    
    alt V4L2 Camera Source
        App->>Source: Initialize V4L2VideoCaptureOp
        Source->>Source: Capture from camera
        Source->>Recorder: Send frames via FormatConverterOp
    else Pattern Generator Source
        App->>Source: Initialize PatternGenOperator
        Source->>Source: Generate test patterns
        Source->>Recorder: Send frames directly
    end
    
    Recorder->>GStreamer: Configure pipeline<br/>(converter ! encoder ! parser ! muxer)
    
    loop For each frame
        Source->>Recorder: Frame data (host/device memory)
        Recorder->>GStreamer: Push frame to pipeline
        GStreamer->>GStreamer: Encode frame
        GStreamer->>File: Write encoded data
    end
    
    Recorder->>GStreamer: Send EOS signal
    GStreamer->>File: Finalize file
    App->>User: Recording complete
Loading

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 file reviewed, 2 comments

Edit Code Review Agent Settings | Greptile

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 6, 2026

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Walkthrough

Rewrites the gst_video_recorder README: reorganized into structured sections (Requirements, Quick Start, Installation, Options, Architecture, Testing, Examples, Notes); added tables, clarified video sources/pipelines, and updated examples and testing instructions. No code or public API changes.

Changes

Cohort / File(s) Change Summary
README rewrite
applications/gstreamer/gst_video_recorder/README.md
Full documentation refactor: reorganized content into explicit sections, introduced tabular option and dependency descriptions, clarified V4L2 and pattern generator sources and pipelines, standardized terminology and examples, expanded testing and notes. Formatting and wording only; no code changes.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

🚥 Pre-merge checks | ✅ 2
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title references NVIDIA style guide changes to a gstreamer video recorder README, which directly aligns with the PR's main objective of applying NVIDIA style guide edits to the README file.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


🧹 Recent nitpick comments
applications/gstreamer/gst_video_recorder/README.md (1)

110-140: Well-organized command-line options documentation.

The categorized tables with defaults and clear descriptions make it easy for users to find the options they need. The structure is logical and comprehensive.

Optional: Consider varying sentence structure in Resolution Options.

Lines 124-125 use identical structure: "Frame [width/height]. For V4L2: ... For the pattern: ..." This parallel structure is clear but flagged by static analysis as repetitive. You could optionally rephrase one, though the current parallel structure does aid comprehension.

💅 Optional rewording suggestion
-| `-w, --width <pixels>` | Frame width. For V4L2: Must match a supported camera resolution. For the pattern: any reasonable resolution (64-8192 pixels) | `1920` |
-| `-h, --height <pixels>` | Frame height. For V4L2: Must match a supported camera resolution. For the pattern: any reasonable resolution (64-8192 pixels) | `1080` |
+| `-w, --width <pixels>` | Frame width in pixels. V4L2 sources must match a supported camera resolution; pattern sources accept any reasonable value (64-8192) | `1920` |
+| `-h, --height <pixels>` | Frame height in pixels. V4L2 sources must match a supported camera resolution; pattern sources accept any reasonable value (64-8192) | `1080` |

Based on static analysis hints.


📜 Recent review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 68d81a5 and a468103.

📒 Files selected for processing (1)
  • applications/gstreamer/gst_video_recorder/README.md
🧰 Additional context used
🧠 Learnings (3)
📚 Learning: 2025-12-18T16:19:45.117Z
Learnt from: CR
Repo: nvidia-holoscan/holohub PR: 0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-12-18T16:19:45.117Z
Learning: Applies to **/(@(operators|applications|workflows|gxf_extensions))/**/README.md : Every application and operator must include a comprehensive README.md file with purpose, usage, requirements, examples, and architecture information

Applied to files:

  • applications/gstreamer/gst_video_recorder/README.md
📚 Learning: 2025-10-22T16:21:10.281Z
Learnt from: cdinea
Repo: nvidia-holoscan/holohub PR: 1170
File: applications/video_streaming/video_streaming_client/cpp/streaming_client_demo.yaml:42-49
Timestamp: 2025-10-22T16:21:10.281Z
Learning: V4L2VideoCaptureOp in Holoscan SDK performs internal conversion from the camera's native pixel format (specified by the pixel_format parameter) to RGBA8888 output, regardless of the input format (e.g., YUYV, MJPEG). When using V4L2 as a source, downstream operators should expect RGBA8888 (4-channel) output format.

Applied to files:

  • applications/gstreamer/gst_video_recorder/README.md
📚 Learning: 2025-10-22T16:33:55.411Z
Learnt from: cdinea
Repo: nvidia-holoscan/holohub PR: 1170
File: applications/video_streaming/video_streaming_client/python/streaming_client_demo_replayer.yaml:27-36
Timestamp: 2025-10-22T16:33:55.411Z
Learning: In the video_streaming bidirectional client applications (applications/video_streaming/video_streaming_client), the pipeline has two separate data paths: (1) Outgoing: source → format_converter → streaming_client INPUT (sends to server), and (2) Incoming: streaming_client OUTPUT → holoviz (receives from server). The format_converter prepares data for transmission and does NOT feed directly into holoviz visualization.

Applied to files:

  • applications/gstreamer/gst_video_recorder/README.md
🪛 LanguageTool
applications/gstreamer/gst_video_recorder/README.md

[style] ~125-~125: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...st match a supported camera resolution. For the pattern: any reasonable resolution ...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Greptile Review
🔇 Additional comments (9)
applications/gstreamer/gst_video_recorder/README.md (9)

1-29: Excellent reorganization of the introduction and navigation.

The restructured introduction provides a clear overview with visual diagram, purpose, and comprehensive table of contents. All TOC links correctly reference existing sections in the document.


30-42: Well-structured requirements section.

The categorized requirements with specific plugin purposes and the optional camera note provide clear guidance for users setting up the application.


43-54: Clear and actionable Quick Start section.

The side-by-side comparison table makes it easy for users to choose between camera and pattern sources. The explanation of the containerized build process is helpful.


55-77: Comprehensive installation guidance.

The comparison table between containerized and local builds helps users make an informed choice, and the dependency script explanation is valuable context.


141-149: Clear testing instructions.

The testing section provides straightforward guidance with the appropriate verbose flag for debugging.


151-231: Excellent collection of practical examples.

The usage examples section is comprehensive with helpful tips and well-organized categories. The examples cover a good range of common scenarios, making it easy for users to find and adapt commands for their needs.


233-280: Comprehensive and technically accurate architecture documentation.

The architecture section effectively describes the video sources, encoding backend, and pipeline flows. The inclusion of specific GStreamer pipeline examples (NVIDIA H.264, H.265, CPU x264) helps users understand the implementation details.


281-306: Valuable operational details in Notes section.

The notes provide important context about video sources and recording behavior. The tip about using absolute paths for predictable output locations in containerized environments is particularly helpful.


1-306: Outstanding documentation reorganization! 📚

This comprehensive restructuring significantly improves the README's usability and adherence to NVIDIA style guidelines. The addition of:

  • Clear table of contents with valid internal links
  • Categorized command-line options in table format
  • Extensive practical examples
  • Detailed architecture and operational notes

...transforms this into an exemplary application README. The reorganization makes information easy to find and understand while maintaining technical accuracy throughout.

Based on learnings: This README now fully satisfies the requirement for comprehensive documentation with purpose, usage, requirements, examples, and architecture information.

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

🤖 Fix all issues with AI Agents
In @applications/gstreamer/gst_video_recorder/README.md:
- Line 17: The README currently jumps heading levels: change any extra top-level
headings so there is only one H1 and increment headings one level at a time —
specifically convert the standalone "Installation Guide" (currently `#
Installation Guide`) to `## Installation Guide`, and promote `### Supported
Video Sources` and the other `###` headings that should be H2 to `## Supported
Video Sources` (and similarly change any `###` that belong directly under the
main topic to `##`), ensuring no H3 appears immediately after H1 without an
intervening H2 so the hierarchy is H1 → H2 → H3 throughout.
- Line 198: Update the README phrase "High quality recording with custom encoder
settings:" to use a hyphenated compound adjective: change it to "High-quality
recording with custom encoder settings:" in the README.md (look for the exact
line starting with "* High quality recording" and replace it).
- Line 79: The markdown code span containing ``` ./holohub  build 
gst_video_recorder``` has an extra leading space inside the backticks; edit the
README to remove the leading space so the span reads ```./holohub  build 
gst_video_recorder``` (keep the double spaces between words if intended)
ensuring the table cell now contains the corrected inline code delimiter without
the extra whitespace.
- Around line 49-52: The Quick Start markdown table has two separator rows
causing a malformed table; edit the table in the README by removing the extra
"|--|--|" separator so there is only one separator row between the header
("Using the V4L2 Camera | Generating Test Patterns") and the single content row
containing the commands ("./holohub  run  gst_video_recorder  v4l2" and
"./holohub  run  gst_video_recorder  pattern"), ensuring the table header, one
separator row, and one content row remain.
- Around line 89-93: The table of contents references nonexistent sections
"Encoder Properties", "Output Formats", and "Supported Encoders"; either remove
those three links from the TOC list or create matching sections titled "Encoder
Properties", "Output Formats", and "Supported Encoders" with brief explanatory
content; update the TOC entries to match exact heading text if you add sections,
or simply delete the three list items from the TOC so all links point to
existing headings like "Running the Application" and "Command-Line Options".
🧹 Nitpick comments (1)
applications/gstreamer/gst_video_recorder/README.md (1)

134-134: Improve table cell wording to avoid repetitive "For" beginnings.

The description uses "For..." twice in succession, which makes it awkward. Restructure to improve clarity and readability.

🔎 Suggested revision
- | `-w, --width <pixels>` | Frame width. For V4L2: Must match a supported camera resolution. For the pattern: any reasonable resolution (64-8192 pixels) | `1920` |
+ | `-w, --width <pixels>` | Frame width. V4L2 must match a supported camera resolution; pattern accepts any reasonable resolution (64-8192 pixels) | `1920` |
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 901d53c and 75741c6.

📒 Files selected for processing (1)
  • applications/gstreamer/gst_video_recorder/README.md
🧰 Additional context used
🧠 Learnings (2)
📚 Learning: 2025-10-22T16:33:55.411Z
Learnt from: cdinea
Repo: nvidia-holoscan/holohub PR: 1170
File: applications/video_streaming/video_streaming_client/python/streaming_client_demo_replayer.yaml:27-36
Timestamp: 2025-10-22T16:33:55.411Z
Learning: In the video_streaming bidirectional client applications (applications/video_streaming/video_streaming_client), the pipeline has two separate data paths: (1) Outgoing: source → format_converter → streaming_client INPUT (sends to server), and (2) Incoming: streaming_client OUTPUT → holoviz (receives from server). The format_converter prepares data for transmission and does NOT feed directly into holoviz visualization.

Applied to files:

  • applications/gstreamer/gst_video_recorder/README.md
📚 Learning: 2025-10-22T16:21:10.281Z
Learnt from: cdinea
Repo: nvidia-holoscan/holohub PR: 1170
File: applications/video_streaming/video_streaming_client/cpp/streaming_client_demo.yaml:42-49
Timestamp: 2025-10-22T16:21:10.281Z
Learning: V4L2VideoCaptureOp in Holoscan SDK performs internal conversion from the camera's native pixel format (specified by the pixel_format parameter) to RGBA8888 output, regardless of the input format (e.g., YUYV, MJPEG). When using V4L2 as a source, downstream operators should expect RGBA8888 (4-channel) output format.

Applied to files:

  • applications/gstreamer/gst_video_recorder/README.md
🪛 LanguageTool
applications/gstreamer/gst_video_recorder/README.md

[style] ~134-~134: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...st match a supported camera resolution. For the pattern: any reasonable resolution ...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[grammar] ~198-~198: Use a hyphen to join words.
Context: ... 300 -o camera_yuyv.mp4" ``` * High quality recording with custom encoder se...

(QB_NEW_EN_HYPHEN)

🪛 markdownlint-cli2 (0.18.1)
applications/gstreamer/gst_video_recorder/README.md

17-17: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3

(MD001, heading-increment)


79-79: Spaces inside code span elements

(MD038, no-space-in-code)


91-91: Link fragments should be valid

(MD051, link-fragments)


92-92: Link fragments should be valid

(MD051, link-fragments)


93-93: Link fragments should be valid

(MD051, link-fragments)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Greptile Review

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Signed-off-by: Bruce Hashemian <[email protected]>
@bhashemian bhashemian requested review from a team and GilShpr January 6, 2026 20:53
Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 file reviewed, 2 comments

Edit Code Review Agent Settings | Greptile

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI Agents
In @applications/gstreamer/gst_video_recorder/README.md:
- Line 17: The README has invalid heading hierarchy: keep the top-level "#
GStreamer Video Recorder" as-is, change "### Supported Video Sources" to "##
Supported Video Sources", change the "### Requirements" heading at line 22 to
"## Requirements", and change the stray "# Installation Guide" to "##
Installation Guide" so the document uses a single h1 and increments headings one
level at a time.
🧹 Nitpick comments (1)
applications/gstreamer/gst_video_recorder/README.md (1)

130-134: Rephrase to avoid successive sentences starting with the same word.

The description for the -h, --height option on lines 133–134 begins two successive thoughts with "For": "For V4L2: Must match a supported camera resolution. For the pattern: any reasonable resolution...". Reword to improve readability and sentence variety.

🔎 Suggested rephrase
- | `-h, --height <pixels>` | Frame height. For V4L2: Must match a supported camera resolution. For the pattern: any reasonable resolution (64-8192 pixels) | `1080` |
+ | `-h, --height <pixels>` | Frame height in pixels. V4L2 requires a resolution supported by the camera; pattern generator accepts any reasonable value (64-8192 pixels) | `1080` |
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 75741c6 and 1701b1d.

📒 Files selected for processing (1)
  • applications/gstreamer/gst_video_recorder/README.md
🧰 Additional context used
🧠 Learnings (2)
📚 Learning: 2025-10-22T16:33:55.411Z
Learnt from: cdinea
Repo: nvidia-holoscan/holohub PR: 1170
File: applications/video_streaming/video_streaming_client/python/streaming_client_demo_replayer.yaml:27-36
Timestamp: 2025-10-22T16:33:55.411Z
Learning: In the video_streaming bidirectional client applications (applications/video_streaming/video_streaming_client), the pipeline has two separate data paths: (1) Outgoing: source → format_converter → streaming_client INPUT (sends to server), and (2) Incoming: streaming_client OUTPUT → holoviz (receives from server). The format_converter prepares data for transmission and does NOT feed directly into holoviz visualization.

Applied to files:

  • applications/gstreamer/gst_video_recorder/README.md
📚 Learning: 2025-10-22T16:21:10.281Z
Learnt from: cdinea
Repo: nvidia-holoscan/holohub PR: 1170
File: applications/video_streaming/video_streaming_client/cpp/streaming_client_demo.yaml:42-49
Timestamp: 2025-10-22T16:21:10.281Z
Learning: V4L2VideoCaptureOp in Holoscan SDK performs internal conversion from the camera's native pixel format (specified by the pixel_format parameter) to RGBA8888 output, regardless of the input format (e.g., YUYV, MJPEG). When using V4L2 as a source, downstream operators should expect RGBA8888 (4-channel) output format.

Applied to files:

  • applications/gstreamer/gst_video_recorder/README.md
🪛 LanguageTool
applications/gstreamer/gst_video_recorder/README.md

[style] ~133-~133: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...st match a supported camera resolution. For the pattern: any reasonable resolution ...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[grammar] ~197-~197: Use a hyphen to join words.
Context: ... 300 -o camera_yuyv.mp4" ``` * High quality recording with custom encoder se...

(QB_NEW_EN_HYPHEN)

🪛 markdownlint-cli2 (0.18.1)
applications/gstreamer/gst_video_recorder/README.md

17-17: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3

(MD001, heading-increment)


78-78: Spaces inside code span elements

(MD038, no-space-in-code)


90-90: Link fragments should be valid

(MD051, link-fragments)


91-91: Link fragments should be valid

(MD051, link-fragments)


92-92: Link fragments should be valid

(MD051, link-fragments)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Greptile Review

@bhashemian bhashemian changed the title mmiranda Nvidia style guide changes to gstreamer video recording readme NVIDIA style guide changes to gstreamer video recording readme Jan 6, 2026
@bhashemian bhashemian changed the title NVIDIA style guide changes to gstreamer video recording readme NVIDIA Style Guide Changes to GStreamer Video Recording README Jan 6, 2026
@bhashemian bhashemian changed the title NVIDIA Style Guide Changes to GStreamer Video Recording README Update GStreamer Video Recording README with NVIDIA Style Guide Jan 6, 2026
megnvidia and others added 3 commits January 6, 2026 13:19
…eferences and also adjusting some heading levels that I didn't have right

Signed-off-by: meg miranda <[email protected]>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Signed-off-by: megnvidia <[email protected]>
@greptile-apps
Copy link
Contributor

greptile-apps bot commented Jan 6, 2026

Greptile found no issues!

From now on, if a review finishes and we haven't found any issues, we will not post anything, but you can confirm that we reviewed your changes in the status check section.

This feature can be toggled off in your Code Review Settings by deselecting "Create a status check for each PR".

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
applications/gstreamer/gst_video_recorder/README.md (1)

194-194: Use hyphen in compound adjective "high-quality."

Compound adjectives preceding a noun should be hyphenated. Change "High quality recording" to "High-quality recording."

🔎 Proposed fix
- * High quality recording with custom encoder settings:
+ * High-quality recording with custom encoder settings:
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1701b1d and 20b1134.

📒 Files selected for processing (1)
  • applications/gstreamer/gst_video_recorder/README.md
🧰 Additional context used
🧠 Learnings (3)
📚 Learning: 2025-12-18T16:19:45.117Z
Learnt from: CR
Repo: nvidia-holoscan/holohub PR: 0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-12-18T16:19:45.117Z
Learning: Applies to **/(@(operators|applications|workflows|gxf_extensions))/**/README.md : Every application and operator must include a comprehensive README.md file with purpose, usage, requirements, examples, and architecture information

Applied to files:

  • applications/gstreamer/gst_video_recorder/README.md
📚 Learning: 2025-10-22T16:33:55.411Z
Learnt from: cdinea
Repo: nvidia-holoscan/holohub PR: 1170
File: applications/video_streaming/video_streaming_client/python/streaming_client_demo_replayer.yaml:27-36
Timestamp: 2025-10-22T16:33:55.411Z
Learning: In the video_streaming bidirectional client applications (applications/video_streaming/video_streaming_client), the pipeline has two separate data paths: (1) Outgoing: source → format_converter → streaming_client INPUT (sends to server), and (2) Incoming: streaming_client OUTPUT → holoviz (receives from server). The format_converter prepares data for transmission and does NOT feed directly into holoviz visualization.

Applied to files:

  • applications/gstreamer/gst_video_recorder/README.md
📚 Learning: 2025-10-22T16:21:10.281Z
Learnt from: cdinea
Repo: nvidia-holoscan/holohub PR: 1170
File: applications/video_streaming/video_streaming_client/cpp/streaming_client_demo.yaml:42-49
Timestamp: 2025-10-22T16:21:10.281Z
Learning: V4L2VideoCaptureOp in Holoscan SDK performs internal conversion from the camera's native pixel format (specified by the pixel_format parameter) to RGBA8888 output, regardless of the input format (e.g., YUYV, MJPEG). When using V4L2 as a source, downstream operators should expect RGBA8888 (4-channel) output format.

Applied to files:

  • applications/gstreamer/gst_video_recorder/README.md
🪛 LanguageTool
applications/gstreamer/gst_video_recorder/README.md

[style] ~130-~130: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...st match a supported camera resolution. For the pattern: any reasonable resolution ...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[grammar] ~194-~194: Use a hyphen to join words.
Context: ... 300 -o camera_yuyv.mp4" ``` * High quality recording with custom encoder se...

(QB_NEW_EN_HYPHEN)

🪛 markdownlint-cli2 (0.18.1)
applications/gstreamer/gst_video_recorder/README.md

17-17: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3

(MD001, heading-increment)


78-78: Spaces inside code span elements

(MD038, no-space-in-code)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Greptile Review
  • GitHub Check: check-metadata

Copy link
Collaborator Author

@megnvidia megnvidia left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hoping this solves some of the merge conflicts I was having

…roblems that the AI review found

Merge branch 'mmiranda-gstream-readme-edits' of github.com:nvidia-holoscan/holohub into mmiranda-gstream-readme-edits
Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 file reviewed, 4 comments

Edit Code Review Agent Settings | Greptile

@megnvidia
Copy link
Collaborator Author

oy. I love git. I hate git. Thankfully I don't think it is a toxic relationship and I will swiftly get over my hate.

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Signed-off-by: megnvidia <[email protected]>
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
applications/gstreamer/gst_video_recorder/README.md (1)

173-225: Improve indentation consistency across usage examples.

Lines 191–193 and 196–198 use 4-space indentation, while lines 176–178 and 204–205 use 2-space indentation. Standardize on 2-space indentation for markdown list continuations to maintain consistency throughout.

🔎 Proposed fix for indentation consistency
* Record with specific pixel format (YUYV):
-    ```bash
-    ./holohub run gst_video_recorder --run-args="--source v4l2 --width 640 --height 480 --pixel-format YUYV --count 300 -o camera_yuyv.mp4"
-    ```
+  ```bash
+  ./holohub run gst_video_recorder --run-args="--source v4l2 --width 640 --height 480 --pixel-format YUYV --count 300 -o camera_yuyv.mp4"
+  ```

* High-quality recording with custom encoder settings:
-    ```bash
-    ./holohub run gst_video_recorder --run-args="--source v4l2 --property bitrate=12000 --property preset=1 --count 900 -o high_quality.mp4"
-    ```
+  ```bash
+  ./holohub run gst_video_recorder --run-args="--source v4l2 --property bitrate=12000 --property preset=1 --count 900 -o high_quality.mp4"
+  ```

Apply the same 2-space indentation fix to all remaining examples in the Pattern Generator Examples section (lines 202–225).

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between cb67a5e and aff759b.

📒 Files selected for processing (1)
  • applications/gstreamer/gst_video_recorder/README.md
🧰 Additional context used
🧠 Learnings (3)
📚 Learning: 2025-12-18T16:19:45.117Z
Learnt from: CR
Repo: nvidia-holoscan/holohub PR: 0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-12-18T16:19:45.117Z
Learning: Applies to **/(@(operators|applications|workflows|gxf_extensions))/**/README.md : Every application and operator must include a comprehensive README.md file with purpose, usage, requirements, examples, and architecture information

Applied to files:

  • applications/gstreamer/gst_video_recorder/README.md
📚 Learning: 2025-10-22T16:21:10.281Z
Learnt from: cdinea
Repo: nvidia-holoscan/holohub PR: 1170
File: applications/video_streaming/video_streaming_client/cpp/streaming_client_demo.yaml:42-49
Timestamp: 2025-10-22T16:21:10.281Z
Learning: V4L2VideoCaptureOp in Holoscan SDK performs internal conversion from the camera's native pixel format (specified by the pixel_format parameter) to RGBA8888 output, regardless of the input format (e.g., YUYV, MJPEG). When using V4L2 as a source, downstream operators should expect RGBA8888 (4-channel) output format.

Applied to files:

  • applications/gstreamer/gst_video_recorder/README.md
📚 Learning: 2025-10-22T16:33:55.411Z
Learnt from: cdinea
Repo: nvidia-holoscan/holohub PR: 1170
File: applications/video_streaming/video_streaming_client/python/streaming_client_demo_replayer.yaml:27-36
Timestamp: 2025-10-22T16:33:55.411Z
Learning: In the video_streaming bidirectional client applications (applications/video_streaming/video_streaming_client), the pipeline has two separate data paths: (1) Outgoing: source → format_converter → streaming_client INPUT (sends to server), and (2) Incoming: streaming_client OUTPUT → holoviz (receives from server). The format_converter prepares data for transmission and does NOT feed directly into holoviz visualization.

Applied to files:

  • applications/gstreamer/gst_video_recorder/README.md
🪛 LanguageTool
applications/gstreamer/gst_video_recorder/README.md

[style] ~131-~131: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...st match a supported camera resolution. For the pattern: any reasonable resolution ...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)

🪛 markdownlint-cli2 (0.18.1)
applications/gstreamer/gst_video_recorder/README.md

17-17: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3

(MD001, heading-increment)


77-77: Spaces inside code span elements

(MD038, no-space-in-code)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Greptile Review
  • GitHub Check: build-and-deploy
🔇 Additional comments (7)
applications/gstreamer/gst_video_recorder/README.md (7)

35-41: Table of contents links correctly reference existing sections.

All navigation links now point to properly defined headings. Previous issues with broken links to non-existent sections have been resolved.


44-50: Quick Start section is clear and concise.

The two-command comparison table is easy to scan. The duplicate separator row has been removed.


74-79: Installation comparison table is well-structured.

The side-by-side comparison of containerized vs. local builds is informative and easy to follow.


114-145: Command-line reference tables are comprehensive and well-organized.

The segmented approach (General, Resolution, V4L2, Pattern) makes options easy to find.


195-195: Approved: "High-quality" compound adjective is now correctly hyphenated.

This grammatical fix from the previous review has been successfully applied.

Also applies to: 198-198


228-268: Architecture and pipeline descriptions are accurate and well-formatted.

Pipeline diagrams and component descriptions clearly explain the two execution paths (V4L2 and Pattern Generator). Example pipelines with specific encoder/format combinations are helpful.


276-300: Notes section provides valuable implementation details.

The separation of video sources, recording behavior, and output location guidance is clear. The note about output file paths and --count behavior is practical.

@megnvidia
Copy link
Collaborator Author

Ok I have commented on the AI review items. I haven't resolved the comments in the hopes that it makes my explanation and reasoning behind changes more clear.

I should also add that I promise I didn't delete pertinent information, but I did move many things around. I admit, the file diff is a bit concerning. I am willing to recreate the changes in smaller increments if anyone would like that.

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Greptile Overview

Greptile Summary

This PR successfully reorganizes the GStreamer Video Recorder README to follow NVIDIA Style Guide standards. The documentation has been restructured with clear sections, improved navigation, and better formatting consistency.

Major improvements:

  • Removed "etc." usage per style guide requirements
  • Converted command-line options from prose to clear reference tables
  • Added navigation links for better user experience
  • Reorganized content into logical flow: Quick Start → Installation → Usage → Testing → Examples → Architecture
  • Enhanced code formatting with consistent use of backticks for inline code
  • Added Tips section with practical advice
  • Improved table formatting for build options comparison

Minor style issues found:

  • Some example titles have inconsistent punctuation (semicolons vs colons)
  • One numeric value written as word ("ten" instead of "10")

The changes are purely documentation improvements with no functional code changes.

Confidence Score: 4/5

  • This PR is safe to merge with only minor style inconsistencies to address
  • Score reflects excellent documentation reorganization with proper NVIDIA Style Guide adherence. Only minor formatting inconsistencies in example titles prevent a perfect score. No functional code changes means zero risk to application behavior.
  • No files require special attention - only cosmetic style refinements suggested

Important Files Changed

File Analysis

Filename Score Overview
applications/gstreamer/gst_video_recorder/README.md 4/5 Comprehensive documentation reorganization following NVIDIA Style Guide with improved structure, tables, and formatting. Minor style inconsistencies in example titles.

Sequence Diagram

sequenceDiagram
    participant User
    participant README
    participant StyleGuide as NVIDIA Style Guide
    
    User->>README: Request documentation update
    README->>StyleGuide: Apply formatting rules
    StyleGuide->>README: Restructure sections
    Note over README: Remove "etc." instances
    Note over README: Add section headers (###)
    Note over README: Convert options to tables
    Note over README: Improve formatting consistency
    StyleGuide->>README: Add navigation links
    StyleGuide->>README: Reorganize content flow
    README->>User: Deliver improved documentation
    Note over README: Quick Start → Installation → Usage → Testing → Examples → Architecture
Loading

@bhashemian bhashemian moved this to In Progress in Holohub Jan 9, 2026
@bhashemian bhashemian changed the title Update GStreamer Video Recording README with NVIDIA Style Guide mmiranda Nvidia style guide changes to gstreamer video recording readme Jan 12, 2026
Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

7 files reviewed, 7 comments

Edit Code Review Agent Settings | Greptile

Signed-off-by: B Hashemian <[email protected]>
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In @applications/gstreamer/gst_video_recorder/README.md:
- Line 16: The document uses h3 headings for top-level sections (e.g., "###
Supported Video Sources") which breaks markdown hierarchy; update those
top-level section headings to h2 (change "###" to "##" for "Supported Video
Sources" and all other top-level sections), and ensure true subsections remain
h3 (###); apply this fix to the other occurrences noted (lines referenced in the
review) so every direct child of the main title uses "##" and nested subsections
use "###".
🧹 Nitpick comments (3)
applications/gstreamer/gst_video_recorder/README.md (3)

5-5: Remove the unnecessary </br> tag.

The </br> HTML tag after the image is not needed in Markdown. The line break is already handled by the blank line after it. Self-closing tags should use <br /> format if required, but in this case, it's not necessary.

♻️ Proposed fix
-![GStreamer Video Recorder Pipeline](docs/pipeline_diagram.png)</br>
+![GStreamer Video Recorder Pipeline](docs/pipeline_diagram.png)

123-124: Consider rewording to avoid repetitive sentence structure.

The table cells for width and height descriptions both begin consecutive sentences with "For V4L2:" and "For the pattern:" which creates repetition. Consider a more concise format.

♻️ Proposed alternative wording
-| `-w, --width <pixels>` | Frame width. For V4L2: Must match a supported camera resolution. For the pattern: any reasonable resolution (64-8192 pixels) | `1920` |
-| `-h, --height <pixels>` | Frame height. For V4L2: Must match a supported camera resolution. For the pattern: any reasonable resolution (64-8192 pixels) | `1080` |
+| `-w, --width <pixels>` | Frame width. V4L2 source requires a supported camera resolution; pattern source accepts any reasonable value (64-8192 pixels) | `1920` |
+| `-h, --height <pixels>` | Frame height. V4L2 source requires a supported camera resolution; pattern source accepts any reasonable value (64-8192 pixels) | `1080` |

202-230: Standardize example section headers for consistency.

The example headers in this section have inconsistent formatting:

  • Some use semicolons (e.g., "Different Resolutions; Record 720p video")
  • Some use "or" (e.g., "H.265 Encoding or how to record...")
  • Some are simple descriptions (e.g., "Record color bars")
  • Capitalization varies

Consider using a consistent format throughout, such as descriptive titles without semicolons.

♻️ Proposed consistent formatting
-- H.265 Encoding or how to record high-quality H.265 video:
+- H.265 Encoding (high-quality recording):

-- Different Resolutions; Record 720p video:
+- Record at 720p resolution:

-- Different Patterns; Record checkerboard pattern:
+- Record checkerboard pattern:

-- CPU Encoding; Record using host memory (CPU):
+- CPU encoding with host memory:
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between aff759b and 37f48ac.

📒 Files selected for processing (1)
  • applications/gstreamer/gst_video_recorder/README.md
🧰 Additional context used
🧠 Learnings (3)
📚 Learning: 2025-12-18T16:19:45.117Z
Learnt from: CR
Repo: nvidia-holoscan/holohub PR: 0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-12-18T16:19:45.117Z
Learning: Applies to **/(@(operators|applications|workflows|gxf_extensions))/**/README.md : Every application and operator must include a comprehensive README.md file with purpose, usage, requirements, examples, and architecture information

Applied to files:

  • applications/gstreamer/gst_video_recorder/README.md
📚 Learning: 2025-10-22T16:21:10.281Z
Learnt from: cdinea
Repo: nvidia-holoscan/holohub PR: 1170
File: applications/video_streaming/video_streaming_client/cpp/streaming_client_demo.yaml:42-49
Timestamp: 2025-10-22T16:21:10.281Z
Learning: V4L2VideoCaptureOp in Holoscan SDK performs internal conversion from the camera's native pixel format (specified by the pixel_format parameter) to RGBA8888 output, regardless of the input format (e.g., YUYV, MJPEG). When using V4L2 as a source, downstream operators should expect RGBA8888 (4-channel) output format.

Applied to files:

  • applications/gstreamer/gst_video_recorder/README.md
📚 Learning: 2025-10-22T16:33:55.411Z
Learnt from: cdinea
Repo: nvidia-holoscan/holohub PR: 1170
File: applications/video_streaming/video_streaming_client/python/streaming_client_demo_replayer.yaml:27-36
Timestamp: 2025-10-22T16:33:55.411Z
Learning: In the video_streaming bidirectional client applications (applications/video_streaming/video_streaming_client), the pipeline has two separate data paths: (1) Outgoing: source → format_converter → streaming_client INPUT (sends to server), and (2) Incoming: streaming_client OUTPUT → holoviz (receives from server). The format_converter prepares data for transmission and does NOT feed directly into holoviz visualization.

Applied to files:

  • applications/gstreamer/gst_video_recorder/README.md
🪛 LanguageTool
applications/gstreamer/gst_video_recorder/README.md

[style] ~124-~124: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...st match a supported camera resolution. For the pattern: any reasonable resolution ...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)

🪛 markdownlint-cli2 (0.18.1)
applications/gstreamer/gst_video_recorder/README.md

16-16: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3

(MD001, heading-increment)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: build-and-deploy
🔇 Additional comments (1)
applications/gstreamer/gst_video_recorder/README.md (1)

1-305: Excellent documentation improvements overall.

This README rewrite significantly improves the documentation quality:

  • Clear structure with logical section organization
  • Comprehensive command-line options documented in easy-to-read tables
  • Practical, copy-paste ready examples for common use cases
  • Detailed architecture and technical information
  • Navigation links for easy reference

The reorganization makes the documentation more accessible and aligns well with the comprehensive README requirements for Holoscan applications. The examples are particularly well done with tips and multiple scenarios covered.

Based on learnings, this README satisfies all requirements for application documentation: purpose, usage, requirements, examples, and architecture information.

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

18 files reviewed, 18 comments

Edit Code Review Agent Settings | Greptile

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In @applications/gstreamer/gst_video_recorder/README.md:
- Line 16: The "Supported Video Sources" and "Requirements" headings are
currently h3 (###) under the document's h1 and should be promoted to h2; update
the headings titled "Supported Video Sources" and "Requirements" to use h2 (##)
so they are direct children of the top-level title and the markdown heading
hierarchy is correct.
🧹 Nitpick comments (1)
applications/gstreamer/gst_video_recorder/README.md (1)

123-124: Minor style improvement: vary sentence beginnings.

The width and height descriptions have three consecutive sentences starting with "For," which slightly impacts readability.

✨ Suggested rewording
-| `-w, --width <pixels>` | Frame width. For V4L2: Must match a supported camera resolution. For the pattern: any reasonable resolution (64-8192 pixels) | `1920` |
-| `-h, --height <pixels>` | Frame height. For V4L2: Must match a supported camera resolution. For the pattern: any reasonable resolution (64-8192 pixels) | `1080` |
+| `-w, --width <pixels>` | Frame width. V4L2 source: must match a supported camera resolution. Pattern source: any reasonable resolution (64-8192 pixels) | `1920` |
+| `-h, --height <pixels>` | Frame height. V4L2 source: must match a supported camera resolution. Pattern source: any reasonable resolution (64-8192 pixels) | `1080` |
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 37f48ac and 6d55097.

📒 Files selected for processing (1)
  • applications/gstreamer/gst_video_recorder/README.md
🧰 Additional context used
🧠 Learnings (3)
📚 Learning: 2025-12-18T16:19:45.117Z
Learnt from: CR
Repo: nvidia-holoscan/holohub PR: 0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-12-18T16:19:45.117Z
Learning: Applies to **/(@(operators|applications|workflows|gxf_extensions))/**/README.md : Every application and operator must include a comprehensive README.md file with purpose, usage, requirements, examples, and architecture information

Applied to files:

  • applications/gstreamer/gst_video_recorder/README.md
📚 Learning: 2025-10-22T16:21:10.281Z
Learnt from: cdinea
Repo: nvidia-holoscan/holohub PR: 1170
File: applications/video_streaming/video_streaming_client/cpp/streaming_client_demo.yaml:42-49
Timestamp: 2025-10-22T16:21:10.281Z
Learning: V4L2VideoCaptureOp in Holoscan SDK performs internal conversion from the camera's native pixel format (specified by the pixel_format parameter) to RGBA8888 output, regardless of the input format (e.g., YUYV, MJPEG). When using V4L2 as a source, downstream operators should expect RGBA8888 (4-channel) output format.

Applied to files:

  • applications/gstreamer/gst_video_recorder/README.md
📚 Learning: 2025-10-22T16:33:55.411Z
Learnt from: cdinea
Repo: nvidia-holoscan/holohub PR: 1170
File: applications/video_streaming/video_streaming_client/python/streaming_client_demo_replayer.yaml:27-36
Timestamp: 2025-10-22T16:33:55.411Z
Learning: In the video_streaming bidirectional client applications (applications/video_streaming/video_streaming_client), the pipeline has two separate data paths: (1) Outgoing: source → format_converter → streaming_client INPUT (sends to server), and (2) Incoming: streaming_client OUTPUT → holoviz (receives from server). The format_converter prepares data for transmission and does NOT feed directly into holoviz visualization.

Applied to files:

  • applications/gstreamer/gst_video_recorder/README.md
🪛 LanguageTool
applications/gstreamer/gst_video_recorder/README.md

[style] ~124-~124: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...st match a supported camera resolution. For the pattern: any reasonable resolution ...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)

🪛 markdownlint-cli2 (0.18.1)
applications/gstreamer/gst_video_recorder/README.md

16-16: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3

(MD001, heading-increment)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: check-lint
🔇 Additional comments (1)
applications/gstreamer/gst_video_recorder/README.md (1)

1-305: Excellent documentation reorganization!

The README has been substantially improved with clear section organization, comprehensive examples, well-formatted tables, and thorough architecture documentation. The structure now follows a logical flow from quick start through detailed usage and architecture information, making it much more accessible to users.

The documentation meets all requirements for a comprehensive application README, including purpose, usage, requirements, examples, and architecture details.

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

7 files reviewed, 7 comments

Edit Code Review Agent Settings | Greptile

Copy link
Contributor

@GilShpr GilShpr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

megnvidia and others added 2 commits January 13, 2026 12:17
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Signed-off-by: megnvidia <[email protected]>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Signed-off-by: megnvidia <[email protected]>
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In @applications/gstreamer/gst_video_recorder/README.md:
- Line 16: Update the Markdown heading hierarchy by changing the "### Supported
Video Sources" and "### Requirements" headings to level-2 headings ("##
Supported Video Sources" and "## Requirements") so they follow the top-level
title correctly; locate the literal heading lines containing "Supported Video
Sources" and "Requirements" in README.md and replace the leading "###" with "##"
for each instance.
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6d55097 and 9e38414.

📒 Files selected for processing (1)
  • applications/gstreamer/gst_video_recorder/README.md
🧰 Additional context used
🧠 Learnings (3)
📚 Learning: 2025-12-18T16:19:45.117Z
Learnt from: CR
Repo: nvidia-holoscan/holohub PR: 0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-12-18T16:19:45.117Z
Learning: Applies to **/(@(operators|applications|workflows|gxf_extensions))/**/README.md : Every application and operator must include a comprehensive README.md file with purpose, usage, requirements, examples, and architecture information

Applied to files:

  • applications/gstreamer/gst_video_recorder/README.md
📚 Learning: 2025-10-22T16:21:10.281Z
Learnt from: cdinea
Repo: nvidia-holoscan/holohub PR: 1170
File: applications/video_streaming/video_streaming_client/cpp/streaming_client_demo.yaml:42-49
Timestamp: 2025-10-22T16:21:10.281Z
Learning: V4L2VideoCaptureOp in Holoscan SDK performs internal conversion from the camera's native pixel format (specified by the pixel_format parameter) to RGBA8888 output, regardless of the input format (e.g., YUYV, MJPEG). When using V4L2 as a source, downstream operators should expect RGBA8888 (4-channel) output format.

Applied to files:

  • applications/gstreamer/gst_video_recorder/README.md
📚 Learning: 2025-10-22T16:33:55.411Z
Learnt from: cdinea
Repo: nvidia-holoscan/holohub PR: 1170
File: applications/video_streaming/video_streaming_client/python/streaming_client_demo_replayer.yaml:27-36
Timestamp: 2025-10-22T16:33:55.411Z
Learning: In the video_streaming bidirectional client applications (applications/video_streaming/video_streaming_client), the pipeline has two separate data paths: (1) Outgoing: source → format_converter → streaming_client INPUT (sends to server), and (2) Incoming: streaming_client OUTPUT → holoviz (receives from server). The format_converter prepares data for transmission and does NOT feed directly into holoviz visualization.

Applied to files:

  • applications/gstreamer/gst_video_recorder/README.md
🪛 LanguageTool
applications/gstreamer/gst_video_recorder/README.md

[style] ~124-~124: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...st match a supported camera resolution. For the pattern: any reasonable resolution ...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)

🪛 markdownlint-cli2 (0.18.1)
applications/gstreamer/gst_video_recorder/README.md

16-16: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3

(MD001, heading-increment)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Greptile Review
🔇 Additional comments (9)
applications/gstreamer/gst_video_recorder/README.md (9)

1-15: Excellent introduction and overview!

The opening section effectively communicates the application's purpose, key features, and capabilities. The pipeline diagram reference and feature bullets provide a clear entry point for users.


34-41: Well-structured table of contents.

The internal navigation links are correctly formatted and provide helpful quick access to key sections.


42-53: Clear and user-friendly Quick Start section.

The side-by-side table comparing V4L2 camera and pattern generator commands makes it immediately clear how to get started with either source. The explanation of what happens during execution is also helpful.


54-76: Excellent build guidance with clear options.

The comparison table between containerized and local builds makes it easy for users to choose the appropriate approach. The explanation of install_deps.sh contents is also helpful context.


98-139: Well-organized command-line options reference.

The categorization into General, Resolution, V4L2 Camera, and Pattern Generator options makes it easy to find relevant settings. The tabular format with defaults and descriptions is clear and professional.

Note: The static analysis tool flagged repetitive use of "For" at line 123-124, but in this context, the parallel structure ("For V4L2..." / "For the pattern...") actually enhances clarity by maintaining consistent formatting across table cells.


140-149: Clear testing instructions.

The testing section is concise and provides the essential command to validate the pipeline execution.


150-231: Comprehensive and practical examples section.

The examples cover a wide range of use cases with copy-paste ready commands. The Tips subsection provides valuable guidance (using v4l2-ctl, absolute paths, encoder requirements) that will help users avoid common pitfalls.


232-304: Thorough and technically accurate architecture documentation.

The Architecture section effectively explains the application's design with clear pipeline flows, operator descriptions, and performance considerations. The Notes subsections provide valuable operational details about video sources and recording behavior.


1-304: Outstanding documentation reorganization!

This README rewrite successfully achieves the NVIDIA style guide objectives with excellent results:

Strengths:

  • Clear, logical section hierarchy with Quick Start → Installation → Usage → Examples → Architecture flow
  • Comprehensive command-line options presented in well-formatted tables
  • Practical, copy-paste ready examples for both V4L2 and pattern generator sources
  • Helpful tips and operational notes that anticipate user questions
  • Technically accurate content throughout
  • Good use of tables for comparisons (build options, command options)
  • Proper internal navigation links

⚠️ Minor issue:

  • Heading hierarchy violation at lines 16 and 21 (addressed in separate comment)

The reorganization significantly improves usability and aligns well with documentation best practices. Based on learnings, every application should include comprehensive README documentation with purpose, usage, requirements, examples, and architecture—this README exceeds those expectations.

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Signed-off-by: megnvidia <[email protected]>
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
applications/gstreamer/gst_video_recorder/README.md (1)

77-139: Fix heading level for Usage Reference section.

Line 77 uses h3 (###) but should be h2 (##) to maintain proper document hierarchy. This section is a top-level section, not a subsection of "Installation Guide".

📝 Proposed fix
-### Usage Reference
+## Usage Reference
🤖 Fix all issues with AI agents
In @applications/gstreamer/gst_video_recorder/README.md:
- Around line 16-33: The README uses non-sequential Markdown heading levels:
change the "Supported Video Sources" and "Requirements" headings (currently h3)
to be one level deeper than the preceding header so headings increment by one
(e.g., if the top-level title is h1, make "Supported Video Sources" h2 and
"Requirements" h2 or h3 as appropriate) ensuring heading hierarchy is
sequential; update those heading markers for the sections named "Supported Video
Sources" and "Requirements" accordingly.
🧹 Nitpick comments (1)
applications/gstreamer/gst_video_recorder/README.md (1)

123-124: Reduce sentence repetition for improved readability.

Lines 123-124 begin three consecutive clauses with "For", which can affect readability.

✏️ Optional rephrasing suggestion
-| `-w, --width <pixels>` | Frame width. For V4L2: Must match a supported camera resolution. For the pattern: any reasonable resolution (64-8192 pixels) | `1920` |
-| `-h, --height <pixels>` | Frame height. For V4L2: Must match a supported camera resolution. For the pattern: any reasonable resolution (64-8192 pixels) | `1080` |
+| `-w, --width <pixels>` | Frame width. V4L2 sources must match a supported camera resolution. Pattern sources accept any reasonable resolution (64-8192 pixels) | `1920` |
+| `-h, --height <pixels>` | Frame height. V4L2 sources must match a supported camera resolution. Pattern sources accept any reasonable resolution (64-8192 pixels) | `1080` |

Based on static analysis hints.

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 9e38414 and 66755a7.

📒 Files selected for processing (1)
  • applications/gstreamer/gst_video_recorder/README.md
🧰 Additional context used
🧠 Learnings (3)
📚 Learning: 2025-12-18T16:19:45.117Z
Learnt from: CR
Repo: nvidia-holoscan/holohub PR: 0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-12-18T16:19:45.117Z
Learning: Applies to **/(@(operators|applications|workflows|gxf_extensions))/**/README.md : Every application and operator must include a comprehensive README.md file with purpose, usage, requirements, examples, and architecture information

Applied to files:

  • applications/gstreamer/gst_video_recorder/README.md
📚 Learning: 2025-10-22T16:21:10.281Z
Learnt from: cdinea
Repo: nvidia-holoscan/holohub PR: 1170
File: applications/video_streaming/video_streaming_client/cpp/streaming_client_demo.yaml:42-49
Timestamp: 2025-10-22T16:21:10.281Z
Learning: V4L2VideoCaptureOp in Holoscan SDK performs internal conversion from the camera's native pixel format (specified by the pixel_format parameter) to RGBA8888 output, regardless of the input format (e.g., YUYV, MJPEG). When using V4L2 as a source, downstream operators should expect RGBA8888 (4-channel) output format.

Applied to files:

  • applications/gstreamer/gst_video_recorder/README.md
📚 Learning: 2025-10-22T16:33:55.411Z
Learnt from: cdinea
Repo: nvidia-holoscan/holohub PR: 1170
File: applications/video_streaming/video_streaming_client/python/streaming_client_demo_replayer.yaml:27-36
Timestamp: 2025-10-22T16:33:55.411Z
Learning: In the video_streaming bidirectional client applications (applications/video_streaming/video_streaming_client), the pipeline has two separate data paths: (1) Outgoing: source → format_converter → streaming_client INPUT (sends to server), and (2) Incoming: streaming_client OUTPUT → holoviz (receives from server). The format_converter prepares data for transmission and does NOT feed directly into holoviz visualization.

Applied to files:

  • applications/gstreamer/gst_video_recorder/README.md
🪛 LanguageTool
applications/gstreamer/gst_video_recorder/README.md

[style] ~124-~124: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...st match a supported camera resolution. For the pattern: any reasonable resolution ...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)

🪛 markdownlint-cli2 (0.18.1)
applications/gstreamer/gst_video_recorder/README.md

16-16: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3

(MD001, heading-increment)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Greptile Review
  • GitHub Check: build-and-deploy

@bhashemian bhashemian enabled auto-merge (squash) January 14, 2026 16:16
Copy link
Member

@bhashemian bhashemian left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Thanks @megnvidia for the improvements.

@bhashemian
Copy link
Member

@megnvidia there is an issue with DCO, and it causes conflicts when I am trying to fix. I will fix this and merge. However, for the future PR, please don't forget to sign off all your commits using -s please. Thanks

git commit -sm"the commit message"

@bhashemian bhashemian merged commit 124d602 into main Jan 14, 2026
18 checks passed
@bhashemian bhashemian deleted the mmiranda-gstream-readme-edits branch January 14, 2026 16:26
@github-project-automation github-project-automation bot moved this from In Progress to Done in Holohub Jan 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants