private static void CreateVideoFingerPrintDatabase(VideoFingerPrintDatabaseWrapper database, FlatBufferBuilder builder)
        {
            Offset <VideoFingerPrint>[] videoFingerPrintArray = CreateVideoFingerPrintArray(database, builder);

            VectorOffset videoFingerPrintDatabaseVectorOffset = VideoFingerPrintDatabase.CreateVideoFingerPrintsVector(builder, videoFingerPrintArray);

            Offset <VideoFingerPrintDatabase> databaseOffset = VideoFingerPrintDatabase.CreateVideoFingerPrintDatabase(builder, videoFingerPrintDatabaseVectorOffset);

            VideoFingerPrintDatabase.FinishVideoFingerPrintDatabaseBuffer(builder, databaseOffset);
        }
        private static VideoFingerPrintDatabaseWrapper Convert(VideoFingerPrintDatabase database)
        {
            IEnumerable <VideoFingerPrintWrapper> videoFingerPrints = from i in Enumerable.Range(0, database.VideoFingerPrintsLength)
                                                                      select Convert(database.VideoFingerPrints(i));

            return(new VideoFingerPrintDatabaseWrapper
            {
                VideoFingerPrints = videoFingerPrints.ToArray(),
            });
        }
        private static VideoFingerPrintDatabase LoadDatabase(string path)
        {
            if (File.Exists(path) == false)
            {
                throw new ArgumentException();
            }

            using (var memoryStream = new MemoryStream())
                using (var reader = new BinaryReader(File.Open(path, FileMode.Open)))
                {
                    var buffer = new byte[DefaultBufferSize];
                    int count  = 0;
                    while ((count = reader.Read(buffer, 0, buffer.Length)) != 0)
                    {
                        memoryStream.Write(buffer, 0, count);
                    }

                    return(VideoFingerPrintDatabase.GetRootAsVideoFingerPrintDatabase(new ByteBuffer(memoryStream.ToArray())));
                }
        }
 /// <summary>
 /// Load a FlatBuffer database of video fingerprints using raw bytes
 /// </summary>
 /// <param name="rawBytes">The raws bytes of the database</param>
 /// <returns>A loaded database</returns>
 public static VideoFingerPrintDatabaseWrapper Load(byte[] rawBytes)
 {
     return(Convert(VideoFingerPrintDatabase.GetRootAsVideoFingerPrintDatabase(new ByteBuffer(rawBytes))));
 }