summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2013-03-02 19:16:25 +0000
committerCarl Hetherington <cth@carlh.net>2013-03-02 19:16:25 +0000
commit99d2e172f5c7fae21e5126a063014727871e9948 (patch)
tree1d796a5c0dd91c9d44cb0e360c8668a9b3acc29d /src
parent53eb16342d492236aca77e4b73c0911a5d5eec9f (diff)
Add similar format description,
Diffstat (limited to 'src')
-rw-r--r--src/lib/format.cc85
-rw-r--r--src/lib/format.h12
-rw-r--r--src/lib/util.cc8
-rw-r--r--src/lib/util.h2
-rw-r--r--src/wx/film_editor.cc71
-rw-r--r--src/wx/film_editor.h3
6 files changed, 130 insertions, 51 deletions
diff --git a/src/lib/format.cc b/src/lib/format.cc
index 0e4830cd7..b506c7000 100644
--- a/src/lib/format.cc
+++ b/src/lib/format.cc
@@ -71,19 +71,70 @@ void
Format::setup_formats ()
{
/// TRANSLATORS: these are film picture aspect ratios; "Academy" means 1.37, "Flat" 1.85 and "Scope" 2.39.
- _formats.push_back (new FixedFormat (119, libdcp::Size (1285, 1080), N_("119"), _("1.19"), N_("F")));
- _formats.push_back (new FixedFormat (133, libdcp::Size (1436, 1080), N_("133"), _("1.33"), N_("F")));
- _formats.push_back (new FixedFormat (138, libdcp::Size (1485, 1080), N_("138"), _("1.375"), N_("F")));
- _formats.push_back (new FixedFormat (133, libdcp::Size (1998, 1080), N_("133-in-flat"), _("4:3 within Flat"), N_("F")));
- _formats.push_back (new FixedFormat (137, libdcp::Size (1480, 1080), N_("137"), _("Academy"), N_("F")));
- _formats.push_back (new FixedFormat (166, libdcp::Size (1793, 1080), N_("166"), _("1.66"), N_("F")));
- _formats.push_back (new FixedFormat (166, libdcp::Size (1998, 1080), N_("166-in-flat"), _("1.66 within Flat"), N_("F")));
- _formats.push_back (new FixedFormat (178, libdcp::Size (1998, 1080), N_("178-in-flat"), _("16:9 within Flat"), N_("F")));
- _formats.push_back (new FixedFormat (178, libdcp::Size (1920, 1080), N_("178"), _("16:9"), N_("F")));
- _formats.push_back (new FixedFormat (185, libdcp::Size (1998, 1080), N_("185"), _("Flat"), N_("F")));
- _formats.push_back (new FixedFormat (239, libdcp::Size (2048, 858), N_("239"), _("Scope"), N_("S")));
- _formats.push_back (new VariableFormat (libdcp::Size (1998, 1080), N_("var-185"), _("Flat"), N_("F")));
- _formats.push_back (new VariableFormat (libdcp::Size (2048, 858), N_("var-239"), _("Scope"), N_("S")));
+ _formats.push_back (
+ new FixedFormat (119, libdcp::Size (1285, 1080), N_("119"), _("1.19"), N_("F"),
+ _("Source scaled to 1.19:1")
+ ));
+
+ _formats.push_back (
+ new FixedFormat (133, libdcp::Size (1436, 1080), N_("133"), _("1.33"), N_("F"),
+ _("Source scaled to 1.33:1")
+ ));
+
+ _formats.push_back (
+ new FixedFormat (138, libdcp::Size (1485, 1080), N_("138"), _("1.375"), N_("F"),
+ _("Source scaled to 1.375:1")
+ ));
+
+ _formats.push_back (
+ new FixedFormat (133, libdcp::Size (1998, 1080), N_("133-in-flat"), _("4:3 within Flat"), N_("F"),
+ _("Source scaled to 1.33:1 then pillarboxed to Flat")
+ ));
+
+ _formats.push_back (
+ new FixedFormat (137, libdcp::Size (1480, 1080), N_("137"), _("Academy"), N_("F"),
+ _("Source scaled to 1.37:1 (Academy ratio)")
+ ));
+
+ _formats.push_back (
+ new FixedFormat (166, libdcp::Size (1793, 1080), N_("166"), _("1.66"), N_("F"),
+ _("Source scaled to 1.66:1")
+ ));
+
+ _formats.push_back (
+ new FixedFormat (166, libdcp::Size (1998, 1080), N_("166-in-flat"), _("1.66 within Flat"), N_("F"),
+ _("Source scaled to 1.66:1 then pillarboxed to Flat")
+ ));
+
+ _formats.push_back (
+ new FixedFormat (178, libdcp::Size (1998, 1080), N_("178-in-flat"), _("16:9 within Flat"), N_("F"),
+ _("Source scaled to 1.78:1 then pillarboxed to Flat")
+ ));
+
+ _formats.push_back (
+ new FixedFormat (178, libdcp::Size (1920, 1080), N_("178"), _("16:9"), N_("F"),
+ _("Source scaled to 1.78:1")
+ ));
+
+ _formats.push_back (
+ new FixedFormat (185, libdcp::Size (1998, 1080), N_("185"), _("Flat"), N_("F"),
+ _("Source scaled to Flat (1.85:1)")
+ ));
+
+ _formats.push_back (
+ new FixedFormat (239, libdcp::Size (2048, 858), N_("239"), _("Scope"), N_("S"),
+ _("Source scaled to Scope (2.39:1)")
+ ));
+
+ _formats.push_back (
+ new VariableFormat (libdcp::Size (1998, 1080), N_("var-185"), _("Flat without stretch"), N_("F"),
+ _("Source scaled to fit Flat preserving its aspect ratio")
+ ));
+
+ _formats.push_back (
+ new VariableFormat (libdcp::Size (2048, 858), N_("var-239"), _("Scope without stretch"), N_("S"),
+ _("Source scaled to fit Scope preserving its aspect ratio")
+ ));
}
/** @param n Nickname.
@@ -144,8 +195,8 @@ Format::all ()
* @param id ID (e.g. 185)
* @param n Nick name (e.g. Flat)
*/
-FixedFormat::FixedFormat (int r, libdcp::Size dcp, string id, string n, string d)
- : Format (dcp, id, n, d)
+FixedFormat::FixedFormat (int r, libdcp::Size dcp, string id, string n, string d, string e)
+ : Format (dcp, id, n, d, e)
, _ratio (r)
{
@@ -173,8 +224,8 @@ Format::container_ratio_as_float () const
return static_cast<float> (_dcp_size.width) / _dcp_size.height;
}
-VariableFormat::VariableFormat (libdcp::Size dcp, string id, string n, string d)
- : Format (dcp, id, n, d)
+VariableFormat::VariableFormat (libdcp::Size dcp, string id, string n, string d, string e)
+ : Format (dcp, id, n, d, e)
{
}
diff --git a/src/lib/format.h b/src/lib/format.h
index 783ff25ce..305524628 100644
--- a/src/lib/format.h
+++ b/src/lib/format.h
@@ -31,11 +31,12 @@ class Film;
class Format
{
public:
- Format (libdcp::Size dcp, std::string id, std::string n, std::string d)
+ Format (libdcp::Size dcp, std::string id, std::string n, std::string d, std::string e)
: _dcp_size (dcp)
, _id (id)
, _nickname (n)
, _dci_name (d)
+ , _description (e)
{}
/** @return the aspect ratio multiplied by 100
@@ -75,6 +76,10 @@ public:
return _dci_name;
}
+ std::string description () const {
+ return _description;
+ }
+
std::string as_metadata () const;
static Format const * from_nickname (std::string n);
@@ -94,6 +99,7 @@ protected:
/** nickname (e.g. Flat, Scope) */
std::string _nickname;
std::string _dci_name;
+ std::string _description;
private:
/** all available formats */
@@ -107,7 +113,7 @@ private:
class FixedFormat : public Format
{
public:
- FixedFormat (int, libdcp::Size, std::string, std::string, std::string);
+ FixedFormat (int, libdcp::Size, std::string, std::string, std::string, std::string);
int ratio_as_integer (boost::shared_ptr<const Film>) const {
return _ratio;
@@ -128,7 +134,7 @@ private:
class VariableFormat : public Format
{
public:
- VariableFormat (libdcp::Size, std::string, std::string, std::string);
+ VariableFormat (libdcp::Size, std::string, std::string, std::string, std::string);
int ratio_as_integer (boost::shared_ptr<const Film> f) const;
float ratio_as_float (boost::shared_ptr<const Film> f) const;
diff --git a/src/lib/util.cc b/src/lib/util.cc
index d1450ccc2..71e864ebd 100644
--- a/src/lib/util.cc
+++ b/src/lib/util.cc
@@ -962,17 +962,17 @@ FrameRateConversion::FrameRateConversion (float source, int dcp)
change_speed = !about_equal (source * factor(), dcp);
if (!skip && !repeat && !change_speed) {
- explanation = _("DCP and source have the same rate.\n");
+ description = _("DCP and source have the same rate.\n");
} else {
if (skip) {
- explanation = _("DCP will use every other frame of the source.\n");
+ description = _("DCP will use every other frame of the source.\n");
} else if (repeat) {
- explanation = _("Each source frame will be doubled in the DCP.\n");
+ description = _("Each source frame will be doubled in the DCP.\n");
}
if (change_speed) {
float const pc = (source * factor()) * 100 / dcp;
- explanation += String::compose (_("DCP will run at %1%% of the source speed."), pc);
+ description += String::compose (_("DCP will run at %1%% of the source speed."), pc);
}
}
}
diff --git a/src/lib/util.h b/src/lib/util.h
index b0f405890..ec67469c1 100644
--- a/src/lib/util.h
+++ b/src/lib/util.h
@@ -94,7 +94,7 @@ struct FrameRateConversion
*/
bool change_speed;
- std::string explanation;
+ std::string description;
};
int best_dcp_frame_rate (float);
diff --git a/src/wx/film_editor.cc b/src/wx/film_editor.cc
index 12ba7c1bc..a97562b98 100644
--- a/src/wx/film_editor.cc
+++ b/src/wx/film_editor.cc
@@ -97,7 +97,7 @@ FilmEditor::make_film_panel ()
_film_sizer = new wxBoxSizer (wxVERTICAL);
_film_panel->SetSizer (_film_sizer);
- wxGridBagSizer* grid = new wxGridBagSizer (6, 6);
+ wxGridBagSizer* grid = new wxGridBagSizer (4, 4);
_film_sizer->Add (grid, 0, wxALL, 8);
int r = 0;
@@ -149,12 +149,12 @@ FilmEditor::make_film_panel ()
}
++r;
- _frame_rate_explanation = new wxStaticText (_film_panel, wxID_ANY, wxT (""), wxDefaultPosition, wxDefaultSize, wxST_NO_AUTORESIZE);
- grid->Add (video_control (_frame_rate_explanation), wxGBPosition (r, 0), wxGBSpan (1, 2), wxEXPAND | wxALIGN_CENTER_VERTICAL);
- wxFont font = _frame_rate_explanation->GetFont();
+ _frame_rate_description = new wxStaticText (_film_panel, wxID_ANY, wxT (""), wxDefaultPosition, wxDefaultSize);
+ grid->Add (video_control (_frame_rate_description), wxGBPosition (r, 0), wxGBSpan (1, 2), wxEXPAND | wxALIGN_CENTER_VERTICAL | wxALL, 6);
+ wxFont font = _frame_rate_description->GetFont();
font.SetStyle(wxFONTSTYLE_ITALIC);
font.SetPointSize(font.GetPointSize() - 1);
- _frame_rate_explanation->SetFont(font);
+ _frame_rate_description->SetFont(font);
++r;
video_control (add_label_to_grid_bag_sizer (grid, _film_panel, _("Original Size"), wxGBPosition (r, 0)));
@@ -262,32 +262,46 @@ FilmEditor::make_video_panel ()
_video_sizer = new wxBoxSizer (wxVERTICAL);
_video_panel->SetSizer (_video_sizer);
- wxFlexGridSizer* grid = new wxFlexGridSizer (2, 4, 4);
+ wxGridBagSizer* grid = new wxGridBagSizer (4, 4);
_video_sizer->Add (grid, 0, wxALL, 8);
- add_label_to_sizer (grid, _video_panel, _("Format"));
+ int r = 0;
+ add_label_to_grid_bag_sizer (grid, _video_panel, _("Format"), wxGBPosition (r, 0));
_format = new wxChoice (_video_panel, wxID_ANY);
- grid->Add (_format);
+ grid->Add (_format, wxGBPosition (r, 1));
+ ++r;
- add_label_to_sizer (grid, _video_panel, _("Left crop"));
+ _format_description = new wxStaticText (_video_panel, wxID_ANY, wxT (""), wxDefaultPosition, wxDefaultSize);
+ grid->Add (_format_description, wxGBPosition (r, 0), wxGBSpan (1, 2), wxEXPAND | wxALIGN_CENTER_VERTICAL | wxALL, 6);
+ wxFont font = _format_description->GetFont();
+ font.SetStyle(wxFONTSTYLE_ITALIC);
+ font.SetPointSize(font.GetPointSize() - 1);
+ _format_description->SetFont(font);
+ ++r;
+
+ add_label_to_grid_bag_sizer (grid, _video_panel, _("Left crop"), wxGBPosition (r, 0));
_left_crop = new wxSpinCtrl (_video_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize (64, -1));
- grid->Add (_left_crop);
+ grid->Add (_left_crop, wxGBPosition (r, 1));
+ ++r;
- add_label_to_sizer (grid, _video_panel, _("Right crop"));
+ add_label_to_grid_bag_sizer (grid, _video_panel, _("Right crop"), wxGBPosition (r, 0));
_right_crop = new wxSpinCtrl (_video_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize (64, -1));
- grid->Add (_right_crop);
+ grid->Add (_right_crop, wxGBPosition (r, 1));
+ ++r;
- add_label_to_sizer (grid, _video_panel, _("Top crop"));
+ add_label_to_grid_bag_sizer (grid, _video_panel, _("Top crop"), wxGBPosition (r, 0));
_top_crop = new wxSpinCtrl (_video_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize (64, -1));
- grid->Add (_top_crop);
+ grid->Add (_top_crop, wxGBPosition (r, 1));
+ ++r;
- add_label_to_sizer (grid, _video_panel, _("Bottom crop"));
+ add_label_to_grid_bag_sizer (grid, _video_panel, _("Bottom crop"), wxGBPosition (r, 0));
_bottom_crop = new wxSpinCtrl (_video_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize (64, -1));
- grid->Add (_bottom_crop);
+ grid->Add (_bottom_crop, wxGBPosition (r, 1));
+ ++r;
/* VIDEO-only stuff */
{
- video_control (add_label_to_sizer (grid, _video_panel, _("Filters")));
+ video_control (add_label_to_grid_bag_sizer (grid, _video_panel, _("Filters"), wxGBPosition (r, 0)));
wxSizer* s = new wxBoxSizer (wxHORIZONTAL);
_filters = new wxStaticText (_video_panel, wxID_ANY, _("None"));
video_control (_filters);
@@ -295,34 +309,38 @@ FilmEditor::make_video_panel ()
_filters_button = new wxButton (_video_panel, wxID_ANY, _("Edit..."));
video_control (_filters_button);
s->Add (_filters_button, 0);
- grid->Add (s, 1);
+ grid->Add (s, wxGBPosition (r, 1), wxDefaultSpan, wxALIGN_CENTER_VERTICAL);
}
+ ++r;
- video_control (add_label_to_sizer (grid, _video_panel, _("Scaler")));
+ video_control (add_label_to_grid_bag_sizer (grid, _video_panel, _("Scaler"), wxGBPosition (r, 0)));
_scaler = new wxChoice (_video_panel, wxID_ANY);
- grid->Add (video_control (_scaler), 1);
+ grid->Add (video_control (_scaler), wxGBPosition (r, 1));
+ ++r;
vector<Scaler const *> const sc = Scaler::all ();
for (vector<Scaler const *>::const_iterator i = sc.begin(); i != sc.end(); ++i) {
_scaler->Append (std_to_wx ((*i)->name()));
}
- add_label_to_sizer (grid, _video_panel, _("Colour look-up table"));
+ add_label_to_grid_bag_sizer (grid, _video_panel, _("Colour look-up table"), wxGBPosition (r, 0));
_colour_lut = new wxChoice (_video_panel, wxID_ANY);
for (int i = 0; i < 2; ++i) {
_colour_lut->Append (std_to_wx (colour_lut_index_to_name (i)));
}
_colour_lut->SetSelection (0);
- grid->Add (_colour_lut, 1, wxEXPAND);
+ grid->Add (_colour_lut, wxGBPosition (r, 1), wxDefaultSpan, wxEXPAND);
+ ++r;
{
- add_label_to_sizer (grid, _video_panel, _("JPEG2000 bandwidth"));
+ add_label_to_grid_bag_sizer (grid, _video_panel, _("JPEG2000 bandwidth"), wxGBPosition (r, 0));
wxSizer* s = new wxBoxSizer (wxHORIZONTAL);
_j2k_bandwidth = new wxSpinCtrl (_video_panel, wxID_ANY);
s->Add (_j2k_bandwidth, 1);
add_label_to_sizer (s, _video_panel, _("MBps"));
- grid->Add (s, 1);
+ grid->Add (s, wxGBPosition (r, 1));
}
+ ++r;
_left_crop->SetRange (0, 1024);
_top_crop->SetRange (0, 1024);
@@ -624,6 +642,8 @@ FilmEditor::film_changed (Film::Property p)
checked_set (_format, n);
}
setup_dcp_name ();
+
+ _format_description->SetLabel (std_to_wx (_film->format()->description ()));
break;
}
case Film::CROP:
@@ -761,7 +781,8 @@ FilmEditor::film_changed (Film::Property p)
}
}
}
- _frame_rate_explanation->SetLabel (std_to_wx (FrameRateConversion (_film->source_frame_rate(), _film->dcp_frame_rate()).explanation));
+ _frame_rate_description->SetLabel (std_to_wx (FrameRateConversion (_film->source_frame_rate(), _film->dcp_frame_rate()).description));
+ _best_dcp_frame_rate->Enable (best_dcp_frame_rate (_film->source_frame_rate ()) != _film->dcp_frame_rate ());
}
}
diff --git a/src/wx/film_editor.h b/src/wx/film_editor.h
index e9e21894e..29b453b8b 100644
--- a/src/wx/film_editor.h
+++ b/src/wx/film_editor.h
@@ -123,6 +123,7 @@ private:
wxButton* _edit_dci_button;
/** The Film's format */
wxChoice* _format;
+ wxStaticText* _format_description;
/** The Film's content file */
wxFilePickerCtrl* _content;
wxCheckBox* _trust_content_header;
@@ -163,7 +164,7 @@ private:
wxStaticText* _source_frame_rate;
wxChoice* _dcp_frame_rate;
wxButton* _best_dcp_frame_rate;
- wxStaticText* _frame_rate_explanation;
+ wxStaticText* _frame_rate_description;
/** The Film's original size */
wxStaticText* _original_size;
/** The Film's length */