Example #1
0
        public static async Task <MetadataItemsBox> CreateAsync(IBinaryStream stream, Box box)
        {
            if (!box.IsContainer)
            {
                throw new FormatException();
            }

            var metadataItemsBox = new MetadataItemsBox();

            foreach (var subbox in box.Boxes)
            {
                switch (subbox.Name)
                {
                case "covr":
                    var data = subbox.Boxes.FirstOrDefault(a => a.Name == "data");
                    if (data != null)
                    {
                        metadataItemsBox.Cover = (await MetadataValueBox.CreateAsync(stream, data).ConfigureAwait(false)).DataLocation;
                    }
                    break;

                default:
                    break;
                }
            }
            return(metadataItemsBox);
        }
Example #2
0
        public static Task <MetadataValueBox> CreateAsync(IBinaryStream stream, Box box)
        {
            var metadataValueBox = new MetadataValueBox();

            stream.Position  = box.Offset + 8;
            stream.Position += 8; // TypeIndicator + LocaleIndicator
            metadataValueBox.DataLocation = new DataLocation(stream.Position, box.Length - stream.Position);
            return(Task.FromResult(metadataValueBox));
        }