40#define H264_ATTR_KEY_UNSET UINT8_MAX 
   45#define H264_MAX_SPS_PPS_SIZE 16 
   49#define H264_MAX_SPS_PPS_SIZE_SCAN_LIMIT "15" 
  114#define DETERMINE_JOINT(joint, attr1, attr2, field) (joint->field = (attr1 && attr1->field) ? attr1->field : (attr2 && attr2->field) ? attr2->field : 0) 
  183    while ((attrib = 
strsep(&attribs, 
";"))) {
 
  185        unsigned long int val2;
 
  189        if (sscanf(attrib, 
"profile-level-id=%lx", &val2) == 1) {
 
  192            attr->
LEVEL = (val2 & 0xFF);
 
  195        } 
else if (sscanf(attrib, 
"max-mbps=%30u", &
val) == 1) {
 
  197        } 
else if (sscanf(attrib, 
"max-fs=%30u", &
val) == 1) {
 
  199        } 
else if (sscanf(attrib, 
"max-cpb=%30u", &
val) == 1) {
 
  201        } 
else if (sscanf(attrib, 
"max-dpb=%30u", &
val) == 1) {
 
  203        } 
else if (sscanf(attrib, 
"max-br=%30u", &
val) == 1) {
 
  205        } 
else if (sscanf(attrib, 
"max-smbps=%30u", &
val) == 1) {
 
  207        } 
else if (sscanf(attrib, 
"max-fps=%30u", &
val) == 1) {
 
  209        } 
else if (sscanf(attrib, 
"redundant-pic-cap=%30u", &
val) == 1) {
 
  211        } 
else if (sscanf(attrib, 
"parameter-add=%30u", &
val) == 1) {
 
  213        } 
else if (sscanf(attrib, 
"packetization-mode=%30u", &
val) == 1) {
 
  215        } 
else if (sscanf(attrib, 
"sprop-interleaving-depth=%30u", &
val) == 1) {
 
  217        } 
else if (sscanf(attrib, 
"sprop-deint-buf-req=%30u", &
val) == 1) {
 
  219        } 
else if (sscanf(attrib, 
"deint-buf-cap=%30u", &
val) == 1) {
 
  221        } 
else if (sscanf(attrib, 
"sprop-init-buf-time=%30u", &
val) == 1) {
 
  223        } 
else if (sscanf(attrib, 
"sprop-max-don-diff=%30u", &
val) == 1) {
 
  225        } 
else if (sscanf(attrib, 
"max-rcmd-nalu-size=%30u", &
val) == 1) {
 
  227        } 
else if (sscanf(attrib, 
"level-asymmetry-allowed=%30u", &
val) == 1) {
 
 
  235#define APPEND_IF_NOT_H264_UNSET(field, str, name) do {     \ 
  236    if (field != H264_ATTR_KEY_UNSET) { \ 
  238            ast_str_append(str, 0, ";");    \ 
  239        } else if (0 < ast_str_append(str, 0, "a=fmtp:%u ", payload)) { \ 
  242        ast_str_append(str, 0, "%s=%u", name, field);   \ 
 
  246#define APPEND_IF_NONZERO(field, str, name) do {        \ 
  249            ast_str_append(str, 0, ";");    \ 
  250        } else if (0 < ast_str_append(str, 0, "a=fmtp:%u ", payload)) { \ 
  253        ast_str_append(str, 0, "%s=%u", name, field);   \ 
 
char * strsep(char **str, const char *delims)
Asterisk main include file. File version handling, generic pbx functions.
#define ast_strdupa(s)
duplicate a string in memory from the stack
#define ast_calloc(num, len)
A wrapper for calloc()
Asterisk module definitions.
#define AST_MODULE_INFO(keystr, flags_to_set, desc, fields...)
@ AST_MODULE_SUPPORT_CORE
#define ASTERISK_GPL_KEY
The text the key() function should return.
@ AST_MODULE_LOAD_SUCCESS
@ AST_MODULE_LOAD_DECLINE
Module has failed to load, may be in an inconsistent state.
int ast_str_append(struct ast_str **buf, ssize_t max_len, const char *fmt,...)
Append to a thread local dynamic string.
static force_inline int attribute_pure ast_strlen_zero(const char *s)
void ast_copy_string(char *dst, const char *src, size_t size)
Size-limited null-terminating string copy.
char * ast_strip(char *s)
Strip leading/trailing whitespace from a string.
Support for dynamic strings.
unsigned int MAX_RCMD_NALU_SIZE
unsigned int SPROP_INTERLEAVING_DEPTH
unsigned int SPROP_DEINT_BUF_REQ
unsigned int LEVEL_ASYMMETRY_ALLOWED
unsigned int REDUNDANT_PIC_CAP
unsigned int DEINT_BUF_CAP
unsigned int PACKETIZATION_MODE
char SPS[H264_MAX_SPS_PPS_SIZE]
unsigned int PARAMETER_ADD
char PPS[H264_MAX_SPS_PPS_SIZE]
unsigned int SPROP_INIT_BUF_TIME
unsigned int SPROP_MAX_DON_DIFF