~ubuntu-branches/ubuntu/utopic/ffmpeg-debian/utopic

« back to all changes in this revision

Viewing changes to libavformat/sdp.c

  • Committer: Bazaar Package Importer
  • Author(s): Reinhard Tartler
  • Date: 2009-01-20 09:20:53 UTC
  • mfrom: (1.1.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20090120092053-izz63p40hc98qfgp
Tags: 3:0.svn20090119-1ubuntu1
* merge from debian. LP: #318501
* new version fixes CVE-2008-3230, LP: #253767

Show diffs side-by-side

added added

removed removed

Lines of Context:
25
25
#include "avc.h"
26
26
#include "rtp.h"
27
27
 
28
 
#ifdef CONFIG_RTP_MUXER
 
28
#if CONFIG_RTP_MUXER
29
29
#define MAX_EXTRADATA_SIZE ((INT_MAX - 10) / 2)
30
30
 
31
31
struct sdp_session_level {
43
43
    const char *name;     /**< session name (can be an empty string) */
44
44
};
45
45
 
46
 
static void dest_write(char *buff, int size, const char *dest_addr, int ttl)
 
46
static void sdp_write_address(char *buff, int size, const char *dest_addr, int ttl)
47
47
{
48
48
    if (dest_addr) {
49
49
        if (ttl > 0) {
65
65
                            s->id, s->version, s->src_addr,
66
66
                            s->start_time, s->end_time,
67
67
                            s->name[0] ? s->name : "No Name");
68
 
    dest_write(buff, size, s->dst_addr, s->ttl);
 
68
    sdp_write_address(buff, size, s->dst_addr, s->ttl);
69
69
}
70
70
 
71
 
static int get_address(char *dest_addr, int size, int *ttl, const char *url)
 
71
static int sdp_get_address(char *dest_addr, int size, int *ttl, const char *url)
72
72
{
73
73
    int port;
74
74
    const char *p;
157
157
    return config;
158
158
}
159
159
 
160
 
static char *sdp_media_attributes(char *buff, int size, AVCodecContext *c, int payload_type)
 
160
static char *sdp_write_media_attributes(char *buff, int size, AVCodecContext *c, int payload_type)
161
161
{
162
162
    char *config = NULL;
163
163
 
246
246
    }
247
247
 
248
248
    av_strlcatf(buff, size, "m=%s %d RTP/AVP %d\r\n", type, port, payload_type);
249
 
    dest_write(buff, size, dest_addr, ttl);
 
249
    sdp_write_address(buff, size, dest_addr, ttl);
250
250
    if (c->bit_rate) {
251
251
        av_strlcatf(buff, size, "b=AS:%d\r\n", c->bit_rate / 1000);
252
252
    }
253
253
 
254
 
    sdp_media_attributes(buff, size, c, payload_type);
 
254
    sdp_write_media_attributes(buff, size, c, payload_type);
255
255
}
256
256
 
257
257
int avf_sdp_create(AVFormatContext *ac[], int n_files, char *buff, int size)
269
269
    port = 0;
270
270
    ttl = 0;
271
271
    if (n_files == 1) {
272
 
        port = get_address(dst, sizeof(dst), &ttl, ac[0]->filename);
 
272
        port = sdp_get_address(dst, sizeof(dst), &ttl, ac[0]->filename);
273
273
        if (port > 0) {
274
274
            s.dst_addr = dst;
275
275
            s.ttl = ttl;
280
280
    dst[0] = 0;
281
281
    for (i = 0; i < n_files; i++) {
282
282
        if (n_files != 1) {
283
 
            port = get_address(dst, sizeof(dst), &ttl, ac[i]->filename);
 
283
            port = sdp_get_address(dst, sizeof(dst), &ttl, ac[i]->filename);
284
284
        }
285
285
        for (j = 0; j < ac[i]->nb_streams; j++) {
286
286
            sdp_write_media(buff, size,