private void EncodeFilms()
        {
            FilmEncoder filmEncoder = new FilmEncoder(production);

            filmEncoder.FailureEvent += OnFilmEncoderFailure;
            filmEncoder.SuccessEvent += OnFilmEncoderSuccess;
            filmEncoder.Encode();
        }
        private void OnFilmEncoderSuccess(object sender, EventArgs ea)
        {
            FilmEncoder filmEncoder = (sender as FilmEncoder);

            filmEncoder.SuccessEvent -= OnFilmEncoderSuccess;
            filmEncoder.FailureEvent -= OnFilmEncoderFailure;
            filmEncoder = null;

            production.Status = ProductionStatus.PS_UPLOAD_FILMS;
            Work();
        }
        private void OnFilmEncoderFailure(object sender, ResultEventArgs ea)
        {
            FilmEncoder filmEncoder = (sender as FilmEncoder);

            filmEncoder.SuccessEvent -= OnFilmEncoderSuccess;
            filmEncoder.FailureEvent -= OnFilmEncoderFailure;
            filmEncoder = null;

            production.ErrorStatus = (ProductionErrorStatus)ea.Result;
            FireFailureEvent();
        }