rdt_parse_packet (PayloadContext *rdt, AVStream *st,

                  AVPacket *pkt, uint32_t *timestamp,

                  const uint8_t *buf, int len, int flags)

{

    int seq = 1, res;

    ByteIOContext pb;



    if (rdt->audio_pkt_cnt == 0) {

        int pos;



        init_put_byte(&pb, buf, len, 0, NULL, NULL, NULL, NULL);

        flags = (flags & PKT_FLAG_KEY) ? 2 : 0;

        res = ff_rm_parse_packet (rdt->rmctx, &pb, st, rdt->rmst[0], len, pkt,

                                  &seq, &flags, timestamp);

        pos = url_ftell(&pb);

        if (res < 0)

            return res;

        rdt->audio_pkt_cnt[st->id] = res;

        if (rdt->audio_pkt_cnt[st->id] > 0 &&

            st->codec->codec_id == CODEC_ID_AAC) {

            memcpy (rdt->buffer, buf + pos, len - pos);

            rdt->rmctx->pb = av_alloc_put_byte (rdt->buffer, len - pos, 0,

                                                NULL, NULL, NULL, NULL);

        }

    } else {

        ff_rm_retrieve_cache (rdt->rmctx, rdt->rmctx->pb, st, rdt->rmst[0], pkt);

        if (rdt->audio_pkt_cnt[st->id] == 0 &&

            st->codec->codec_id == CODEC_ID_AAC)

            av_freep(&rdt->rmctx->pb);

    }

    pkt->stream_index = st->index;

    pkt->pts = *timestamp;



    return rdt->audio_pkt_cnt[st->id] > 0;

}

rdt_parse_packet (PayloadContext *rdt, AVStream *st,

                  AVPacket *pkt, uint32_t *timestamp,

                  const uint8_t *buf, int len, int flags)

{

    int seq = 1, res;

    ByteIOContext pb;



    if (rdt->audio_pkt_cnt == 0) {

        int pos;



        init_put_byte(&pb, buf, len, 0, NULL, NULL, NULL, NULL);

        flags = (flags & PKT_FLAG_KEY) ? 2 : 0;

        res = ff_rm_parse_packet (rdt->rmctx, &pb, st, rdt->rmst[0], len, pkt,

                                  &seq, &flags, timestamp);

        pos = url_ftell(&pb);

        if (res < 0)

            return res;

        rdt->audio_pkt_cnt[st->id] = res;

        if (rdt->audio_pkt_cnt[st->id] > 0 &&

            st->codec->codec_id == CODEC_ID_AAC) {

            memcpy (rdt->buffer, buf + pos, len - pos);

            rdt->rmctx->pb = av_alloc_put_byte (rdt->buffer, len - pos, 0,

                                                NULL, NULL, NULL, NULL);

        }

    } else {

        ff_rm_retrieve_cache (rdt->rmctx, rdt->rmctx->pb, st, rdt->rmst[0], pkt);

        if (rdt->audio_pkt_cnt[st->id] == 0 &&

            st->codec->codec_id == CODEC_ID_AAC)

            av_freep(&rdt->rmctx->pb);

    }

    pkt->stream_index = st->index;

    pkt->pts = *timestamp;



    return rdt->audio_pkt_cnt[st->id] > 0;

}

FUNC_0 (PayloadContext *VAR_0, AVStream *VAR_1,

                  AVPacket *VAR_2, uint32_t *VAR_3,

                  const uint8_t *VAR_4, int VAR_5, int VAR_6)

{

    int VAR_7 = 1, VAR_8;

    ByteIOContext pb;



    if (VAR_0->audio_pkt_cnt == 0) {

        int VAR_9;



        init_put_byte(&pb, VAR_4, VAR_5, 0, NULL, NULL, NULL, NULL);

        VAR_6 = (VAR_6 & PKT_FLAG_KEY) ? 2 : 0;

        VAR_8 = ff_rm_parse_packet (VAR_0->rmctx, &pb, VAR_1, VAR_0->rmst[0], VAR_5, VAR_2,

                                  &VAR_7, &VAR_6, VAR_3);

        VAR_9 = url_ftell(&pb);

        if (VAR_8 < 0)

            return VAR_8;

        VAR_0->audio_pkt_cnt[VAR_1->id] = VAR_8;

        if (VAR_0->audio_pkt_cnt[VAR_1->id] > 0 &&

            VAR_1->codec->codec_id == CODEC_ID_AAC) {

            memcpy (VAR_0->buffer, VAR_4 + VAR_9, VAR_5 - VAR_9);

            VAR_0->rmctx->pb = av_alloc_put_byte (VAR_0->buffer, VAR_5 - VAR_9, 0,

                                                NULL, NULL, NULL, NULL);

        }

    } else {

        ff_rm_retrieve_cache (VAR_0->rmctx, VAR_0->rmctx->pb, VAR_1, VAR_0->rmst[0], VAR_2);

        if (VAR_0->audio_pkt_cnt[VAR_1->id] == 0 &&

            VAR_1->codec->codec_id == CODEC_ID_AAC)

            av_freep(&VAR_0->rmctx->pb);

    }

    VAR_2->stream_index = VAR_1->index;

    VAR_2->pts = *VAR_3;



    return VAR_0->audio_pkt_cnt[VAR_1->id] > 0;

}

FUNC_0 (PayloadContext *VAR_0, AVStream *VAR_1,
AVPacket *VAR_2, uint32_t *VAR_3,
const uint8_t *VAR_4, int VAR_5, int VAR_6)
{ int VAR_7 = 1, VAR_8; ByteIOContext pb; if (VAR_0->audio_pkt_cnt == 0) { int VAR_9; init_put_byte(&pb, VAR_4, VAR_5, 0, NULL, NULL, NULL, NULL); VAR_6 = (VAR_6 & PKT_FLAG_KEY) ? 2 : 0; VAR_8 = ff_rm_parse_packet (VAR_0->rmctx, &pb, VAR_1, VAR_0->rmst[0], VAR_5, VAR_2,
&VAR_7, &VAR_6, VAR_3); VAR_9 = url_ftell(&pb); if (VAR_8 < 0)
return VAR_8; VAR_0->audio_pkt_cnt[VAR_1->id] = VAR_8; if (VAR_0->audio_pkt_cnt[VAR_1->id] > 0 &&
VAR_1->codec->codec_id == CODEC_ID_AAC) { memcpy (VAR_0->buffer, VAR_4 + VAR_9, VAR_5 - VAR_9); VAR_0->rmctx->pb = av_alloc_put_byte (VAR_0->buffer, VAR_5 - VAR_9, 0,
NULL, NULL, NULL, NULL); } } else { ff_rm_retrieve_cache (VAR_0->rmctx, VAR_0->rmctx->pb, VAR_1, VAR_0->rmst[0], VAR_2); if (VAR_0->audio_pkt_cnt[VAR_1->id] == 0 &&
VAR_1->codec->codec_id == CODEC_ID_AAC)
av_freep(&VAR_0->rmctx->pb); } VAR_2->stream_index = VAR_1->index; VAR_2->pts = *VAR_3; return VAR_0->audio_pkt_cnt[VAR_1->id] > 0; }