2014-06-26 Carl Hetherington <cth@carlh.net>
+ * Allow override of detected video frame rates.
+
* Optimisation of uncertain effect to encoder and server
thread handling.
def dependencies(target):
return (('ffmpeg-cdist', '67dc770'),
- ('libdcp', 'v0.95.0'))
+ ('libdcp', '2224998'))
def build(target, options):
cmd = './waf configure --prefix=%s' % target.work_dir_cscript()
set_right_crop (crop / 2);
}
+void
+VideoContent::set_video_frame_rate (float r)
+{
+ {
+ boost::mutex::scoped_lock lm (_mutex);
+ if (_video_frame_rate == r) {
+ return;
+ }
+
+ _video_frame_rate = r;
+ }
+
+ signal_changed (VideoContentProperty::VIDEO_FRAME_RATE);
+}
+
VideoContentScale::VideoContentScale (Ratio const * r)
: _ratio (r)
, _scale (true)
}
void set_video_frame_type (VideoFrameType);
+ void set_video_frame_rate (float);
void set_left_crop (int);
void set_right_crop (int);
*/
+#include <libdcp/raw_convert.h>
#include "lib/content.h"
#include "lib/image_content.h"
#include "timing_panel.h"
using std::string;
using boost::shared_ptr;
using boost::dynamic_pointer_cast;
-using boost::lexical_cast;
+using libdcp::raw_convert;
TimingPanel::TimingPanel (FilmEditor* e)
/* horrid hack for apparent lack of context support with wxWidgets i18n code */
if (content) {
shared_ptr<VideoContent> vc = dynamic_pointer_cast<VideoContent> (content);
if (vc) {
- _video_frame_rate->SetValue (std_to_wx (lexical_cast<string> (vc->video_frame_rate ())));
+ _video_frame_rate->SetValue (std_to_wx (raw_convert<string> (vc->video_frame_rate (), 5)));
} else {
_video_frame_rate->SetValue ("24");
}
}
}
+ shared_ptr<VideoContent> vc = dynamic_pointer_cast<VideoContent> (content);
shared_ptr<ImageContent> ic = dynamic_pointer_cast<ImageContent> (content);
_full_length->set_editable (ic && ic->still ());
_play_length->set_editable (!ic || !ic->still ());
- _video_frame_rate->Enable (ic && !ic->still ());
+ _video_frame_rate->Enable (vc);
_set_video_frame_rate->Enable (false);
}
{
ContentList c = _editor->selected_content ();
if (c.size() == 1) {
- shared_ptr<ImageContent> ic = dynamic_pointer_cast<ImageContent> (c.front ());
- if (ic) {
- ic->set_video_frame_rate (lexical_cast<float> (wx_to_std (_video_frame_rate->GetValue ())));
+ shared_ptr<VideoContent> vc = dynamic_pointer_cast<VideoContent> (c.front ());
+ if (vc) {
+ vc->set_video_frame_rate (raw_convert<float> (wx_to_std (_video_frame_rate->GetValue ())));
}
_set_video_frame_rate->Enable (false);
}
conf.check_cfg(package='libopenjpeg', args='--cflags --libs', max_version='1.5.2', mandatory=True)
def static_dcp(conf, static_boost, static_xmlpp, static_xmlsec, static_ssh):
- conf.check_cfg(package='libdcp', atleast_version='0.92', args='--cflags', uselib_store='DCP', mandatory=True)
+ conf.check_cfg(package='libdcp', atleast_version='0.95', args='--cflags', uselib_store='DCP', mandatory=True)
conf.env.DEFINES_DCP = [f.replace('\\', '') for f in conf.env.DEFINES_DCP]
conf.env.STLIB_DCP = ['dcp', 'asdcp-libdcp', 'kumu-libdcp']
conf.env.LIB_DCP = ['glibmm-2.4', 'ssl', 'crypto', 'bz2', 'xslt']