public void RequestMeta(
			string filename,
			Action<string, VideoMetadataUseful> customCallback = null)
        {
            taskThread.QueueThisUpPlease(() =>
            {
                var filenameMeta = fileMapping.AddGetMetaFilename(filename);
                fileMapping.MakeSureDataFolderExists(filenameMeta);

                if (!File.Exists(filenameMeta))
                {
                    // generates the thumbnails
                    UiConsolePush(VidkaConsoleLogLevel.Info, "generating meta " + Path.GetFileName(filenameMeta));
                    var op1 = new MetadataExtraction(filename, filenameMeta);
                    UiPushResult(op1);
                    if (MetaReady != null && op1.MetaXml != null)
                        MetaReady(filename, op1.MetaXml);
                    if (customCallback != null)
                        customCallback(filename, op1.MetaXml);
                }
                else
                {
                    var metaXml = MetadataExtraction.LoadMetaFromXml(filenameMeta);
                    if (MetaReady != null)
                        MetaReady(filename, metaXml);
                    if (customCallback != null)
                        customCallback(filename, metaXml);
                }

            });
        }
        public void RequestMeta(
            string filename,
            Action <string, VideoMetadataUseful> customCallback = null)
        {
            taskThread.QueueThisUpPlease(() =>
            {
                var filenameMeta = fileMapping.AddGetMetaFilename(filename);
                fileMapping.MakeSureDataFolderExists(filenameMeta);

                if (!File.Exists(filenameMeta))
                {
                    // generates the thumbnails
                    UiConsolePush(VidkaConsoleLogLevel.Info, "generating meta " + Path.GetFileName(filenameMeta));
                    var op1 = new MetadataExtraction(filename, filenameMeta);
                    UiPushResult(op1);
                    if (MetaReady != null && op1.MetaXml != null)
                    {
                        MetaReady(filename, op1.MetaXml);
                    }
                    if (customCallback != null)
                    {
                        customCallback(filename, op1.MetaXml);
                    }
                }
                else
                {
                    var metaXml = MetadataExtraction.LoadMetaFromXml(filenameMeta);
                    if (MetaReady != null)
                    {
                        MetaReady(filename, metaXml);
                    }
                    if (customCallback != null)
                    {
                        customCallback(filename, metaXml);
                    }
                }
            });
        }