patch:
set SDP media encode-handler to NULL on deref adds a function to make SDP media ignore formats. This is useful for example with BFCP where the format list is to be ignored.
This commit is contained in:
parent
d5f9620f63
commit
7f08d0c8b4
3 changed files with 19 additions and 1 deletions
|
@ -89,6 +89,7 @@ int sdp_media_add(struct sdp_media **mp, struct sdp_session *sess,
|
|||
const char *name, uint16_t port, const char *proto);
|
||||
void sdp_media_set_encode_handler(struct sdp_media *m, sdp_media_enc_h *ench,
|
||||
void *arg);
|
||||
void sdp_media_set_fmt_ignore(struct sdp_media *m, bool fmt_ignore);
|
||||
void sdp_media_set_disabled(struct sdp_media *m, bool disabled);
|
||||
void sdp_media_set_lport(struct sdp_media *m, uint16_t port);
|
||||
void sdp_media_set_laddr(struct sdp_media *m, const struct sa *laddr);
|
||||
|
|
|
@ -26,6 +26,7 @@ static void destructor(void *arg)
|
|||
|
||||
if (m->le.list) {
|
||||
m->disabled = true;
|
||||
m->ench = NULL;
|
||||
mem_ref(m);
|
||||
return;
|
||||
}
|
||||
|
@ -216,7 +217,7 @@ void sdp_media_align_formats(struct sdp_media *m, bool offer)
|
|||
struct sdp_format *rfmt, *lfmt;
|
||||
struct le *rle, *lle;
|
||||
|
||||
if (!m || m->disabled || !sa_port(&m->raddr))
|
||||
if (!m || m->disabled || !sa_port(&m->raddr) || m->fmt_ignore)
|
||||
return;
|
||||
|
||||
for (lle=m->lfmtl.head; lle; lle=lle->next) {
|
||||
|
@ -307,6 +308,21 @@ void sdp_media_set_encode_handler(struct sdp_media *m, sdp_media_enc_h *ench,
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set an SDP Media line to ignore formats
|
||||
*
|
||||
* @param m SDP Media line
|
||||
* @param fmt_ignore True for ignore formats, otherwise false
|
||||
*/
|
||||
void sdp_media_set_fmt_ignore(struct sdp_media *m, bool fmt_ignore)
|
||||
{
|
||||
if (!m)
|
||||
return;
|
||||
|
||||
m->fmt_ignore = fmt_ignore;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set an SDP Media line to enabled/disabled
|
||||
*
|
||||
|
|
|
@ -43,6 +43,7 @@ struct sdp_media {
|
|||
void *arg;
|
||||
enum sdp_dir ldir;
|
||||
enum sdp_dir rdir;
|
||||
bool fmt_ignore;
|
||||
bool disabled;
|
||||
int dynpt;
|
||||
};
|
||||
|
|
Loading…
Add table
Reference in a new issue