buggy
authorjhurst <jhurst@cinecert.com>
Tue, 22 Oct 2013 22:21:31 +0000 (22:21 +0000)
committerjhurst <>
Tue, 22 Oct 2013 22:21:31 +0000 (22:21 +0000)
src/AS_DCP_TimedText.cpp
src/TimedText_Parser.cpp

index e77207fb9297bd4c3b943bee5266e1cd5cff7bd4..ac95e24bcf400dfa05877c2c2524140256238680 100644 (file)
@@ -577,6 +577,18 @@ ASDCP::TimedText::MXFWriter::h__Writer::SetSourceStream(ASDCP::TimedText::TimedT
   if ( ASDCP_SUCCESS(result) )
     {
       InitHeader();
+
+      // First RIP Entry
+      if ( m_Info.LabelSetType == LS_MXF_SMPTE )  // ERK
+       {
+         m_RIP.PairArray.push_back(RIP::Pair(0, 0)); // 3-part, no essence in header
+       }
+      else
+       {
+         DefaultLogSink().Error("Unable to write Interop timed-text MXF file.  Use SMOTE DCP options instead.\n");
+         return RESULT_FORMAT;
+       }
+
       // timecode rate and essence rate are the same
       AddDMSegment(m_TDesc.EditRate, m_TDesc.EditRate, derive_timecode_rate_from_edit_rate(m_TDesc.EditRate), TIMED_TEXT_DEF_LABEL,
                   UL(m_Dict->ul(MDD_DataDataDef)), TIMED_TEXT_PACKAGE_LABEL);
index bc3023b4f30b0696821bfbad484a1046b2c68053..a1f3de4b4284937280c45eefb9a78d23816a1b76 100644 (file)
@@ -45,15 +45,15 @@ const char* c_dcst_namespace_name = "http://www.smpte-ra.org/schemas/428-7/2007/
 
 
 
-class FilenameResolver : public ASDCP::TimedText::IResourceResolver
+class LocalFilenameResolver : public ASDCP::TimedText::IResourceResolver
 {
   std::string m_Dirname;
 
-  FilenameResolver();
-  bool operator==(const FilenameResolver&);
+  LocalFilenameResolver();
+  bool operator==(const LocalFilenameResolver&);
 
 public:
-  FilenameResolver(const std::string& dirname)
+  LocalFilenameResolver(const std::string& dirname)
   {
     if ( PathIsDirectory(dirname) )
       {
@@ -109,7 +109,7 @@ public:
   std::string m_Filename;
   std::string m_XMLDoc;
   TimedTextDescriptor  m_TDesc;
-  mem_ptr<FilenameResolver> m_DefaultResolver;
+  mem_ptr<LocalFilenameResolver> m_DefaultResolver;
 
   h__SubtitleParser() : m_Root("**ParserRoot**")
   {
@@ -121,7 +121,7 @@ public:
   TimedText::IResourceResolver* GetDefaultResolver()
   {
     if ( m_DefaultResolver.empty() )
-      m_DefaultResolver = new FilenameResolver(PathDirname(m_Filename));
+      m_DefaultResolver = new LocalFilenameResolver(PathDirname(m_Filename));
     
     return m_DefaultResolver;
   }