int decoderSpecificInfoLen = track->vosLen ? descrLength(track->vosLen):0;
int decoderSpecificInfoLen;
static int mov_write_esds_tag(ByteIOContext *pb, MOVTrack* track) // Basic{    int decoderSpecificInfoLen = track->vosLen ? descrLength(track->vosLen):0;    int pos = url_ftell(pb);    void *vosDataBackup=track->vosData;    int vosLenBackup=track->vosLen;        // we should be able to have these passed in, via vosData, then we wouldn't need to attack this routine at all    static const char PSPAACData[]={0x13,0x10};    static const char PSPMP4Data[]={0x00,0x00,0x01,0xB0,0x03,0x00,0x00,0x01,0xB5,0x09,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x20,0x00,0x84,0x5D,0x4C,0x28,0x50,0x20,0xF0,0xA3,0x1F };            if (track->mode == MODE_PSP)  // fails on psp if this is not here    {        if (track->enc->codec_id == CODEC_ID_AAC)        {            track->vosLen = 2;            track->vosData = PSPAACData;        }        if (track->enc->codec_id == CODEC_ID_MPEG4)        {            track->vosLen = 28;            track->vosData = PSPMP4Data;        }    }    put_be32(pb, 0);               // size    put_tag(pb, "esds");    put_be32(pb, 0);               // Version    // ES descriptor    putDescr(pb, 0x03, 3 + descrLength(13 + decoderSpecificInfoLen) +             descrLength(1));    put_be16(pb, 0x0001);          // ID (= 1)    put_byte(pb, 0x00);            // flags (= no flags)    // DecoderConfig descriptor    putDescr(pb, 0x04, 13 + decoderSpecificInfoLen);    if(track->enc->codec_id == CODEC_ID_AAC)        put_byte(pb, 0x40);        // Object type indication    else if(track->enc->codec_id == CODEC_ID_MPEG4)        put_byte(pb, 0x20);        // Object type indication (Visual 14496-2)    if(track->enc->codec_type == CODEC_TYPE_AUDIO)        put_byte(pb, 0x15);            // flags (= Audiostream)    else        put_byte(pb, 0x11);            // flags (= Visualstream)    put_byte(pb, 0x0);             // Buffersize DB (24 bits)    put_be16(pb, 0x0dd2);          // Buffersize DB    // TODO: find real values for these    put_be32(pb, track->enc->bit_rate);     // maxbitrate    put_be32(pb, track->enc->bit_rate);     // avg bitrate    if (track->vosLen)    {        // DecoderSpecific info descriptor        putDescr(pb, 0x05, track->vosLen);        put_buffer(pb, track->vosData, track->vosLen);    }    track->vosData = vosDataBackup;    track->vosLen = vosLenBackup;    // SL descriptor    putDescr(pb, 0x06, 1);    put_byte(pb, 0x02);    return updateSize (pb, pos);}