summaryrefslogtreecommitdiff
path: root/src/h__02_Writer.cpp
diff options
context:
space:
mode:
authorjhurst <jhurst@cinecert.com>2013-12-15 23:34:13 +0000
committerjhurst <>2013-12-15 23:34:13 +0000
commit7f373b689817ee70fbe5d6a14cb0512b5260f77c (patch)
tree0b182f46691f1420e18be08ea1952a818c546f94 /src/h__02_Writer.cpp
parent1f41555bcf96369227cda526e36196fe512f464e (diff)
o Added preliminary support for timed-text wrapping for AS-02. This
work will require changes in SMPTE ST 429-5 and perhaps other standards work, so files created with this implementation are "speculative". Publication of the revised ST 429-5 may not occur until early 2015. o Moved LocalFilenameResolver into the AS_DCP public API so that it can be used by other modules including AS-02. o Fixed wave wrapping UL in clip-wrapped AS-02 files. Renamed some UL constants to reflect "clip" or "frame" wrapping. o Re-factored JP2K_PDesc_to_MD() and MD_to_JP2K_PDesc() to work with GenericPictureEssenceDescriptor objects. o Fixed a bug that was suppressing PictureComponentSizing, CodingStyleDefault and QuantizationDefault when writing the essence descriptor in a JP2K file (AS-DCP and AS-02). o Fixed the version byte on the following UL values: StereoscopicPictureSubDescriptor GenericPictureEssenceDescriptor_ColorPrimaries GenericPictureEssenceDescriptor_ActiveHeight GenericPictureEssenceDescriptor_ActiveWidth GenericPictureEssenceDescriptor_ActiveXOffset GenericPictureEssenceDescriptor_ActiveYOffset o Added some essence descriptor options to as-02-wrap. o Added TTML timed-text wrapping option to as-02-wrap. o Changed bit rate display in asdcp-info from mebi-bits/s to mega-bits/s. o Added "SMPTE" / "Interop" format type display to asdcp-info. o Modified asdcp-wrap to assume -L when wrapping timed-text (since there is no MXF text wrapping for Interop.) o Fixed missing-index-partion bugs for AS-02 files.
Diffstat (limited to 'src/h__02_Writer.cpp')
-rw-r--r--src/h__02_Writer.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/h__02_Writer.cpp b/src/h__02_Writer.cpp
index a121142..c81da5c 100644
--- a/src/h__02_Writer.cpp
+++ b/src/h__02_Writer.cpp
@@ -122,23 +122,25 @@ AS_02::MXF::AS02IndexWriter::Dump(FILE* stream)
Partition::Dump(stream);
std::list<InterchangeObject*>::iterator i = m_PacketList->m_List.begin();
- for ( ; i != m_PacketList->m_List.end(); i++ )
- (*i)->Dump(stream);
+ for ( ; i != m_PacketList->m_List.end(); ++i )
+ {
+ (*i)->Dump(stream);
+ }
}
//
ui32_t
AS_02::MXF::AS02IndexWriter::GetDuration() const
{
- ui32_t duration;
+ ui32_t duration = 0;
std::list<InterchangeObject*>::const_iterator i;
for ( i = m_PacketList->m_List.begin(); i != m_PacketList->m_List.end(); ++i )
{
- if ( (*i)->IsA(OBJ_TYPE_ARGS(IndexTableSegment)) )
+ IndexTableSegment* segment = dynamic_cast<IndexTableSegment*>(*i);
+ if ( segment != 0 )
{
- IndexTableSegment& Segment = *(IndexTableSegment*)*i;
- duration += Segment.IndexDuration;
+ duration += segment->IndexEntryArray.size();
}
}
@@ -380,7 +382,6 @@ AS_02::h__AS02Writer::FinalizeClip(ui32_t bytes_per_frame)
Result_t
AS_02::h__AS02Writer::WriteAS02Footer()
{
-
if ( m_IndexWriter.GetDuration() > 0 )
{
m_IndexWriter.ThisPartition = m_File.Tell();