oa::VideoTranscoder

Synchronous frame transcoder. The source packet is decoded on the vulkan video queue, converted to RGBA on compute, then submitted to the vulkan encoder without a CPU pixel round-trip. Container demux/mux remains the caller's responsibility.

Public Methods

oa::Status oa::VideoTranscoder::close()
oa::Status oa::VideoTranscoder::transcodeFrame(const oa::Span<const oa::U8> & inBitstream, EncodedVideoPacket & outFrame)

Static Public Methods

static oa::Result<VideoTranscoder> oa::VideoTranscoder::create(Engine & inRt, const VideoProfile & inDecodeProfile, const VideoEncodeProfile & inEncodeProfile)

Public Method Documentation

oa::Status oa::VideoTranscoder::close()
Completes both codec sessions and reports the first shutdown failure.

Returns

oa::Status

The declared return value.

oa::Status oa::VideoTranscoder::transcodeFrame( const oa::Span<const oa::U8> & inBitstream, EncodedVideoPacket & outFrame )
No public source comment is attached to this declaration.

Parameters

inBitstream
const oa::Span<const oa::U8> &

outFrame
EncodedVideoPacket &

Returns

oa::Status

The declared return value.

static oa::Result<VideoTranscoder> oa::VideoTranscoder::create( Engine & inRt, const VideoProfile & inDecodeProfile, const VideoEncodeProfile & inEncodeProfile )
No public source comment is attached to this declaration.

Parameters

inRt
Engine &

inDecodeProfile
const VideoProfile &

inEncodeProfile
const VideoEncodeProfile &

Returns

oa::Result<VideoTranscoder>

The declared return value.