diff options
| author | Thomas Richter <thomas.richter@iis.fraunhofer.de> | 2022-02-04 16:05:18 +0100 |
|---|---|---|
| committer | Thomas Richter <thomas.richter@iis.fraunhofer.de> | 2022-02-04 16:05:18 +0100 |
| commit | 548666ad15294271a4e8fc3b85fd0710e3eca5c9 (patch) | |
| tree | dd70047f368cfdfb667a87abb5f771c3b5778e5b /src/AS_02_JXS.cpp | |
| parent | 04dfb231f7639a2a8252e240c51baf59991411c7 (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.cpp | 30 |
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); |
