private void JoinClips()
        {
            ClipJoiner clipJoiner = new ClipJoiner(production);

            clipJoiner.SuccessEvent += OnClipJoinerSuccess;
            clipJoiner.FailureEvent += OnClipJoinerFailure;
            clipJoiner.Join();
        }
        private void OnClipJoinerFailure(object sender, ResultEventArgs ea)
        {
            ClipJoiner clipJoiner = (sender as ClipJoiner);

            clipJoiner.SuccessEvent -= OnClipJoinerSuccess;
            clipJoiner.FailureEvent -= OnClipJoinerFailure;
            clipJoiner = null;

            production.ErrorStatus = (ProductionErrorStatus)ea.Result;
            FireFailureEvent();
        }
        private void OnClipJoinerSuccess(object sender, EventArgs ea)
        {
            ClipJoiner clipJoiner = (sender as ClipJoiner);

            clipJoiner.SuccessEvent -= OnClipJoinerSuccess;
            clipJoiner.FailureEvent -= OnClipJoinerFailure;
            clipJoiner = null;

            production.Status = ProductionStatus.PS_ENCODE_FILMS;
            Work();
        }