CVB++ 15.0
Cvb::CodecBridge Namespace Reference

Namespace for encoding and decoding videos. More...

Classes

class  CodecConfig
 A configuration defining a codec. More...
 
class  Decoder
 A decoder for video frames. More...
 
class  Encoder
 An encoder for video frames. More...
 
class  FormatConverter
 A format converter for video frames. More...
 
class  Frame
 A video frame for encoding and decoding. More...
 
class  InputContainer
 A container file for reading encoded videos from disk. More...
 
class  OutputContainer
 A container file for writing encoded videos to disk. More...
 
class  Packet
 A packet that holds encoded data frame data. More...
 
class  Rational
 A pair of rational numbers. More...
 

Typedefs

using DecoderPtr = std::shared_ptr< Decoder >
 Convenience shared pointer for Decoder.
 
using EncoderPtr = std::shared_ptr< Encoder >
 Convenience shared pointer for Encoder.
 
using CodecConfigPtr = std::shared_ptr< CodecConfig >
 Convenience shared pointer for CodecConfig.
 
using FormatConverterPtr = std::shared_ptr< FormatConverter >
 Convenience shared pointer for FormatConverter.
 
using FramePtr = std::shared_ptr< Frame >
 Convenience shared pointer for Frame.
 
using InputContainerPtr = std::shared_ptr< InputContainer >
 Convenience shared pointer for InputContainer.
 
using OutputContainerPtr = std::shared_ptr< OutputContainer >
 Convenience shared pointer for OutputContainer.
 
using PacketPtr = std::shared_ptr< Packet >
 Convenience shared pointer for Packet.
 

Enumerations

enum class  LogLevel {
  Quiet = CExports::CVCBLL_Quiet , Panic = CExports::CVCBLL_Panic , Fatal = CExports::CVCBLL_Fatal , Error = CExports::CVCBLL_Error ,
  Warning = CExports::CVCBLL_Warning , Info = CExports::CVCBLL_Info , Verbose = CExports::CVCBLL_Verbose , Debug = CExports::CVCBLL_Debug ,
  Trace = CExports::CVCBLL_Trace
}
 Log level for the codecs. More...
 
enum class  PixelFormat {
  None = CExports::CVCBPF_None , YUV420P = CExports::CVCBPF_YUV420P , YUYV422 = CExports::CVCBPF_YUYV422 , RGB24 = CExports::CVCBPF_RGB24 ,
  BGR24 = CExports::CVCBPF_BGR24 , YUV422P = CExports::CVCBPF_YUV422P , YUV444P = CExports::CVCBPF_YUV444P , GRAY8 = CExports::CVCBPF_GRAY8 ,
  NV12 = CExports::CVCBPF_NV12 , NV21 = CExports::CVCBPF_NV21 , RGBA = CExports::CVCBPF_RGBA , BGRA = CExports::CVCBPF_BGRA ,
  YUV444P16LE = CExports::CVCBPF_YUV444P16LE , DXVA2_VLD = CExports::CVCBPF_DXVA2_VLD , YUV420P10LE = CExports::CVCBPF_YUV420P10LE , YUV422P10LE = CExports::CVCBPF_YUV422P10LE ,
  YUV444P10LE = CExports::CVCBPF_YUV444P10LE , GBRP = CExports::CVCBPF_GBRP , GBRP10LE = CExports::CVCBPF_GBRP10LE , GBRP16LE = CExports::CVCBPF_GBRP16LE ,
  NV16 = CExports::CVCBPF_NV16 , NV20LE = CExports::CVCBPF_NV20LE , QSV = CExports::CVCBPF_QSV , CUDA = CExports::CVCBPF_CUDA ,
  RGB0 = CExports::CVCBPF_RGB0 , BGR0 = CExports::CVCBPF_BGR0 , YUV420P12LE = CExports::CVCBPF_YUV420P12LE , YUV422P12LE = CExports::CVCBPF_YUV422P12LE ,
  YUV444P12LE = CExports::CVCBPF_YUV444P12LE , GBRP12LE = CExports::CVCBPF_GBRP12LE , P010LE = CExports::CVCBPF_P010LE , GRAY12LE = CExports::CVCBPF_GRAY12LE ,
  GRAY10LE = CExports::CVCBPF_GRAY10LE , P016LE = CExports::CVCBPF_P016LE , D3D11 = CExports::CVCBPF_D3D11 , Y210LE = CExports::CVCBPF_Y210LE ,
  X2RGB10LE = CExports::CVCBPF_X2RGB10LE , X2BGR10LE = CExports::CVCBPF_X2BGR10LE
}
 Subset of FFmpeg pixel formats. More...
 
enum class  Interpolation { BilinearFast = CExports::CVCBI_BilinearFast , Bilinear = CExports::CVCBI_Bilinear , Bicubic = CExports::CVCBI_Bicubic }
 Interpolation method when scaling frames. More...
 
enum class  CodecStatus { Ok = CExports::CVCBCS_Ok , ReadoutRequired = CExports::CVCBCS_ReadoutRequired }
 Status of the encoder/decoder after sending data. More...
 

Detailed Description

Namespace for encoding and decoding videos.

This module does not implement any codecs. However it will work as a dynamic bridge to codecs available in the system. If no codecs are available this namespace is of very limited use.

Remarks
CMake users: Link to imported target CVB::CvbCodecBridge

Enumeration Type Documentation

◆ CodecStatus

enum class CodecStatus
strong

Status of the encoder/decoder after sending data.

Enumerator
Ok 

The data was accepted.

ReadoutRequired 

The data was not accepted. Receive the processed data fist.

◆ Interpolation

enum class Interpolation
strong

Interpolation method when scaling frames.

The integer values of these enums are equal to the FFmpeg defines.

Enumerator
BilinearFast 

Equal to FAST_BILINEAR.

Bilinear 

Equal to SWS_BILINEAR.

Bicubic 

Equal to SWS_BICUBIC.

◆ LogLevel

enum class LogLevel
strong

Log level for the codecs.

The integer values of these enums are equal to the FFmpeg defines.

Attention
The implementation of the codec may ignore the level.
Enumerator
Quiet 

Equal to FFmpeg level: AV_LOG_QUIET.

Panic 

Equal to FFmpeg level: AV_LOG_PANIC.

Fatal 

Equal to FFmpeg level: AV_LOG_FATAL.

Error 

Equal to FFmpeg level: AV_LOG_ERROR.

Warning 

Equal to FFmpeg level: AV_LOG_WARNING.

Info 

Equal to FFmpeg level: AV_LOG_INFO.

Verbose 

Equal to FFmpeg level: AV_LOG_VERBOSE.

Debug 

Equal to FFmpeg level: AV_LOG_DEBUG.

Trace 

Equal to FFmpeg level: AV_LOG_TRACE.

◆ PixelFormat

enum class PixelFormat
strong

Subset of FFmpeg pixel formats.

The integer values of these enums are equal to FFmpeg.

Enumerator
None 

Ivalid format. Equal to PIX_FMT_NONE. Corresponds to PfncFormat::InvalidPixelFormat.

YUV420P 

Equal to PIX_FMT_YUV420P.

YUYV422 

Equal to PIX_FMT_YUYV422.

RGB24 

Equal to PIX_FMT_RGB24. Corresponds to PfncFormat::RGB8.

BGR24 

Equal to PIX_FMT_BGR24. Corresponds to PfncFormat::BGR8.

YUV422P 

Equal to PIX_FMT_YUV422P.

YUV444P 

Equal to PIX_FMT_YUV444P.

GRAY8 

Equal to PIX_FMT_GRAY8. Corresponds to PfncFormat::Mono8.

NV12 

Equal to PIX_FMT_NV12.

NV21 

Equal to PIX_FMT_NV21.

RGBA 

Equal to PIX_FMT_RGBA. Corresponds to PfncFormat::RGBa8.

BGRA 

Equal to PIX_FMT_BGRA. Corresponds to PfncFormat::BGRa8.

YUV444P16LE 

Equal to PIX_FMT_YUV444P16LE.

DXVA2_VLD 

Equal to PIX_FMT_DXVA2_VLD.

YUV420P10LE 

Equal to PIX_FMT_YUV420P10LE.

YUV422P10LE 

Equal to PIX_FMT_YUV422P10LE.

YUV444P10LE 

Equal to PIX_FMT_YUV444P10LE.

GBRP 

Equal to PIX_FMT_GBRP. Corresponds to PfncFormat::BayerGB8.

GBRP10LE 

Equal to PIX_FMT_GBRP10LE. Corresponds to PfncFormat::BayerGB10.

GBRP16LE 

Equal to PIX_FMT_GBRP16LE. Corresponds to PfncFormat::BayerGB16.

NV16 

Equal to PIX_FMT_NV16.

NV20LE 

Equal to PIX_FMT_NV20LE.

QSV 

Equal to PIX_FMT_QSV.

CUDA 

Equal to PIX_FMT_CUDA.

RGB0 

Equal to PIX_FMT_RGB0. Corresponds to PfncFormat::RGBa8, but the alpah channel is ignored.

BGR0 

Equal to PIX_FMT_BGR0. Corresponds to PfncFormat::BGRa8, but the alpah channel is ignored.

YUV420P12LE 

Equal to PIX_FMT_YUV420P12LE.

YUV422P12LE 

Equal to PIX_FMT_YUV422P12LE.

YUV444P12LE 

Equal to PIX_FMT_YUV444P12LE.

GBRP12LE 

Equal to PIX_FMT_GBRP12LE.

P010LE 

Equal to PIX_FMT_P010LE.

GRAY12LE 

Equal to PIX_FMT_GRAY12LE. Corresponds to PfncFormat::Mono12.

GRAY10LE 

Equal to PIX_FMT_GRAY10LE. Corresponds to PfncFormat::Mono10.

P016LE 

Equal to PIX_FMT_P016LE.

D3D11 

Equal to PIX_FMT_D3D11.

Y210LE 

Equal to PIX_FMT_Y210LE.

X2RGB10LE 

Equal to PIX_FMT_X2RGB10LE.

X2BGR10LE 

Equal to PIX_FMT_X2BGR10LE.