summaryrefslogtreecommitdiff
path: root/src/AS_DCP_internal.h
diff options
context:
space:
mode:
authorjhurst <jhurst@cinecert.com>2007-06-08 02:24:37 +0000
committerjhurst <>2007-06-08 02:24:37 +0000
commit3a3aa48a5a4f7324a9e4c2273d0747d7f58a2813 (patch)
treebf218b1e6e4ee415ff94576e08b923801340c4a5 /src/AS_DCP_internal.h
parent27915a74438fcf264d8dfd621dd5e79fa4065813 (diff)
fixed encryption for timed text
Diffstat (limited to 'src/AS_DCP_internal.h')
-rwxr-xr-xsrc/AS_DCP_internal.h29
1 files changed, 20 insertions, 9 deletions
diff --git a/src/AS_DCP_internal.h b/src/AS_DCP_internal.h
index 177a74d..ff86d40 100755
--- a/src/AS_DCP_internal.h
+++ b/src/AS_DCP_internal.h
@@ -111,6 +111,12 @@ namespace ASDCP
Result_t InitInfo();
Result_t OpenMXFRead(const char* filename);
Result_t InitMXFIndex();
+
+ // positions file before reading
+ Result_t ReadEKLVFrame(ui32_t FrameNum, ASDCP::FrameBuffer& FrameBuf,
+ const byte_t* EssenceUL, AESDecContext* Ctx, HMACContext* HMAC);
+
+ // reads from current position
Result_t ReadEKLVPacket(ui32_t FrameNum, ASDCP::FrameBuffer& FrameBuf,
const byte_t* EssenceUL, AESDecContext* Ctx, HMACContext* HMAC);
void Close();
@@ -152,6 +158,8 @@ namespace ASDCP
inline Result_t Goto_FINAL() { Goto_body(ST_RUNNING, ST_FINAL); }
};
+ typedef std::list<ui64_t*> DurationElementList_t;
+
//
class h__Writer
{
@@ -166,16 +174,7 @@ namespace ASDCP
ui64_t m_EssenceStart;
MaterialPackage* m_MaterialPackage;
- Sequence* m_MPTCSequence;
- TimecodeComponent* m_MPTimecode;
- Sequence* m_MPClSequence;
- SourceClip* m_MPClip; //! Material Package SourceClip for each essence stream
-
SourcePackage* m_FilePackage;
- Sequence* m_FPTCSequence;
- TimecodeComponent* m_FPTimecode;
- Sequence* m_FPClSequence;
- SourceClip* m_FPClip; //! File Package SourceClip for each essence stream
FileDescriptor* m_EssenceDescriptor;
std::list<FileDescriptor*> m_EssenceSubDescriptorList;
@@ -185,10 +184,22 @@ namespace ASDCP
ASDCP::FrameBuffer m_CtFrameBuf;
h__WriterState m_State;
WriterInfo m_Info;
+ DurationElementList_t m_DurationUpdateList;
h__Writer();
virtual ~h__Writer();
+ void InitHeader();
+ void AddSourceClip(const MXF::Rational& EditRate, ui32_t TCFrameRate,
+ const std::string& TrackName, const UL& DataDefinition,
+ const std::string& PackageLabel);
+ void AddDMSegment(const MXF::Rational& EditRate, ui32_t TCFrameRate,
+ const std::string& TrackName, const UL& DataDefinition,
+ const std::string& PackageLabel);
+ void AddEssenceDescriptor(const UL& WrappingUL);
+ Result_t CreateBodyPart(const MXF::Rational& EditRate, ui32_t BytesPerEditUnit = 0);
+
+ // all the above for a single source clip
Result_t WriteMXFHeader(const std::string& PackageLabel, const UL& WrappingUL,
const std::string& TrackName, const UL& DataDefinition,
const MXF::Rational& EditRate,