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);
-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) )
{
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**")
{
TimedText::IResourceResolver* GetDefaultResolver()
{
if ( m_DefaultResolver.empty() )
- m_DefaultResolver = new FilenameResolver(PathDirname(m_Filename));
+ m_DefaultResolver = new LocalFilenameResolver(PathDirname(m_Filename));
return m_DefaultResolver;
}