projects
/
dcpomatic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Basic ability to set video range (JPEG/MPEG) at least for YUV content. May not work...
[dcpomatic.git]
/
src
/
wx
/
video_panel.cc
diff --git
a/src/wx/video_panel.cc
b/src/wx/video_panel.cc
index 9c044e1889f51109517276899ef7350135a9aa26..7594d98a5d36b4494f45a2afc5465242c696c1b1 100644
(file)
--- a/
src/wx/video_panel.cc
+++ b/
src/wx/video_panel.cc
@@
-175,6
+175,11
@@
VideoPanel::VideoPanel (ContentPanel* p)
_colour_conversion->Append (S_("Colour|Custom"));
_edit_colour_conversion_button = new Button (this, _("Edit..."));
_colour_conversion->Append (S_("Colour|Custom"));
_edit_colour_conversion_button = new Button (this, _("Edit..."));
+ _range_label = create_label (this, _("Range"), true);
+ _range = new wxChoice (this, wxID_ANY);
+ _range->Append (_("Full (JPEG, 0-255)"));
+ _range->Append (_("Video (MPEG, 16-235)"));
+
_description = new StaticText (this, wxT ("\n \n \n \n \n"), wxDefaultPosition, wxDefaultSize);
_description->SetFont(font);
_description = new StaticText (this, wxT ("\n \n \n \n \n"), wxDefaultPosition, wxDefaultSize);
_description->SetFont(font);
@@
-204,6
+209,7
@@
VideoPanel::VideoPanel (ContentPanel* p)
_reference->Bind (wxEVT_CHECKBOX, boost::bind (&VideoPanel::reference_clicked, this));
_filters_button->Bind (wxEVT_BUTTON, boost::bind (&VideoPanel::edit_filters_clicked, this));
_colour_conversion->Bind (wxEVT_CHOICE, boost::bind (&VideoPanel::colour_conversion_changed, this));
_reference->Bind (wxEVT_CHECKBOX, boost::bind (&VideoPanel::reference_clicked, this));
_filters_button->Bind (wxEVT_BUTTON, boost::bind (&VideoPanel::edit_filters_clicked, this));
_colour_conversion->Bind (wxEVT_CHOICE, boost::bind (&VideoPanel::colour_conversion_changed, this));
+ _range->Bind (wxEVT_CHOICE, boost::bind (&VideoPanel::range_changed, this));
_edit_colour_conversion_button->Bind (wxEVT_BUTTON, boost::bind (&VideoPanel::edit_colour_conversion_clicked, this));
add_to_grid ();
_edit_colour_conversion_button->Bind (wxEVT_BUTTON, boost::bind (&VideoPanel::edit_colour_conversion_clicked, this));
add_to_grid ();
@@
-253,6
+259,8
@@
VideoPanel::add_to_grid ()
_colour_conversion_label->Show (full);
_colour_conversion->Show (full);
_edit_colour_conversion_button->Show (full);
_colour_conversion_label->Show (full);
_colour_conversion->Show (full);
_edit_colour_conversion_button->Show (full);
+ _range_label->Show (full);
+ _range->Show (full);
add_label_to_sizer (_grid, _fade_in_label, true, wxGBPosition (r, 0));
_grid->Add (_fade_in, wxGBPosition (r, 1), wxGBSpan (1, 3));
add_label_to_sizer (_grid, _fade_in_label, true, wxGBPosition (r, 0));
_grid->Add (_fade_in, wxGBPosition (r, 1), wxGBSpan (1, 3));
@@
-284,12
+292,36
@@
VideoPanel::add_to_grid ()
_grid->Add (s, wxGBPosition (r, 1), wxDefaultSpan, wxALIGN_CENTER_VERTICAL);
}
++r;
_grid->Add (s, wxGBPosition (r, 1), wxDefaultSpan, wxALIGN_CENTER_VERTICAL);
}
++r;
+
+ add_label_to_sizer (_grid, _range_label, true, wxGBPosition(r, 0));
+ _grid->Add (_range, wxGBPosition(r, 1), wxGBSpan(1, 2), wxALIGN_CENTER_VERTICAL);
+ ++r;
}
_grid->Add (_description, wxGBPosition (r, 0), wxGBSpan (1, 4), wxEXPAND | wxALIGN_CENTER_VERTICAL, 6);
++r;
}
}
_grid->Add (_description, wxGBPosition (r, 0), wxGBSpan (1, 4), wxEXPAND | wxALIGN_CENTER_VERTICAL, 6);
++r;
}
+void
+VideoPanel::range_changed ()
+{
+ ContentList vc = _parent->selected_video ();
+ if (vc.size() != 1) {
+ return;
+ }
+
+ switch (_range->GetSelection()) {
+ case 0:
+ vc.front()->video->set_range (VIDEO_RANGE_FULL);
+ break;
+ case 1:
+ vc.front()->video->set_range (VIDEO_RANGE_VIDEO);
+ break;
+ default:
+ DCPOMATIC_ASSERT (false);
+ }
+}
+
void
VideoPanel::film_changed (Film::Property property)
void
VideoPanel::film_changed (Film::Property property)
@@
-389,6
+421,14
@@
VideoPanel::film_content_changed (int property)
checked_set (_reference, false);
}
checked_set (_reference, false);
}
+ setup_sensitivity ();
+ } else if (property == VideoContentProperty::RANGE) {
+ if (vcs) {
+ checked_set (_range, vcs->video->range() == VIDEO_RANGE_FULL ? 0 : 1);
+ } else {
+ checked_set (_range, 0);
+ }
+
setup_sensitivity ();
}
}
setup_sensitivity ();
}
}
@@
-487,6
+527,7
@@
VideoPanel::content_selection_changed ()
film_content_changed (VideoContentProperty::COLOUR_CONVERSION);
film_content_changed (VideoContentProperty::FADE_IN);
film_content_changed (VideoContentProperty::FADE_OUT);
film_content_changed (VideoContentProperty::COLOUR_CONVERSION);
film_content_changed (VideoContentProperty::FADE_IN);
film_content_changed (VideoContentProperty::FADE_OUT);
+ film_content_changed (VideoContentProperty::RANGE);
film_content_changed (FFmpegContentProperty::FILTERS);
film_content_changed (DCPContentProperty::REFERENCE_VIDEO);
film_content_changed (FFmpegContentProperty::FILTERS);
film_content_changed (DCPContentProperty::REFERENCE_VIDEO);
@@
-520,6
+561,7
@@
VideoPanel::setup_sensitivity ()
_filters->Enable (false);
_filters_button->Enable (false);
_colour_conversion->Enable (false);
_filters->Enable (false);
_filters_button->Enable (false);
_colour_conversion->Enable (false);
+ _range->Enable (false);
} else {
ContentList video_sel = _parent->selected_video ();
FFmpegContentList ffmpeg_sel = _parent->selected_ffmpeg ();
} else {
ContentList video_sel = _parent->selected_video ();
FFmpegContentList ffmpeg_sel = _parent->selected_ffmpeg ();
@@
-537,6
+579,7
@@
VideoPanel::setup_sensitivity ()
_filters->Enable (true);
_filters_button->Enable (single && !ffmpeg_sel.empty ());
_colour_conversion->Enable (single && !video_sel.empty ());
_filters->Enable (true);
_filters_button->Enable (single && !ffmpeg_sel.empty ());
_colour_conversion->Enable (single && !video_sel.empty ());
+ _range->Enable (single && !video_sel.empty());
}
ContentList vc = _parent->selected_video ();
}
ContentList vc = _parent->selected_video ();