// ----------------------------------------------------------------------------
// CSdpRtpmapStrategy::ExtractFormatsL
// ----------------------------------------------------------------------------
//
RArray<TUint> CSdpRtpmapStrategy::ExtractFormatsL(
    const TDesC8& aFormats) const
    {
    RArray<TUint> formats;
    CleanupClosePushL(formats);
    TLex8 formatLex(aFormats);
    formatLex.SkipSpace();
    TUint value = 0;
    while (!formatLex.Eos())
        {
        if (formatLex.Val(value) == KErrNone)
            {
            formats.InsertInOrderAllowRepeatsL(value);
            }
        else
            {
            // Skip the invalid token
            formatLex.NextToken();
            }
        formatLex.SkipSpace();
        }
    CleanupStack::Pop(&formats);
    return formats;
    }