Exemple #1
0
 /// <summary>
 /// Handles the g_Player.PlayBackStopped event
 /// </summary>
 /// <param name="type"></param>
 /// <param name="i"></param>
 /// <param name="s"></param>
 public void OnVideoStopped(g_Player.MediaType type, int i, string s)
 {
     // do not handle e.g. visualization window, last.fm player, etc
     if (type == g_Player.MediaType.Video || type == g_Player.MediaType.TV)
     {
         subTitleType = eSubTitle.None;
         Task.Factory.StartNew(() => ProcessingVideoStop(type));
     }
 }
Exemple #2
0
 /// <summary>
 /// Handles the g_Player.PlayBackStarted event
 /// </summary>
 public void OnVideoStarted(g_Player.MediaType type, string s)
 {
     // do not handle e.g. visualization window, last.fm player, etc
     if (type == g_Player.MediaType.Video || type == g_Player.MediaType.TV)
     {
         _currentName = s;
         var isNetwork = IsNetworkVideo(s);
         subTitleType = isNetwork ? eSubTitle.None : DetectSubtitleType(s);
         if (!isNetwork || bAnalyzeNetworkStream)
         {
             Task.Factory.StartNew(() => Analyze3DFormatVideo(type));
         }
     }
 }
Exemple #3
0
 void OnTVChannelChanged()
 {
     g_Player.MediaType type = g_Player.MediaType.TV;
     subTitleType = eSubTitle.None;
     Task.Factory.StartNew(() => Analyze3DFormatVideo(type));
 }
Exemple #4
0
 void OnTVChannelChanged()
 {
     g_Player.MediaType type = g_Player.MediaType.TV;
       subTitleType = eSubTitle.None;
       ThreadPool.QueueUserWorkItem(new WaitCallback(RunVideoStarted), type);
 }
Exemple #5
0
 /// <summary>
 /// Handles the g_Player.PlayBackStopped event
 /// </summary>
 /// <param name="type"></param>
 /// <param name="i"></param>
 /// <param name="s"></param>
 public void OnVideoStopped(g_Player.MediaType type, int i, string s)
 {
     // do not handle e.g. visualization window, last.fm player, etc
       if (type == g_Player.MediaType.Video || type == g_Player.MediaType.TV)
       {
     subTitleType = eSubTitle.None;
     ThreadPool.QueueUserWorkItem(new WaitCallback(RunVideoStopped), type);
       }
 }
Exemple #6
0
        /// <summary>
        /// Handles the g_Player.PlayBackStarted event
        /// </summary>
        public void OnVideoStarted(g_Player.MediaType type, string s)
        {
            // do not handle e.g. visualization window, last.fm player, etc
              if (type == g_Player.MediaType.Video || type == g_Player.MediaType.TV)
              {
            _currentName = s;

            String baseName = Path.Combine(Path.GetDirectoryName(s), Path.GetFileNameWithoutExtension(s));

            // text based subtitles

            String [] textSubtitleFormatsFileAndEmbedded =
            {
            "aqt",
            "srt",
            "ssa",
            "mpl",
            "txt",
            "dks",
            "js",
            "jss",
            "pjs",
            "asc",
            "ass",
            "smi",
            "psb",
            "lrc",
            "ovr",
            "rt",
            "rtf",
            "zeg",
            "sbt",
            "sst",
            "ssts",
            "stl",
            "vkt",
            "vsf",
            "pan",
            "s2k"
            };

            String [] imageSubtitleFormatsFile =
            {
            "idx",
            "sub",
            "scr",
            "son"
            };

            String[] imageSubtitleFormatsEmbedded =
            {
            "vobsub",
            "dvb subtitle",
            "pgs",
            "rle",
            "xsub",
            };

            subTitleType = eSubTitle.None;

            // check for file based subtitles

            foreach (String subFormat in textSubtitleFormatsFileAndEmbedded)
            {
            if (File.Exists(baseName + "." + subFormat))
            {
                subTitleType = eSubTitle.TextBased;
                ThreadPool.QueueUserWorkItem(new WaitCallback(RunVideoStarted), type);
                return;
            }
            }

            foreach (String subFormat in imageSubtitleFormatsFile)
            {
            if (File.Exists(baseName + "." + subFormat))
            {
                subTitleType = eSubTitle.ImageBased;
                ThreadPool.QueueUserWorkItem(new WaitCallback(RunVideoStarted), type);
                return;
            }
            }

            // check for embedded subtitles

            MediaInfo mi = new MediaInfo();

            mi.Open(s);

            int sct = mi.Count_Get(StreamKind.Text);

            for (int i = 0; i < sct; i++)
            {
            String format = mi.Get(StreamKind.Text, i, "Format").ToLowerInvariant();

            if (textSubtitleFormatsFileAndEmbedded.Contains(format))
            {
                subTitleType = eSubTitle.TextBased;
                break;
            }

            if (imageSubtitleFormatsEmbedded.Contains(format))
            {
                subTitleType = eSubTitle.ImageBased;
                break;
            }
            }

            mi.Close();

            ThreadPool.QueueUserWorkItem(new WaitCallback(RunVideoStarted), type);
              }
        }