static int sdp_parse(AVFormatContext *s, const char *content)

{

    const char *p;

    int letter;

    /* Some SDP lines, particularly for Realmedia or ASF RTSP streams,

     * contain long SDP lines containing complete ASF Headers (several

     * kB) or arrays of MDPR (RM stream descriptor) headers plus

     * "rulebooks" describing their properties. Therefore, the SDP line

     * buffer is large.

     *

     * The Vorbis FMTP line can be up to 16KB - see sdp_parse_fmtp. */

    char buf[16384], *q;

    SDPParseState sdp_parse_state, *s1 = &sdp_parse_state;



    memset(s1, 0, sizeof(SDPParseState));

    p = content;

    for(;;) {

        skip_spaces(&p);

        letter = *p;

        if (letter == '\0')

            break;

        p++;

        if (*p != '=')

            goto next_line;

        p++;

        /* get the content */

        q = buf;

        while (*p != '\n' && *p != '\r' && *p != '\0') {

            if ((q - buf) < sizeof(buf) - 1)

                *q++ = *p;

            p++;

        }

        *q = '\0';

        sdp_parse_line(s, s1, letter, buf);

    next_line:

        while (*p != '\n' && *p != '\0')

            p++;

        if (*p == '\n')

            p++;

    }

    return 0;

}

static int sdp_parse(AVFormatContext *s, const char *content)

{

    const char *p;

    int letter;

    













    char buf[16384], *q;

    SDPParseState sdp_parse_state, *s1 = &sdp_parse_state;



    memset(s1, 0, sizeof(SDPParseState));

    p = content;

    for(;;) {

        skip_spaces(&p);

        letter = *p;

        if (letter == '\0')

            break;

        p++;

        if (*p != '=')

            goto next_line;

        p++;

        

        q = buf;

        while (*p != '\n' && *p != '\r' && *p != '\0') {

            if ((q - buf) < sizeof(buf) - 1)

                *q++ = *p;

            p++;

        }

        *q = '\0';

        sdp_parse_line(s, s1, letter, buf);

    next_line:

        while (*p != '\n' && *p != '\0')

            p++;

        if (*p == '\n')

            p++;

    }

    return 0;

}

static int FUNC_0(AVFormatContext *VAR_0, const char *VAR_1)

{

    const char *VAR_2;

    int VAR_3;

    













    char VAR_4[16384], *VAR_5;

    SDPParseState sdp_parse_state, *s1 = &sdp_parse_state;



    memset(s1, 0, sizeof(SDPParseState));

    VAR_2 = VAR_1;

    for(;;) {

        skip_spaces(&VAR_2);

        VAR_3 = *VAR_2;

        if (VAR_3 == '\0')

            break;

        VAR_2++;

        if (*VAR_2 != '=')

            goto next_line;

        VAR_2++;

        

        VAR_5 = VAR_4;

        while (*VAR_2 != '\n' && *VAR_2 != '\r' && *VAR_2 != '\0') {

            if ((VAR_5 - VAR_4) < sizeof(VAR_4) - 1)

                *VAR_5++ = *VAR_2;

            VAR_2++;

        }

        *VAR_5 = '\0';

        sdp_parse_line(VAR_0, s1, VAR_3, VAR_4);

    next_line:

        while (*VAR_2 != '\n' && *VAR_2 != '\0')

            VAR_2++;

        if (*VAR_2 == '\n')

            VAR_2++;

    }

    return 0;

}

static int FUNC_0(AVFormatContext *VAR_0, const char *VAR_1)
{ const char *VAR_2; int VAR_3; char VAR_4[16384], *VAR_5; SDPParseState sdp_parse_state, *s1 = &sdp_parse_state; memset(s1, 0, sizeof(SDPParseState)); VAR_2 = VAR_1; for(;;) { skip_spaces(&VAR_2); VAR_3 = *VAR_2; if (VAR_3 == '\0')
break; VAR_2++; if (*VAR_2 != '=')
goto next_line; VAR_2++; VAR_5 = VAR_4; while (*VAR_2 != '\n' && *VAR_2 != '\r' && *VAR_2 != '\0') { if ((VAR_5 - VAR_4) < sizeof(VAR_4) - 1)
*VAR_5++ = *VAR_2; VAR_2++; } *VAR_5 = '\0'; sdp_parse_line(VAR_0, s1, VAR_3, VAR_4); next_line:
while (*VAR_2 != '\n' && *VAR_2 != '\0')
VAR_2++; if (*VAR_2 == '\n')
VAR_2++; } return 0; }