コード例 #1
0
        public static string?EnsureAvailableFFmpegAndPotentiallyStartSetup()
        {
            var path = FFmpegManager.GetAbsoluteFFmpegPath(true);

            if (path != null)
            {
                return(path);
            }

            var setupResult = FFmpegManagerUi.StartGuidedSetupDialog();

            switch (setupResult)
            {
            case AfterSetupAction.QuitApplication:
                HolzShotsApplication.Instance.Terminate();
                return(null);

            case AfterSetupAction.AbortCurrentAction:
                return(null);

            case AfterSetupAction.Coninue:
                path = FFmpegManager.GetAbsoluteFFmpegPath(true);
                Debug.Assert(path != null);
                return(path);

            default:
                Debug.Fail("Unhandled AfterSetupAction: " + setupResult);
                throw new ArgumentException("Unhandled AfterSetupAction: " + setupResult);
            }
        }
コード例 #2
0
        public ProjectKeyframeOverview(FileTreeObject fileTreeObject, ProjectManager projectManager,
                                       FFmpegManager ffmpegManager, DefaultCodecHeaderManager defaultCodecHeaderManager,
                                       FullFileScanner fullFileScanner, Creator <SelectingKeyframe> selectingKeyframeCreator)
        {
            if (_activeInstance != null)
            {
                throw new Exception("It's not allowed to create multiple ProjectKeyframeOverview windows.");
            }

            _activeInstance            = this;
            _fileTreeObject            = fileTreeObject;
            _projectManager            = projectManager;
            _ffmpegManager             = ffmpegManager;
            _defaultCodecHeaderManager = defaultCodecHeaderManager;
            _fullFileScanner           = fullFileScanner;
            _selectingKeyframeCreator  = selectingKeyframeCreator;

            InitializeComponent();
            ReportProgressComplete();

            _resultRows            = new List <ProjectKeyframeOverviewRow>();
            resultsTree.DataSource = _resultRows;

            projectManager.ProjectChanged += new EventHandler <ProjectChangedEventArgs>(projectManager_ProjectChanged);
            defaultCodecHeaderManager.CodecHeaderChanged += new DefaultCodecHeaderManager.DefaultCodecHeaderChangeHandler(defaultCodecHeaderManager_CodecHeaderChanged);

            fullFileScanner.ScanNextCodecStreamOnInvalidation = true;
            fullFileScanner.ScanMoreThanOneFragment           = false;
            fullFileScanner.ScanProgressChanged += new ProgressChangedEventHandler(fullFileScanner_ScanProgressChanged);
            fullFileScanner.ResultDetected      += new FullFileScanner.ResultDetectedHandler(fullFileScanner_ResultDetected);
            fullFileScanner.ScanCompleted       += new FullFileScanner.ScanCompleteHandler(fullFileScanner_ScanCompleted);
            fullFileScanner.ScanNumCodecStreams  = 1;            // Limit to only 1 codecstream, otherwise the scan will take to long
        }
コード例 #3
0
        public VideoKeyframesManager(FFmpegManager ffmpegManager, ProjectManager projectManager,
                                     DefaultCodecHeaderManager defaultCodecHeaderManager, Creator <VideoKeyframesWindow> videoThumbsWindowCreator)
        {
            _ffmpegManager            = ffmpegManager;
            _videoThumbsWindowCreator = videoThumbsWindowCreator;

            projectManager.ProjectChanged += new EventHandler <ProjectChangedEventArgs>(ProjectChanged);
            defaultCodecHeaderManager.CodecHeaderChanged += new DefaultCodecHeaderManager.DefaultCodecHeaderChangeHandler(defaultCodecHeaderManager_CodecHeaderChanged);
        }
コード例 #4
0
        public FramePreviewManager(ProjectManager projectManager, FFmpegManager ffmpegManager,
                                   DefaultCodecHeaderManager defaultCodecHeaderManager,
                                   IForensicIntegrityLog forensicIntegrityLog)
        {
            _ffmpegManager        = ffmpegManager;
            _forensicIntegrityLog = forensicIntegrityLog;

            projectManager.ProjectChanged += new EventHandler <ProjectChangedEventArgs>(ProjectChanged);
            defaultCodecHeaderManager.CodecHeaderChanged += new DefaultCodecHeaderManager.DefaultCodecHeaderChangeHandler(defaultCodecHeaderManager_CodecHeaderChanged);
        }
コード例 #5
0
        public HeaderSource(IFormFactory formFactory, FileTree mainFileTree, FFmpegManager ffmpegManager)
        {
            _dialogOpen    = true;
            _formFactory   = formFactory;
            _mainFileTree  = mainFileTree;
            _ffmpegManager = ffmpegManager;

            InitializeComponent();

            UpdateHeaderSourceMessage();
            AddFileAndStreamSourceToList();
        }
コード例 #6
0
 public void TearDown()
 {
     _ffmpegManager.Dispose();
     _ffmpegManager = null;
 }
コード例 #7
0
 public void SetUp()
 {
     _ffmpegManager = new FFmpegManager(TestFramework.CreateFrameConverter(), null);
 }