THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
+*/
/*! \file AS_02_PHDR.cpp
\version $Id: AS_02_PHDR.cpp,v 1.7 2015/10/09 23:41:11 jhurst Exp $
\brief AS-02 library, JPEG 2000 P-HDR essence reader and writer implementation
{
RIP::const_pair_iterator pi;
RIP::PartitionPair TmpPair;
-
+
// Look up the partition start in the RIP using the SID.
for ( pi = m_RIP.PairArray.begin(); pi != m_RIP.PairArray.end(); ++pi )
{
byte_t m_EssenceUL[SMPTE_UL_LENGTH];
byte_t m_MetadataUL[SMPTE_UL_LENGTH];
- h__Writer(const Dictionary& d) : h__AS02WriterFrame(d), m_EssenceSubDescriptor(0), m_MetadataTrackSubDescriptor(0) {
+ h__Writer(const Dictionary& d) : h__AS02WriterFrame(d), m_MetadataTrackSubDescriptor(0), m_EssenceSubDescriptor(0) {
memset(m_EssenceUL, 0, SMPTE_UL_LENGTH);
memset(m_MetadataUL, 0, SMPTE_UL_LENGTH);
}
DefaultLogSink().Error("Non-zero edit-rate reqired.\n");
return RESULT_PARAM;
}
-
+
InitHeader();
-
+
AddSourceClip(EditRate, EditRate/*TODO: for a moment*/, TCFrameRate, TrackName, EssenceUL, DataDefinition, PackageLabel);
// add metadata track
// for now we do not allow setting this value, so all files will be 'original'
metdata_track.Clip->SourceTrackID = 0;
metdata_track.Clip->SourcePackageID = NilUMID;
-
+
metdata_track.Clip->Duration.set_has_value();
m_DurationUpdateList.push_back(&(metdata_track.Clip->Duration.get()));
result = Write_EKLV_Packet(m_File, *m_Dict, m_HeaderPart, m_Info, m_CtFrameBuf, m_FramesWritten,
m_StreamOffset, FrameBuf, m_EssenceUL, Ctx, HMAC);
-
+
if ( KM_SUCCESS(result) )
{
ASDCP::FrameBuffer metadata_buffer_wrapper;
metadata_buffer_wrapper.SetData((byte_t*)(FrameBuf.OpaqueMetadata.c_str()), FrameBuf.OpaqueMetadata.size());
metadata_buffer_wrapper.Size(FrameBuf.OpaqueMetadata.size());
-
-
+
+
result = Write_EKLV_Packet(m_File, *m_Dict, m_HeaderPart, m_Info, m_CtFrameBuf, m_FramesWritten,
m_StreamOffset, metadata_buffer_wrapper, m_MetadataUL, Ctx, HMAC);
}
-
+
if ( KM_SUCCESS(result) )
- {
+ {
IndexTableSegment::IndexEntry Entry;
Entry.StreamOffset = this_stream_offset;
m_IndexWriter.PushIndexEntry(Entry);
// argument is present, the essence is encrypted prior to writing.
// Fails if the file is not open, is finalized, or an operating system
// error occurs.
-Result_t
+Result_t
AS_02::PHDR::MXFWriter::WriteFrame(const AS_02::PHDR::FrameBuffer& FrameBuf, AESEncContext* Ctx, HMACContext* HMAC)
{
if ( m_Writer.empty() )