Add pre-encoded video passthrough publish path#1223
Draft
chenosaurus wants to merge 1 commit into
Draft
Conversation
…ebrtc webrtc-sys gains a passthrough video encoder and an encoded video frame buffer so pre-encoded H264/H265/VP8/VP9/AV1 access units can flow through the WebRTC pipeline without re-encoding, with rate-control targets and keyframe requests forwarded back to the encoded source. libwebrtc exposes the corresponding public API: EncodedVideoFrame, EncodedVideoCodec, EncodedFrameType, EncodedRateControl, and VideoEncoderBackend::PreEncoded. The Jetson AV1 bitstream helpers are now compiled on all platforms for AV1 ingest validation. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Contributor
ChangesetThe following package versions will be affected by this PR:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains core SDK changes that add the ability for the Rust-SDK to ingest pre-encoded video frames. This is only the core plumbing to allow these frames to be
capturedand passed thru a passthru encoder.passthrough_video_encoder.{h,cpp}: awebrtc::VideoEncoderthat passes pre-encoded H264/H265/VP8/VP9/AV1 access units through without re-encoding, forwarding WebRTC rate-control targets and keyframe requests back to the encoded source.encoded_video_frame_buffer.{h,cpp}: carries encoded payloads through theVideoFrameBufferpipeline.video_track.{h,cpp,rs},video_encoder_factory.cpp,rtp_sender.cpp: plumbing to capture encoded frames into a source and select the passthrough encoder.jetson/jetson_av1_bitstream.{h,cpp}now compiles on all platforms (was Jetson-only) for AV1 OBU validation on ingest; small fixes in the Jetson AV1 encoder path.EncodedVideoFrame,EncodedVideoCodec,EncodedFrameType,EncodedRateControl,VideoEncoderBackend::PreEncoded,capture_encoded_frameon the native video source.