Example #1
0
 public bool PlayMovie()
 {
     OMLApplication.Current.IsStartingTranscodingJob = true;
     Utilities.DebugLine("Starting job");
     transcoder     = new TranscodingAPI(_source, trancoderStatusChanged);
     transcodedFile = _source.GetTranscodingFileName();
     transcoder.Transcode();
     return(true);
 }
Example #2
0
        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
 public ExtenderDVDPlayer(MediaSource source)
 {
     _source = source;
     OMLApplication.DebugLine("[MoviePlayerExtenderDVD] Attempting to connect to WCF Transcoder Service");
     transcoder = new TranscodingAPI(_source, null);
 }
Example #4
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
        }