summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mxf_asset.cc12
-rw-r--r--src/mxf_asset.h4
-rw-r--r--src/picture_asset.cc4
-rw-r--r--src/sound_asset.cc4
4 files changed, 20 insertions, 4 deletions
diff --git a/src/mxf_asset.cc b/src/mxf_asset.cc
index 338d125f..77e4b098 100644
--- a/src/mxf_asset.cc
+++ b/src/mxf_asset.cc
@@ -42,6 +42,7 @@ MXFAsset::MXFAsset (string directory, string file_name, boost::signals2::signal<
, _fps (fps)
, _entry_point (0)
, _intrinsic_duration (intrinsic_duration)
+ , _duration (intrinsic_duration)
{
}
@@ -53,6 +54,12 @@ MXFAsset::set_entry_point (int e)
}
void
+MXFAsset::set_duration (int d)
+{
+ _duration = d;
+}
+
+void
MXFAsset::fill_writer_info (ASDCP::WriterInfo* writer_info) const
{
writer_info->ProductVersion = Metadata::instance()->product_version;
@@ -89,6 +96,11 @@ MXFAsset::equals (shared_ptr<const Asset> other, EqualityOptions, list<string>&
return false;
}
+ if (_duration != other_mxf->_duration) {
+ notes.push_back ("MXF durations differ");
+ return false;
+ }
+
return true;
}
diff --git a/src/mxf_asset.h b/src/mxf_asset.h
index 10049232..95261353 100644
--- a/src/mxf_asset.h
+++ b/src/mxf_asset.h
@@ -40,6 +40,7 @@ public:
MXFAsset (std::string directory, std::string file_name, boost::signals2::signal<void (float)>* progress, int fps, int intrinsic_duration);
void set_entry_point (int e);
+ void set_duration (int d);
virtual bool equals (boost::shared_ptr<const Asset> other, EqualityOptions opt, std::list<std::string>& notes) const;
@@ -55,9 +56,12 @@ protected:
boost::signals2::signal<void (float)>* _progress;
/** Frames per second */
int _fps;
+ /** Start point to present in frames */
int _entry_point;
/** Total length in frames */
int _intrinsic_duration;
+ /** Length to present in frames */
+ int _duration;
};
}
diff --git a/src/picture_asset.cc b/src/picture_asset.cc
index 905f75f5..3058c13d 100644
--- a/src/picture_asset.cc
+++ b/src/picture_asset.cc
@@ -60,8 +60,8 @@ PictureAsset::write_to_cpl (ostream& s) const
<< " <AnnotationText>" << _file_name << "</AnnotationText>\n"
<< " <EditRate>" << _fps << " 1</EditRate>\n"
<< " <IntrinsicDuration>" << _intrinsic_duration << "</IntrinsicDuration>\n"
- << " <EntryPoint>0</EntryPoint>\n"
- << " <Duration>" << _intrinsic_duration << "</Duration>\n"
+ << " <EntryPoint>" << _entry_point << "</EntryPoint>\n"
+ << " <Duration>" << _duration << "</Duration>\n"
<< " <FrameRate>" << _fps << " 1</FrameRate>\n"
<< " <ScreenAspectRatio>" << _size.width << " " << _size.height << "</ScreenAspectRatio>\n"
<< " </MainPicture>\n";
diff --git a/src/sound_asset.cc b/src/sound_asset.cc
index 07132665..7abd2037 100644
--- a/src/sound_asset.cc
+++ b/src/sound_asset.cc
@@ -214,8 +214,8 @@ SoundAsset::write_to_cpl (ostream& s) const
<< " <AnnotationText>" << _file_name << "</AnnotationText>\n"
<< " <EditRate>" << _fps << " 1</EditRate>\n"
<< " <IntrinsicDuration>" << _intrinsic_duration << "</IntrinsicDuration>\n"
- << " <EntryPoint>0</EntryPoint>\n"
- << " <Duration>" << _intrinsic_duration << "</Duration>\n"
+ << " <EntryPoint>" << _entry_point << "</EntryPoint>\n"
+ << " <Duration>" << _duration << "</Duration>\n"
<< " </MainSound>\n";
}