summaryrefslogtreecommitdiff
path: root/src/AS_02_JXS.cpp
diff options
context:
space:
mode:
authorThomas Richter <thomas.richter@iis.fraunhofer.de>2022-02-04 16:05:18 +0100
committerThomas Richter <thomas.richter@iis.fraunhofer.de>2022-02-04 16:05:18 +0100
commit548666ad15294271a4e8fc3b85fd0710e3eca5c9 (patch)
treedd70047f368cfdfb667a87abb5f771c3b5778e5b /src/AS_02_JXS.cpp
parent04dfb231f7639a2a8252e240c51baf59991411c7 (diff)
Fixed creating the essence coding of the JPEG XS file.
Diffstat (limited to 'src/AS_02_JXS.cpp')
-rw-r--r--src/AS_02_JXS.cpp30
1 files changed, 18 insertions, 12 deletions
diff --git a/src/AS_02_JXS.cpp b/src/AS_02_JXS.cpp
index 103436e..dd20c29 100644
--- a/src/AS_02_JXS.cpp
+++ b/src/AS_02_JXS.cpp
@@ -351,18 +351,24 @@ AS_02::JXS::MXFWriter::h__Writer::OpenWrite(const std::string& filename,
m_IndexStrategy = IndexStrategy;
m_PartitionSpace = PartitionSpace_sec; // later converted to edit units by SetSourceStream()
m_HeaderSize = HeaderSize;
-
- if ( picture_descriptor.GetUL() != UL(m_Dict->ul(MDD_RGBAEssenceDescriptor))
- && picture_descriptor.GetUL() != UL(m_Dict->ul(MDD_CDCIEssenceDescriptor)) )
- {
- DefaultLogSink().Error("Essence descriptor is not a RGBAEssenceDescriptor or CDCIEssenceDescriptor.\n");
- picture_descriptor.Dump();
- return RESULT_AS02_FORMAT;
- }
-
- m_EssenceDescriptor = new ASDCP::MXF::GenericPictureEssenceDescriptor(m_Dict);
- m_EssenceDescriptor->Copy(picture_descriptor);
-
+
+ if ( picture_descriptor.GetUL() == UL(m_Dict->ul(MDD_RGBAEssenceDescriptor))) {
+ ASDCP::MXF::RGBAEssenceDescriptor *essence = new ASDCP::MXF::RGBAEssenceDescriptor(m_Dict);
+ ASDCP::MXF::RGBAEssenceDescriptor *mine = dynamic_cast<ASDCP::MXF::RGBAEssenceDescriptor *>(&picture_descriptor);
+ essence->Copy(*mine);
+ m_EssenceDescriptor = essence;
+ } else if ( picture_descriptor.GetUL() == UL(m_Dict->ul(MDD_CDCIEssenceDescriptor)) ) {
+ ASDCP::MXF::CDCIEssenceDescriptor *essence = new ASDCP::MXF::CDCIEssenceDescriptor(m_Dict);
+ ASDCP::MXF::CDCIEssenceDescriptor *mine = dynamic_cast<ASDCP::MXF::CDCIEssenceDescriptor *>(&picture_descriptor);
+ essence->Copy(*mine);
+ m_EssenceDescriptor = essence;
+ } else {
+ DefaultLogSink().Error("Essence descriptor is not a RGBAEssenceDescriptor or CDCIEssenceDescriptor.\n");
+ picture_descriptor.Dump();
+ return RESULT_AS02_FORMAT;
+ }
+
+
ASDCP::MXF::JPEGXSPictureSubDescriptor *jxs_subdesc = new ASDCP::MXF::JPEGXSPictureSubDescriptor(m_Dict);
jxs_subdesc->Copy(jxs_sub_descriptor);