X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fsndfile_content.h;h=a79fb99b6bd01f6497d6e3dd2d2184c2c57d5ec1;hb=d50bc4c21be3e0766916b47a6e688cf896bed059;hp=3d3f0c36c3bce3d0ed298603d8571805f908375c;hpb=d19b7cbd3d1a428697bc9b26fdc0be36fafa444a;p=dcpomatic.git diff --git a/src/lib/sndfile_content.h b/src/lib/sndfile_content.h index 3d3f0c36c..a79fb99b6 100644 --- a/src/lib/sndfile_content.h +++ b/src/lib/sndfile_content.h @@ -17,8 +17,8 @@ */ -#ifndef DVDOMATIC_SNDFILE_CONTENT_H -#define DVDOMATIC_SNDFILE_CONTENT_H +#ifndef DCPOMATIC_SNDFILE_CONTENT_H +#define DCPOMATIC_SNDFILE_CONTENT_H extern "C" { #include @@ -29,11 +29,17 @@ namespace cxml { class Node; } +class SndfileContentProperty +{ +public: + static int const VIDEO_FRAME_RATE; +}; + class SndfileContent : public AudioContent { public: SndfileContent (boost::shared_ptr, boost::filesystem::path); - SndfileContent (boost::shared_ptr, boost::shared_ptr); + SndfileContent (boost::shared_ptr, boost::shared_ptr, int); boost::shared_ptr shared_from_this () { return boost::dynamic_pointer_cast (Content::shared_from_this ()); @@ -41,23 +47,23 @@ public: void examine (boost::shared_ptr); std::string summary () const; + std::string technical_summary () const; std::string information () const; void as_xml (xmlpp::Node *) const; - boost::shared_ptr clone () const; - Time length () const; + Time full_length () const; - /* AudioContent */ - int audio_channels () const { + /* AudioContent */ + int audio_channels () const { boost::mutex::scoped_lock lm (_mutex); return _audio_channels; } - AudioContent::Frame audio_length () const { + AudioContent::Frame audio_length () const { boost::mutex::scoped_lock lm (_mutex); return _audio_length; } - int content_audio_frame_rate () const { + int content_audio_frame_rate () const { boost::mutex::scoped_lock lm (_mutex); return _audio_frame_rate; } @@ -69,6 +75,17 @@ public: return _audio_mapping; } + void set_video_frame_rate (float r) { + { + boost::mutex::scoped_lock lm (_mutex); + _video_frame_rate = r; + } + + signal_changed (SndfileContentProperty::VIDEO_FRAME_RATE); + } + + float video_frame_rate () const; + void set_audio_mapping (AudioMapping); static bool valid_file (boost::filesystem::path); @@ -78,6 +95,10 @@ private: AudioContent::Frame _audio_length; int _audio_frame_rate; AudioMapping _audio_mapping; + /** Video frame rate that this audio has been prepared for, + if specified. + */ + boost::optional _video_frame_rate; }; #endif