ADBaseLibrary.AdobeHDS.FragmentProcessor.ProcessFragment C# (CSharp) Method

ProcessFragment() private method

private ProcessFragment ( Stream s, int fragment ) : Task
s Stream
fragment int
return Task
        private async Task ProcessFragment(Stream s, int fragment)
        {
            BoxReader reader=new BoxReader(s);
            string name;
            while (reader.BaseStream.Position != reader.BaseStream.Length)
            {
                long size = reader.ReadHeader(out name);
                if (name == "abst")
                    reader.ReadBootStrap(bootstrap);
                else if (name == "mdat")
                {
                    long max = reader.BaseStream.Position + size;
                    List<Tag> tags=new List<Tag>();
                    while (reader.BaseStream.Position != max)
                    {
                        tags.Add(await GetNextTag(reader.BaseStream));
                    }
                    await QueueTags(tags, fragment);
                }
                else
                    reader.BaseStream.Seek(size, SeekOrigin.Current);
            }
            reader.Dispose();
        }
        private SemaphoreSlim queueLock=new SemaphoreSlim(1);