bool CreateProject()
        {
            TreeIter  iter;
            MediaFile file;

            if (projectType == ProjectType.FileProject ||
                projectType == ProjectType.EditProject)
            {
                if (!mediafilesetselection1.FileSet.CheckFiles())
                {
                    dialogs.WarningMessage(Catalog.GetString("You need at least 1 video file for the main angle"));
                    return(false);
                }
            }

            if (project != null)
            {
                FillProject();
                return(true);
            }

            if (projectType == ProjectType.CaptureProject ||
                projectType == ProjectType.URICaptureProject)
            {
                if (String.IsNullOrEmpty(capturemediafilechooser.CurrentPath))
                {
                    dialogs.WarningMessage(Catalog.GetString("No output video file"));
                    return(false);
                }
            }
            if (projectType == ProjectType.URICaptureProject)
            {
                if (urientry.Text == "")
                {
                    dialogs.WarningMessage(Catalog.GetString("No input URI"));
                    return(false);
                }
            }

            project             = new LMProject();
            project.Description = new ProjectDescription();
            FillProject();
            ViewModel.Project.Model = project;


            encSettings     = new EncodingSettings();
            captureSettings = new CaptureSettings();

            encSettings.OutputFile = capturemediafilechooser.CurrentPath;

            /* Get quality info */
            qualitycombobox.GetActiveIter(out iter);
            encSettings.EncodingQuality = (EncodingQuality)qualList.GetValue(iter, 1);

            /* Get size info */
            imagecombobox.GetActiveIter(out iter);
            encSettings.VideoStandard = (VideoStandard)videoStandardList.GetValue(iter, 1);

            /* Get encoding profile info */
            encodingcombobox.GetActiveIter(out iter);
            encSettings.EncodingProfile = (EncodingProfile)encProfileList.GetValue(iter, 1);

            encSettings.Framerate_n = App.Current.Config.FPS_N;
            encSettings.Framerate_d = App.Current.Config.FPS_D;

            captureSettings.EncodingSettings = encSettings;

            file = project.Description.FileSet.FirstOrDefault();
            if (file == null)
            {
                file = new MediaFile()
                {
                    Name = Catalog.GetString("Main camera angle")
                };
                file.FilePath = capturemediafilechooser.CurrentPath;
                file.Fps      = (ushort)(App.Current.Config.FPS_N / App.Current.Config.FPS_D);
                file.Par      = 1;
                project.Description.FileSet.Add(file);
            }

            if (projectType == ProjectType.CaptureProject)
            {
                captureSettings.Device = videoDevices [devicecombobox.Active];
                captureSettings.Format = captureSettings.Device.Formats [deviceformatcombobox.Active];
                file.VideoHeight       = encSettings.VideoStandard.Height;
                file.VideoWidth        = encSettings.VideoStandard.Width;
            }
            else if (projectType == ProjectType.URICaptureProject)
            {
                string uri = urientry.Text;
                if (!String.IsNullOrEmpty(userentry.Text) || !String.IsNullOrEmpty(passwordentry.Text))
                {
                    int index = uri.IndexOf("://", StringComparison.Ordinal);
                    if (index != -1)
                    {
                        uri = uri.Insert(index + 3, string.Format("{0}:{1}@", userentry.Text, passwordentry.Text));
                    }
                }
                captureSettings.Device = new Device {
                    DeviceType = CaptureSourceType.URI,
                    ID         = uri
                };
                file.VideoHeight = encSettings.VideoStandard.Height;
                file.VideoWidth  = encSettings.VideoStandard.Width;
            }
            else if (projectType == ProjectType.FakeCaptureProject)
            {
                file.FilePath = Constants.FAKE_PROJECT;
            }
            return(true);
        }