Skip to content

Abhi/working-h264-passthrough#387

Open
vabhi2007 wants to merge 78 commits into
masterfrom
abhi/workingH264Passthrough
Open

Abhi/working-h264-passthrough#387
vabhi2007 wants to merge 78 commits into
masterfrom
abhi/workingH264Passthrough

Conversation

@vabhi2007

Copy link
Copy Markdown

This PR adds functionality for h.264 passthrough for cameras that directly output H. 264, along with camera format support for the existing MJPEG pipeline.

Main Improvements:

Added new GStreamer pipeline that pulls encoded NAL units directly from cam devices
Bypasses CPU decode and encode in the full ArUco OpenCV pipeline
Checks new opencv_enabled flag in camera config to use new/existing pipeline

  • 0 to use opencv, 1 to use passthrough pipeline
  • OpenCV pipeline now supports mjpeg, yuyv, and h264
  • If passthrough pipeline is used on anything other than h264, it fallsback to OpenCV pipeline
    New pipeline in h264PassthroughSource.cpp

Introduces H264PassthroughSource for direct H264 streaming from cameras when supported, bypassing CPU encoding. Updates camera configuration files and parsing to include an 'opencv_enabled' flag, allowing selection between OpenCV-based and pass-through streaming. Refactors CameraStreamTask to handle both streaming modes and updates related data structures and logic accordingly.
Integrated GStreamer by finding the required packages and linking their include directories and libraries to the camera shared library. Added new source files CameraStreamProperties.cpp and H264PassthroughSource.cpp to the camera library.
…ies files

Replaces the CameraStreamProperties helper and its header with direct OpenCV FileStorage usage for reading camera stream properties. Updates Camera.cpp and MissionControlTasks.cpp to construct stream properties inline, and moves the CameraStreamProperties struct definition to H264PassthroughSource.h. Also adds new config keys for image width and height in CameraConfig.h and modernizes the CMakeLists.txt for improved dependency and build configuration management.
Changed the format of the hand camera from 'image/jpeg' to 'video/x-h264' in the calibration config to support video streaming.
Update MissionControlTasks.cpp

Update MissionControlTasks.cpp

Update MissionControlTasks.cpp
Changed camera_id for hand and mast cameras to new values and enabled OpenCV for the wrist camera. These updates ensure correct device mapping and processing capabilities.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant