public bool PlayMovie()
 {
     OMLApplication.Current.IsStartingTranscodingJob = true;
     Utilities.DebugLine("Starting job");
     transcoder = new TranscodingAPI(_source, trancoderStatusChanged);
     transcodedFile = _source.GetTranscodingFileName();
     transcoder.Transcode();
     return true;
 }
        public static string FindMPeg(MediaSource source)
        {
            DVDTitle dvdTitle = source.DVDTitle;
            if (dvdTitle == null)
                return null;

            // ensure DVD's with DTS audio get transcoded, since extenders don't support DTS audio playback
            if (dvdTitle.AudioTracks.Count > 0 && dvdTitle.AudioTracks[0].Format == AudioEncoding.DTS)
                return null;

            string videoTSDir = source.VIDEO_TS;
            int fileID = int.Parse(dvdTitle.File.Substring(4));
            string vts = string.Format("VTS_{0:D2}_", fileID);
            List<string> vobs = new List<string>(Directory.GetFiles(videoTSDir, vts + "*.VOB"));
            vobs.Remove(Path.Combine(videoTSDir, vts + "0.VOB"));

            // don't direct play unmerged .VOB files
            if (vobs.Count < 1 || vobs.Count > 1)
                return null;

            if (IsNTFS(videoTSDir))
            {
                string mpegFolder = Path.Combine(FileSystemWalker.ExtenderCacheDirectory, Guid.NewGuid().ToString());

                if (Directory.Exists(mpegFolder) == false)
                    Directory.CreateDirectory(mpegFolder);
                if (Directory.Exists(mpegFolder) == false)
                    return null;

                OMLApplication.DebugLine("[MoviePlayerExtenderDVD] Attempting to connect to WCF Transcoder Service");
                TranscodingAPI transcoder = new TranscodingAPI(source, null);
                OMLApplication.DebugLine("[MoviePlayerExtenderDVD] Calling MakeMPEGLink on WCF Transcoder Service");
                string mpegFile = transcoder.MakeMPEGLink(mpegFolder, vobs[0]);
                if (File.Exists(mpegFile))
                    return mpegFile;
            }
            else if (videoTSDir.StartsWith("\\\\"))
            {
                string mpegFile = Path.ChangeExtension(source.GetTranscodingFileName(), ".MPEG");
                if (File.Exists(mpegFile))
                {
                    OMLApplication.DebugLine("[MoviePlayerExtenderDVD] Found '{0}' as pre-existing .MPEG soft-link", mpegFile);
                    return mpegFile;
                }

                string vob = Path.Combine(videoTSDir, vobs[0]);
                OMLApplication.DebugLine("[MoviePlayerExtenderDVD] Trying to create '{0}' soft-link to '{1}'", mpegFile, vob);

                OMLApplication.DebugLine("[MoviePlayerExtenderDVD] Attempting to connect to WCF Transcoder Service");
                TranscodingAPI transcoder = new TranscodingAPI(source, null);
                OMLApplication.DebugLine("[MoviePlayerExtenderDVD] Calling CreateSymbolicLink on WCF Transcoder Service");
                bool ret = transcoder.CreateSymbolicLink(mpegFile, vob);
                string retMsg = ret ? "success" : "Sym-Link failed: " + new Win32Exception(Marshal.GetLastWin32Error()).Message;

                if (File.Exists(mpegFile))
                    return mpegFile;
                OMLApplication.DebugLine("[MoviePlayerExtenderDVD] Soft-link creation failed! {0}", retMsg);
            }
            else
            {
                OMLApplication.DebugLine("[MoviePlayerExtenderDVD] Media not on a network drive nor on a NTFS compatible drive, no supported");
            }

            return null;
        }
Example #3
0
        static void Main(string[] args)
        {
            FileDownloaderTest fdt = new FileDownloaderTest();
            fdt.TestDownload();

            NetworkPathFix nfp = new NetworkPathFix();
            nfp.Test();

            //TVDBMetaDataTest tvdb = new TVDBMetaDataTest();
            //tvdb.Test();

            /*CreateTestTitles ctt = new CreateTestTitles();
            ctt.CreateTitles();
            Console.ReadKey();
            return;

            TitleCollectionManagerTest tcm = new TitleCollectionManagerTest();

            Console.WriteLine("Testing: Title Collection Manager SQL");*/
            //tcm.TEST_DELETE_ALL_DATA();
            //tcm.TEST_IMPORT_INTO_DATABASE();
            //tcm.TEST_GETTING_ALL_TITLES();
            //tcm.TEST_GET_ALL_GENRES();
            //tcm.TEST_GET_ALL_MOVIES_FOR_ACTOR();
            //tcm.TEST_GET_ALL_MOVIES_FOR_ACTOR_WITH_GENRE();
            //tcm.TEST_GET_ALL_PEOPLE();
            //tcm.TEST_GET_ALL_GENRES_GIVEN_FILTER();
            //tcm.TEST_GET_ACTORS_UNWATCHED();
            //tcm.TEST_DISK_ALREADY_EXISTS();
            //tcm.TEST_SAVE_SETTINGS();
            //tcm.TEST_CLEANUP_IMAGES();
            //tcm.TEST_USER_FILTERS();

            Console.ReadLine();
            return;

            DiskInfoTest dit = new DiskInfoTest();
            //dit.TestLookup("AVI", @"G:\Films\Father Ted\Series 1\FatherTed Episode 5.divx", OMLEngine.VideoFormat.AVI);
            //dit.TestLookup("AVI", @"G:\Films\Star Wars 1 - mkv\Star Wars Episode I - The Phontom Menace (1080p).mkv", OMLEngine.VideoFormat.AVI);

            TheMovieDbMetadataPluginTest tmdmpt = new TheMovieDbMetadataPluginTest();
            tmdmpt.TEST_BASE_CASE();

            NetFlixMetadataTest nfmdt = new NetFlixMetadataTest();
            nfmdt.TEST_LOGIN();

            DVDLibraryImporterTest vdlit = new DVDLibraryImporterTest();
            vdlit.TEST_HONORS_OMLENGINE_SETTING_FOLDER_IS_TITLE();

            OMLFileWatcherTest fwt = new OMLFileWatcherTest();
            fwt.TEST_BASE_CASE();
            #if WCF_TEST
            var ms = GetTestMediaSource();
            Console.WriteLine("Transcoding output: " + ms.GetTranscodingFileName());
            TranscodingAPI tAPI = new TranscodingAPI(ms, delegate(MediaSource source, TranscodingStatus status)
            {
                Console.WriteLine(string.Format("StatusChanged: {0}, {1}", source, status));
            });
            tAPI.Transcode();
            tAPI.Stop(true);

            return;
            #endif
            #if !CUSTOM

            MovieCollectorzTest mcpt = new MovieCollectorzTest();
            Console.WriteLine("Testing: MovieCollectorzPlugin");
            mcpt.TEST_MOVIE_COLLECTORZ_MISSING_BOXART();

            MoviePlayerDVDTest mpdt = new MoviePlayerDVDTest();
            Console.WriteLine("Testing: MoviePlayerDVD");
            mpdt.TEST_GENERATE_STRING_FOR_A_STANDARD_DVD();
            mpdt.TEST_GENERATE_STRING_CORRECTLY_BUILDS_TITLE_SELECTION_STRING();
            mpdt.TEST_GENERATE_STRING_CORRECTLY_BUILDS_TITLE_AND_CHAPTER_SELECTION_STRING();
            mpdt.TEST_GENERATE_STRING_CORRECTLY_BUILDS_START_TIME();

            MyMoviesPluginTest mmpt = new MyMoviesPluginTest();
            Console.WriteLine("Testing: MyMoviesPlugin");
            mmpt.TEST_FILE_APPEARS_TO_FAIL_COMPLETE_PARSING__SUPPLIED_BY_USER_SAXNIX();
            mmpt.TEST_BASE_CASE();
            mmpt.TEST_MULTIPLE_DISCS_FAIL_TO_IMPORT();
            mmpt.TEST_WHEN_NO_DISCS_ARE_DEFINED__LOOK_IN_THE_SAME_DIRECTORY_AS_THE_MYMOVIES_XML_FILE_FOR_ANY_VALID_FILES_TO_ADD_AS_DISCS();
            mmpt.TEST_WHEN_NO_DISCS_ARE_DEFINED__LOOK_IN_THE_SAME_DIRECTORY_AS_THE_MYMOVIES_XML_FILE_FOR_ANY_VALID_FILES_TO_ADD_AS_DISCS__MULTIPLE_FILES();
            mmpt.TEST_FOLDER_JPG_FILES_ARE_USED_IF_COVER_PATHS_DONT_APPEAR_TO_EXIST();
            mmpt.TEST_CORRECTLY_IMPORTS_DVRMS_FILES();
            mmpt.TEST_FILES_WITH_MULTIPLE_DISCS_APPEAR_TO_FAIL();

            DVDProfilerTest dpt = new DVDProfilerTest();
            Console.WriteLine("Testing: DVDProfilerPlugin");
            dpt.TEST_SPACING_IS_CORRECT_FOR_ACTOR_NAMES();
            dpt.TEST_ROLES_ARE_CORRECT_FOR_ACTORS();
            dpt.TEST_NAMES_AND_EAN();
            dpt.TEST_RATINGS();
            dpt.TEST_CREWCREDITS();
            dpt.TEST_STUDIO_AND_COUNTRY();
            dpt.TEST_GENRES();
            dpt.TEST_SUBTITLES();
            dpt.TEST_AUDIO_TRACKS();
            dpt.TEST_DATES();
            dpt.TEST_RUNNINGTIME();
            dpt.TEST_SYNOPSIS();
            dpt.TEST_VIDEO();
            dpt.TEST_DISCS();
            dpt.TEST_DEFAULT_DISC_NAMES();
            dpt.TEST_TAGS();

            TitleTest tt = new TitleTest();
            Console.WriteLine("Testing: Title");
            tt.TEST_BASE_CASE();
            tt.TEST_LOAD_FROM_XML();

            //TitleCollectionTest tct = new TitleCollectionTest();
            //Console.WriteLine("Testing: TitleCollection");
            //tct.TEST_BASE_CASE();
            //tct.TEST_FIND_FOR_ID();
            //tct.TEST_SOURCE_DATABASE_TO_USE();
            #endif

            MEncoderCommandBuilderTest mecbt = new MEncoderCommandBuilderTest();
            Console.WriteLine("Testing: MEncoderCommandBuilder");
            //mecbt.TEST_DVD_IFO_PARSING_2();
            mecbt.TEST_DVD_IFO_PARSING();
            mecbt.TEST_COMMAND_BUILDER_A_S();
            //mecbt.EXECUTE_COMMAND_BUILDER_A_S();
            //#if !CUSTOM
            //            mecbt.TEST_BASIC_COMMAND_BUILDER();

            //            VirtualDirectoryTest vdt = new VirtualDirectoryTest();
            //            Console.WriteLine("Testing: VirtualDirectory");
            //            vdt.TEST_CREATE_VIRTUAL_FOLDER();
            //            vdt.TEST_MULTIPLE_BASE_FOLDERS_WORK();
            //#endif
        }
 public ExtenderDVDPlayer(MediaSource source)
 {
     _source = source;
     OMLApplication.DebugLine("[MoviePlayerExtenderDVD] Attempting to connect to WCF Transcoder Service");
     transcoder = new TranscodingAPI(_source, null);
 }