webkit  2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
Classes | Typedefs | Enumerations | Functions | Variables
webrtc::H264 Namespace Reference

Classes

struct  NaluIndex
 
struct  ProfileLevelId
 

Typedefs

typedef std::map< std::string, std::stringCodecParameterMap
 

Enumerations

enum  Profile {
  kProfileConstrainedBaseline, kProfileBaseline, kProfileMain, kProfileConstrainedHigh,
  kProfileHigh, kProfileConstrainedBaseline, kProfileBaseline, kProfileMain,
  kProfileConstrainedHigh, kProfileHigh
}
 
enum  NaluType : uint8_t {
  kSlice = 1, kIdr = 5, kSei = 6, kSps = 7,
  kPps = 8, kAud = 9, kEndOfSequence = 10, kEndOfStream = 11,
  kFiller = 12, kStapA = 24, kFuA = 28, kSlice = 1,
  kIdr = 5, kSei = 6, kSps = 7, kPps = 8,
  kAud = 9, kEndOfSequence = 10, kEndOfStream = 11, kFiller = 12,
  kStapA = 24, kFuA = 28
}
 
enum  SliceType : uint8_t {
  kP = 0, kB = 1, kI = 2, kSp = 3,
  kSi = 4, kP = 0, kB = 1, kI = 2,
  kSp = 3, kSi = 4
}
 
enum  Level {
  kLevel1_b = 0, kLevel1 = 10, kLevel1_1 = 11, kLevel1_2 = 12,
  kLevel1_3 = 13, kLevel2 = 20, kLevel2_1 = 21, kLevel2_2 = 22,
  kLevel3 = 30, kLevel3_1 = 31, kLevel3_2 = 32, kLevel4 = 40,
  kLevel4_1 = 41, kLevel4_2 = 42, kLevel5 = 50, kLevel5_1 = 51,
  kLevel5_2 = 52, kLevel1_b = 0, kLevel1 = 10, kLevel1_1 = 11,
  kLevel1_2 = 12, kLevel1_3 = 13, kLevel2 = 20, kLevel2_1 = 21,
  kLevel2_2 = 22, kLevel3 = 30, kLevel3_1 = 31, kLevel3_2 = 32,
  kLevel4 = 40, kLevel4_1 = 41, kLevel4_2 = 42, kLevel5 = 50,
  kLevel5_1 = 51, kLevel5_2 = 52
}
 
enum  Profile {
  kProfileConstrainedBaseline, kProfileBaseline, kProfileMain, kProfileConstrainedHigh,
  kProfileHigh, kProfileConstrainedBaseline, kProfileBaseline, kProfileMain,
  kProfileConstrainedHigh, kProfileHigh
}
 
enum  NaluType : uint8_t {
  kSlice = 1, kIdr = 5, kSei = 6, kSps = 7,
  kPps = 8, kAud = 9, kEndOfSequence = 10, kEndOfStream = 11,
  kFiller = 12, kStapA = 24, kFuA = 28, kSlice = 1,
  kIdr = 5, kSei = 6, kSps = 7, kPps = 8,
  kAud = 9, kEndOfSequence = 10, kEndOfStream = 11, kFiller = 12,
  kStapA = 24, kFuA = 28
}
 
enum  SliceType : uint8_t {
  kP = 0, kB = 1, kI = 2, kSp = 3,
  kSi = 4, kP = 0, kB = 1, kI = 2,
  kSp = 3, kSi = 4
}
 
enum  Level {
  kLevel1_b = 0, kLevel1 = 10, kLevel1_1 = 11, kLevel1_2 = 12,
  kLevel1_3 = 13, kLevel2 = 20, kLevel2_1 = 21, kLevel2_2 = 22,
  kLevel3 = 30, kLevel3_1 = 31, kLevel3_2 = 32, kLevel4 = 40,
  kLevel4_1 = 41, kLevel4_2 = 42, kLevel5 = 50, kLevel5_1 = 51,
  kLevel5_2 = 52, kLevel1_b = 0, kLevel1 = 10, kLevel1_1 = 11,
  kLevel1_2 = 12, kLevel1_3 = 13, kLevel2 = 20, kLevel2_1 = 21,
  kLevel2_2 = 22, kLevel3 = 30, kLevel3_1 = 31, kLevel3_2 = 32,
  kLevel4 = 40, kLevel4_1 = 41, kLevel4_2 = 42, kLevel5 = 50,
  kLevel5_1 = 51, kLevel5_2 = 52
}
 

Functions

std::vector< NaluIndexFindNaluIndices (const uint8_t *buffer, size_t buffer_size)
 
NaluType ParseNaluType (uint8_t data)
 
std::unique_ptr< rtc::BufferParseRbsp (const uint8_t *data, size_t length)
 
void WriteRbsp (const uint8_t *bytes, size_t length, rtc::Buffer *destination)
 
rtc::Optional< ProfileLevelIdParseProfileLevelId (const char *str)
 
rtc::Optional< ProfileLevelIdParseSdpProfileLevelId (const CodecParameterMap &params)
 
rtc::Optional< LevelSupportedLevel (int max_frame_pixel_count, float max_fps)
 
rtc::Optional< std::stringProfileLevelIdToString (const ProfileLevelId &profile_level_id)
 
void GenerateProfileLevelIdForAnswer (const CodecParameterMap &local_supported_params, const CodecParameterMap &remote_offered_params, CodecParameterMap *answer_params)
 
 TEST (H264ProfileLevelId, TestParsingInvalid)
 
 TEST (H264ProfileLevelId, TestParsingLevel)
 
 TEST (H264ProfileLevelId, TestParsingConstrainedBaseline)
 
 TEST (H264ProfileLevelId, TestParsingBaseline)
 
 TEST (H264ProfileLevelId, TestParsingMain)
 
 TEST (H264ProfileLevelId, TestParsingHigh)
 
 TEST (H264ProfileLevelId, TestParsingConstrainedHigh)
 
 TEST (H264ProfileLevelId, TestSupportedLevel)
 
 TEST (H264ProfileLevelId, TestSupportedLevelInvalid)
 
 TEST (H264ProfileLevelId, TestToString)
 
 TEST (H264ProfileLevelId, TestToStringLevel1b)
 
 TEST (H264ProfileLevelId, TestToStringRoundTrip)
 
 TEST (H264ProfileLevelId, TestToStringInvalid)
 
 TEST (H264ProfileLevelId, TestParseSdpProfileLevelIdEmpty)
 
 TEST (H264ProfileLevelId, TestParseSdpProfileLevelIdConstrainedHigh)
 
 TEST (H264ProfileLevelId, TestParseSdpProfileLevelIdInvalid)
 
 TEST (H264ProfileLevelId, TestGenerateProfileLevelIdForAnswerEmpty)
 
 TEST (H264ProfileLevelId, TestGenerateProfileLevelIdForAnswerLevelSymmetryCapped)
 
 TEST (H264ProfileLevelId, TestGenerateProfileLevelIdForAnswerConstrainedBaselineLevelAsymmetry)
 

Variables

const size_t kNaluLongStartSequenceSize = 4
 
const size_t kNaluShortStartSequenceSize = 3
 
const size_t kNaluTypeSize = 1
 
const uint8_t kNaluTypeMask = 0x1F
 

Typedef Documentation

◆ CodecParameterMap

Enumeration Type Documentation

◆ Level [1/2]

Enumerator
kLevel1_b 
kLevel1 
kLevel1_1 
kLevel1_2 
kLevel1_3 
kLevel2 
kLevel2_1 
kLevel2_2 
kLevel3 
kLevel3_1 
kLevel3_2 
kLevel4 
kLevel4_1 
kLevel4_2 
kLevel5 
kLevel5_1 
kLevel5_2 
kLevel1_b 
kLevel1 
kLevel1_1 
kLevel1_2 
kLevel1_3 
kLevel2 
kLevel2_1 
kLevel2_2 
kLevel3 
kLevel3_1 
kLevel3_2 
kLevel4 
kLevel4_1 
kLevel4_2 
kLevel5 
kLevel5_1 
kLevel5_2 

◆ Level [2/2]

Enumerator
kLevel1_b 
kLevel1 
kLevel1_1 
kLevel1_2 
kLevel1_3 
kLevel2 
kLevel2_1 
kLevel2_2 
kLevel3 
kLevel3_1 
kLevel3_2 
kLevel4 
kLevel4_1 
kLevel4_2 
kLevel5 
kLevel5_1 
kLevel5_2 
kLevel1_b 
kLevel1 
kLevel1_1 
kLevel1_2 
kLevel1_3 
kLevel2 
kLevel2_1 
kLevel2_2 
kLevel3 
kLevel3_1 
kLevel3_2 
kLevel4 
kLevel4_1 
kLevel4_2 
kLevel5 
kLevel5_1 
kLevel5_2 

◆ NaluType [1/2]

Enumerator
kSlice 
kIdr 
kSei 
kSps 
kPps 
kAud 
kEndOfSequence 
kEndOfStream 
kFiller 
kStapA 
kFuA 
kSlice 
kIdr 
kSei 
kSps 
kPps 
kAud 
kEndOfSequence 
kEndOfStream 
kFiller 
kStapA 
kFuA 

◆ NaluType [2/2]

Enumerator
kSlice 
kIdr 
kSei 
kSps 
kPps 
kAud 
kEndOfSequence 
kEndOfStream 
kFiller 
kStapA 
kFuA 
kSlice 
kIdr 
kSei 
kSps 
kPps 
kAud 
kEndOfSequence 
kEndOfStream 
kFiller 
kStapA 
kFuA 

◆ Profile [1/2]

Enumerator
kProfileConstrainedBaseline 
kProfileBaseline 
kProfileMain 
kProfileConstrainedHigh 
kProfileHigh 
kProfileConstrainedBaseline 
kProfileBaseline 
kProfileMain 
kProfileConstrainedHigh 
kProfileHigh 

◆ Profile [2/2]

Enumerator
kProfileConstrainedBaseline 
kProfileBaseline 
kProfileMain 
kProfileConstrainedHigh 
kProfileHigh 
kProfileConstrainedBaseline 
kProfileBaseline 
kProfileMain 
kProfileConstrainedHigh 
kProfileHigh 

◆ SliceType [1/2]

Enumerator
kP 
kB 
kI 
kSp 
kSi 
kP 
kB 
kI 
kSp 
kSi 

◆ SliceType [2/2]

Enumerator
kP 
kB 
kI 
kSp 
kSi 
kP 
kB 
kI 
kSp 
kSi 

Function Documentation

◆ FindNaluIndices()

std::vector< NaluIndex > webrtc::H264::FindNaluIndices ( const uint8_t buffer,
size_t  buffer_size 
)

◆ GenerateProfileLevelIdForAnswer()

void webrtc::H264::GenerateProfileLevelIdForAnswer ( const CodecParameterMap local_supported_params,
const CodecParameterMap remote_offered_params,
CodecParameterMap answer_params 
)

◆ ParseNaluType()

NaluType webrtc::H264::ParseNaluType ( uint8_t  data)

◆ ParseProfileLevelId()

rtc::Optional< ProfileLevelId > webrtc::H264::ParseProfileLevelId ( const char *  str)

◆ ParseRbsp()

std::unique_ptr< rtc::Buffer > webrtc::H264::ParseRbsp ( const uint8_t data,
size_t  length 
)

◆ ParseSdpProfileLevelId()

rtc::Optional< ProfileLevelId > webrtc::H264::ParseSdpProfileLevelId ( const CodecParameterMap params)

◆ ProfileLevelIdToString()

rtc::Optional< std::string > webrtc::H264::ProfileLevelIdToString ( const ProfileLevelId profile_level_id)

◆ SupportedLevel()

rtc::Optional< Level > webrtc::H264::SupportedLevel ( int  max_frame_pixel_count,
float  max_fps 
)

◆ TEST() [1/19]

webrtc::H264::TEST ( H264ProfileLevelId  ,
TestParsingInvalid   
)

◆ TEST() [2/19]

webrtc::H264::TEST ( H264ProfileLevelId  ,
TestParsingLevel   
)

◆ TEST() [3/19]

webrtc::H264::TEST ( H264ProfileLevelId  ,
TestParsingConstrainedBaseline   
)

◆ TEST() [4/19]

webrtc::H264::TEST ( H264ProfileLevelId  ,
TestParsingBaseline   
)

◆ TEST() [5/19]

webrtc::H264::TEST ( H264ProfileLevelId  ,
TestParsingMain   
)

◆ TEST() [6/19]

webrtc::H264::TEST ( H264ProfileLevelId  ,
TestParsingHigh   
)

◆ TEST() [7/19]

webrtc::H264::TEST ( H264ProfileLevelId  ,
TestParsingConstrainedHigh   
)

◆ TEST() [8/19]

webrtc::H264::TEST ( H264ProfileLevelId  ,
TestSupportedLevel   
)

◆ TEST() [9/19]

webrtc::H264::TEST ( H264ProfileLevelId  ,
TestSupportedLevelInvalid   
)

◆ TEST() [10/19]

webrtc::H264::TEST ( H264ProfileLevelId  ,
TestToString   
)

◆ TEST() [11/19]

webrtc::H264::TEST ( H264ProfileLevelId  ,
TestToStringLevel1b   
)

◆ TEST() [12/19]

webrtc::H264::TEST ( H264ProfileLevelId  ,
TestToStringRoundTrip   
)

◆ TEST() [13/19]

webrtc::H264::TEST ( H264ProfileLevelId  ,
TestToStringInvalid   
)

◆ TEST() [14/19]

webrtc::H264::TEST ( H264ProfileLevelId  ,
TestParseSdpProfileLevelIdEmpty   
)

◆ TEST() [15/19]

webrtc::H264::TEST ( H264ProfileLevelId  ,
TestParseSdpProfileLevelIdConstrainedHigh   
)

◆ TEST() [16/19]

webrtc::H264::TEST ( H264ProfileLevelId  ,
TestParseSdpProfileLevelIdInvalid   
)

◆ TEST() [17/19]

webrtc::H264::TEST ( H264ProfileLevelId  ,
TestGenerateProfileLevelIdForAnswerEmpty   
)

◆ TEST() [18/19]

webrtc::H264::TEST ( H264ProfileLevelId  ,
TestGenerateProfileLevelIdForAnswerLevelSymmetryCapped   
)

◆ TEST() [19/19]

webrtc::H264::TEST ( H264ProfileLevelId  ,
TestGenerateProfileLevelIdForAnswerConstrainedBaselineLevelAsymmetry   
)

◆ WriteRbsp()

void webrtc::H264::WriteRbsp ( const uint8_t bytes,
size_t  length,
rtc::Buffer destination 
)

Variable Documentation

◆ kNaluLongStartSequenceSize

const size_t webrtc::H264::kNaluLongStartSequenceSize = 4

◆ kNaluShortStartSequenceSize

const size_t webrtc::H264::kNaluShortStartSequenceSize = 3

◆ kNaluTypeMask

const uint8_t webrtc::H264::kNaluTypeMask = 0x1F

◆ kNaluTypeSize

const size_t webrtc::H264::kNaluTypeSize = 1