summaryrefslogtreecommitdiff
path: root/src/AS_DCP_JP2K.cpp
diff options
context:
space:
mode:
authormsheby <msheby@cinecert.com>2007-10-29 21:24:32 +0000
committermsheby <>2007-10-29 21:24:32 +0000
commitaff131e971b71a648caaae20b6a9c84207085321 (patch)
treee5158febbc7cb462716f5bfa391ccff4cfc0e2b8 /src/AS_DCP_JP2K.cpp
parent57ddb7894042229bbc5f14e9257068afcc6f8725 (diff)
Windows portability fixes.
Diffstat (limited to 'src/AS_DCP_JP2K.cpp')
-rwxr-xr-xsrc/AS_DCP_JP2K.cpp20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/AS_DCP_JP2K.cpp b/src/AS_DCP_JP2K.cpp
index f5ce335..a1d9514 100755
--- a/src/AS_DCP_JP2K.cpp
+++ b/src/AS_DCP_JP2K.cpp
@@ -213,10 +213,12 @@ lh__Reader::OpenRead(const char* filename, EssenceType_t type)
if( ASDCP_SUCCESS(result) )
{
- m_HeaderPart.GetMDObjectByType(OBJ_TYPE_ARGS(RGBAEssenceDescriptor),
- (InterchangeObject**)&m_EssenceDescriptor);
- m_HeaderPart.GetMDObjectByType(OBJ_TYPE_ARGS(JPEG2000PictureSubDescriptor),
- (InterchangeObject**)&m_EssenceSubDescriptor);
+ InterchangeObject* tmp_iobj = 0;
+ m_HeaderPart.GetMDObjectByType(OBJ_TYPE_ARGS(RGBAEssenceDescriptor), &tmp_iobj);
+ m_EssenceDescriptor = static_cast<RGBAEssenceDescriptor*>(tmp_iobj);
+
+ m_HeaderPart.GetMDObjectByType(OBJ_TYPE_ARGS(JPEG2000PictureSubDescriptor), &tmp_iobj);
+ m_EssenceSubDescriptor = static_cast<JPEG2000PictureSubDescriptor*>(tmp_iobj);
std::list<InterchangeObject*> ObjectList;
m_HeaderPart.GetMDObjectsByType(OBJ_TYPE_ARGS(Track), ObjectList);
@@ -452,7 +454,11 @@ public:
}
if( ASDCP_SUCCESS(result) )
- result = ReadEKLVPacket(FrameNum, FrameBuf, Dict::ul(MDD_JPEG2000Essence), Ctx, HMAC);
+ {
+ ui32_t SequenceNum = FrameNum * 2;
+ SequenceNum += ( phase == SP_RIGHT ) ? 2 : 1;
+ result = ReadEKLVPacket(FrameNum, SequenceNum, FrameBuf, Dict::ul(MDD_JPEG2000Essence), Ctx, HMAC);
+ }
return result;
}
@@ -718,9 +724,9 @@ lh__Writer::WriteFrame(const JP2K::FrameBuffer& FrameBuf, bool add_index,
IndexTableSegment::IndexEntry Entry;
Entry.StreamOffset = StreamOffset;
m_FooterPart.PushIndexEntry(Entry);
- m_FramesWritten++;
}
+ m_FramesWritten++;
return result;
}
@@ -839,6 +845,8 @@ public:
if ( m_NextPhase != SP_LEFT )
return RESULT_SPHASE;
+ assert( m_FramesWritten % 2 == 0 );
+ m_FramesWritten /= 2;
return lh__Writer::Finalize();
}
};