mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-05 04:11:08 +00:00
rtp_engine.h: No sense allowing payload types larger than RFC allows.
* Tweaked add_static_payload() to not use magic numbers. Change-Id: I1719ff0f6d3ce537a91572501eae5bcd912a420b
This commit is contained in:
@@ -78,14 +78,13 @@ extern "C" {
|
||||
#include "asterisk/stasis.h"
|
||||
#include "asterisk/vector.h"
|
||||
|
||||
/* Maximum number of payloads supported */
|
||||
#if defined(LOW_MEMORY)
|
||||
/*! Maximum number of payload types RTP can support. */
|
||||
#define AST_RTP_MAX_PT 128
|
||||
#else
|
||||
#define AST_RTP_MAX_PT 196
|
||||
#endif
|
||||
|
||||
/* Maximum number of generations */
|
||||
/*! First dynamic RTP payload type */
|
||||
#define AST_RTP_PT_FIRST_DYNAMIC 96
|
||||
|
||||
/*! Maximum number of generations */
|
||||
#define AST_RED_MAX_GENERATION 5
|
||||
|
||||
/*!
|
||||
|
@@ -1740,23 +1740,25 @@ static void set_next_mime_type(struct ast_format *format, int rtp_code, const ch
|
||||
static void add_static_payload(int map, struct ast_format *format, int rtp_code)
|
||||
{
|
||||
int x;
|
||||
|
||||
ast_assert(map < ARRAY_LEN(static_RTP_PT));
|
||||
|
||||
ast_rwlock_wrlock(&static_RTP_PT_lock);
|
||||
if (map < 0) {
|
||||
/* find next available dynamic payload slot */
|
||||
for (x = 96; x < 127; x++) {
|
||||
for (x = AST_RTP_PT_FIRST_DYNAMIC; x < AST_RTP_MAX_PT; ++x) {
|
||||
if (!static_RTP_PT[x].asterisk_format && !static_RTP_PT[x].rtp_code) {
|
||||
map = x;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (map < 0) {
|
||||
ast_log(LOG_WARNING, "No Dynamic RTP mapping available for format %s\n",
|
||||
ast_format_get_name(format));
|
||||
ast_rwlock_unlock(&static_RTP_PT_lock);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (format) {
|
||||
static_RTP_PT[map].asterisk_format = 1;
|
||||
|
Reference in New Issue
Block a user