xbmc
Classes | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
CBitstreamConverter Class Reference
Collaboration diagram for CBitstreamConverter:
Collaboration graph
[legend]

Classes

struct  omx_bitstream_ctx
 

Public Member Functions

bool Open (enum AVCodecID codec, uint8_t *in_extradata, int in_extrasize, bool to_annexb)
 
void Close (void)
 
bool NeedConvert (void) const
 
bool Convert (uint8_t *pData, int iSize)
 
uint8_t * GetConvertBuffer (void) const
 
int GetConvertSize () const
 
uint8_t * GetExtraData (void) const
 
int GetExtraSize () const
 
void ResetStartDecode (void)
 
bool CanStartDecode () const
 

Static Public Member Functions

static bool mpeg2_sequence_header (const uint8_t *data, const uint32_t size, mpeg2_sequence *sequence)
 

Protected Types

typedef struct CBitstreamConverter::omx_bitstream_ctx omx_bitstream_ctx
 

Protected Member Functions

int isom_write_avcc (AVIOContext *pb, const uint8_t *data, int len)
 
bool IsIDR (uint8_t unit_type)
 
bool IsSlice (uint8_t unit_type)
 
bool BitstreamConvertInitAVC (void *in_extradata, int in_extrasize)
 
bool BitstreamConvertInitHEVC (void *in_extradata, int in_extrasize)
 
bool BitstreamConvert (uint8_t *pData, int iSize, uint8_t **poutbuf, int *poutbuf_size)
 

Static Protected Member Functions

static int avc_parse_nal_units (AVIOContext *pb, const uint8_t *buf_in, int size)
 
static int avc_parse_nal_units_buf (const uint8_t *buf_in, uint8_t **buf, int *size)
 
static void BitstreamAllocAndCopy (uint8_t **poutbuf, int *poutbuf_size, const uint8_t *sps_pps, uint32_t sps_pps_size, const uint8_t *in, uint32_t in_size, uint8_t nal_type)
 

Protected Attributes

uint8_t * m_convertBuffer
 
int m_convertSize
 
uint8_t * m_inputBuffer
 
int m_inputSize
 
uint32_t m_sps_pps_size
 
omx_bitstream_ctx m_sps_pps_context
 
bool m_convert_bitstream
 
bool m_to_annexb
 
uint8_t * m_extradata
 
int m_extrasize
 
bool m_convert_3byteTo4byteNALSize
 
bool m_convert_bytestream
 
AVCodecID m_codec
 
bool m_start_decode
 

Member Function Documentation

◆ Open()

bool CBitstreamConverter::Open ( enum AVCodecID  codec,
uint8_t *  in_extradata,
int  in_extrasize,
bool  to_annexb 
)

It seems the extradata is encoded as hvcC format. Temporarily, we support configurationVersion==0 until 14496-15 3rd is finalized. When finalized, configurationVersion will be 1 and we can recognize hvcC by checking if extradata[0]==1 or not.

Todo:
convert annexb to bitstream format

The documentation for this class was generated from the following files: