summaryrefslogtreecommitdiff
path: root/src/AS_DCP_JP2K.cpp
diff options
context:
space:
mode:
authorjhurst <jhurst@cinecert.com>2016-11-22 17:58:19 +0000
committerjhurst <>2016-11-22 17:58:19 +0000
commit8fd602770d89acb171dbd878d8737ead85aa35d3 (patch)
tree229577c9b4389f7e05694a1f4241d0a9160dd461 /src/AS_DCP_JP2K.cpp
parentb3e312cda7ce3e7027f5fb44ef2ffd87d713dd8d (diff)
o Added optional Generic Partition to IMF Aux Data prototype, used to carry global metadata
o Added support for 192, 200 and 240 fps images, includes 96, 100 and 120 fpe stereo o Fixed raw essence detector for IMF Aux Data files o Added missing MCA properties to MCALabelSubDescriptor (contributed by Ruppel) o New MXF data type: LineMapPair o Added default 0,0 VideoLineMap value when wrapping CDCI with as-02-wrap o Added VideoLineMap property to GenericPictureEssenceDescriptor o Added timed text unwrap support to as-02-unwrap (contributed by Ruppel)
Diffstat (limited to 'src/AS_DCP_JP2K.cpp')
-rwxr-xr-xsrc/AS_DCP_JP2K.cpp40
1 files changed, 38 insertions, 2 deletions
diff --git a/src/AS_DCP_JP2K.cpp b/src/AS_DCP_JP2K.cpp
index acb8f4e..937231f 100755
--- a/src/AS_DCP_JP2K.cpp
+++ b/src/AS_DCP_JP2K.cpp
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2004-2014, John Hurst
+Copyright (c) 2004-2016, John Hurst
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -397,7 +397,10 @@ lh__Reader::OpenRead(const std::string& filename, EssenceType_t type)
|| ( m_EditRate == EditRate_30 && m_SampleRate == EditRate_60 )
|| ( m_EditRate == EditRate_48 && m_SampleRate == EditRate_96 )
|| ( m_EditRate == EditRate_50 && m_SampleRate == EditRate_100 )
- || ( m_EditRate == EditRate_60 && m_SampleRate == EditRate_120 ) )
+ || ( m_EditRate == EditRate_60 && m_SampleRate == EditRate_120 )
+ || ( m_EditRate == EditRate_96 && m_SampleRate == EditRate_192 )
+ || ( m_EditRate == EditRate_100 && m_SampleRate == EditRate_200 )
+ || ( m_EditRate == EditRate_120 && m_SampleRate == EditRate_240 ) )
{
DefaultLogSink().Debug("File may contain JPEG Interop stereoscopic images.\n");
return RESULT_SFORMAT;
@@ -456,6 +459,30 @@ lh__Reader::OpenRead(const std::string& filename, EssenceType_t type)
return RESULT_FORMAT;
}
}
+ else if ( m_EditRate == EditRate_96 )
+ {
+ if ( m_SampleRate != EditRate_192 )
+ {
+ DefaultLogSink().Error("EditRate and SampleRate not correct for 96/192 stereoscopic essence.\n");
+ return RESULT_FORMAT;
+ }
+ }
+ else if ( m_EditRate == EditRate_100 )
+ {
+ if ( m_SampleRate != EditRate_200 )
+ {
+ DefaultLogSink().Error("EditRate and SampleRate not correct for 100/200 stereoscopic essence.\n");
+ return RESULT_FORMAT;
+ }
+ }
+ else if ( m_EditRate == EditRate_120 )
+ {
+ if ( m_SampleRate != EditRate_240 )
+ {
+ DefaultLogSink().Error("EditRate and SampleRate not correct for 120/240 stereoscopic essence.\n");
+ return RESULT_FORMAT;
+ }
+ }
else
{
DefaultLogSink().Error("EditRate not correct for stereoscopic essence: %d/%d.\n",
@@ -1330,6 +1357,15 @@ ASDCP::JP2K::MXFSWriter::OpenWrite(const std::string& filename, const WriterInfo
else if ( PDesc.EditRate == ASDCP::EditRate_60 )
TmpPDesc.EditRate = ASDCP::EditRate_120;
+ else if ( PDesc.EditRate == ASDCP::EditRate_96 )
+ TmpPDesc.EditRate = ASDCP::EditRate_192;
+
+ else if ( PDesc.EditRate == ASDCP::EditRate_100 )
+ TmpPDesc.EditRate = ASDCP::EditRate_200;
+
+ else if ( PDesc.EditRate == ASDCP::EditRate_120 )
+ TmpPDesc.EditRate = ASDCP::EditRate_240;
+
result = m_Writer->SetSourceStream(TmpPDesc, JP2K_S_PACKAGE_LABEL, PDesc.EditRate);
}