diff options
| author | jhurst <jhurst@cinecert.com> | 2014-10-22 19:19:49 +0000 |
|---|---|---|
| committer | jhurst <> | 2014-10-22 19:19:49 +0000 |
| commit | bbbadac707e1a16e8a982f966132159db94364ba (patch) | |
| tree | d9511574a643707fd7f012aa1a69187866a12f83 /src | |
| parent | 9b450aad2327719d051e986549f0416e17b5dbff (diff) | |
phdr:
o Finished FrameBuffer::Dump()
o Minor comment changes
o Added support for -W and some verbosity to phdr-unwrap
o Removed spurious "m_FramesWritten++" that was causing master metadata tin increment the duration.
asdcp:
o Set streamID byte of the PHDRImageMetadataItem UL to zero to meet canonical expectations.
o Added some verbosity to as-02-unwrap
o Fixed partitioning off-by-one in h__AS02WriterFrame::WriteEKLVPacket()
Diffstat (limited to 'src')
| -rw-r--r-- | src/AS_02_PHDR.cpp | 14 | ||||
| -rw-r--r-- | src/MDD.cpp | 2 | ||||
| -rwxr-xr-x | src/as-02-unwrap.cpp | 17 | ||||
| -rw-r--r-- | src/h__02_Writer.cpp | 2 | ||||
| -rwxr-xr-x | src/phdr-unwrap.cpp | 27 |
5 files changed, 46 insertions, 16 deletions
diff --git a/src/AS_02_PHDR.cpp b/src/AS_02_PHDR.cpp index c6017ef..d856c60 100644 --- a/src/AS_02_PHDR.cpp +++ b/src/AS_02_PHDR.cpp @@ -57,7 +57,12 @@ AS_02::PHDR::FrameBuffer::Dump(FILE* stream, ui32_t dump_bytes) const if ( stream == 0 ) stream = stderr; - fprintf(stream, "Hello, HDR world!\n"); + fprintf(stream, "Frame %d, %d bytes (metadata: %zd bytes)\n", FrameNumber(), Size(), OpaqueMetadata.size()); + + if ( dump_bytes > 0 ) + { + Kumu::hexdump(RoData(), Kumu::xmin(dump_bytes, Size()), stream); + } } @@ -189,7 +194,6 @@ AS_02::PHDR::MXFReader::h__Reader::OpenRead(const std::string& filename, std::st } m_IndexAccess.Dump(); - return result; } @@ -390,7 +394,7 @@ AS_02::PHDR::MXFWriter::h__Writer::OpenWrite(const std::string& filename, if ( KM_SUCCESS(result) ) { m_IndexStrategy = IndexStrategy; - m_PartitionSpace = PartitionSpace_sec; // later converted to edit units by SetSourceStream() + m_PartitionSpace = PartitionSpace_sec; // later converted to edit units by WritePHDRHeader() m_HeaderSize = HeaderSize; if ( essence_descriptor->GetUL() != UL(m_Dict->ul(MDD_RGBAEssenceDescriptor)) @@ -446,7 +450,7 @@ AS_02::PHDR::MXFWriter::h__Writer::WritePHDRHeader(const std::string& PackageLab CreateTrackAndSequence<SourcePackage, SourceClip>(m_HeaderPart, *m_FilePackage, MD_DEF_LABEL, EditRate, UL(m_Dict->ul(MDD_PHDRImageMetadataItem)), - 3, m_Dict); + 3 /* track id */, m_Dict); metdata_track.Sequence->Duration.set_has_value(); m_DurationUpdateList.push_back(&(metdata_track.Sequence->Duration.get())); @@ -629,8 +633,6 @@ AS_02::PHDR::MXFWriter::h__Writer::Finalize(const std::string& PHDR_master_metad result = Write_EKLV_Packet(m_File, *m_Dict, m_HeaderPart, m_Info, m_CtFrameBuf, m_FramesWritten, m_StreamOffset, tmp_buf, GenericStream_DataElement.Value(), 0, 0); - - m_FramesWritten++; } } diff --git a/src/MDD.cpp b/src/MDD.cpp index 2f9604d..ce03603 100644 --- a/src/MDD.cpp +++ b/src/MDD.cpp @@ -1168,7 +1168,7 @@ static const ASDCP::MDDEntry s_MDD_Table[] = { 0x0e, 0x09, 0x06, 0x07, 0x01, 0x01, 0x01, 0x01 }, {0}, false, "PHDRImageMetadataWrappingFrame" }, { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x02, 0x01, 0x05, // 375 - 0x0e, 0x09, 0x06, 0x07, 0x01, 0x01, 0x01, 0x02 }, + 0x0e, 0x09, 0x06, 0x07, 0x01, 0x01, 0x01, 0x00 }, {0}, false, "PHDRImageMetadataItem" }, { { 0x06, 0x0e, 0x2b, 0x34, 0x02, 0x53, 0x01, 0x05, // 376 0x0e, 0x09, 0x06, 0x07, 0x01, 0x01, 0x01, 0x03 }, diff --git a/src/as-02-unwrap.cpp b/src/as-02-unwrap.cpp index c6ba96b..bf69ba3 100755 --- a/src/as-02-unwrap.cpp +++ b/src/as-02-unwrap.cpp @@ -376,12 +376,25 @@ read_JP2K_file(CommandOptions& Options) { result = Reader.ReadFrame(i, FrameBuffer, Context, HMAC); + char filename[1024]; + snprintf(filename, 1024, name_format, Options.file_prefix, i); + + if ( ASDCP_SUCCESS(result) && Options.verbose_flag ) + { + printf("Frame %d, %d bytes", i, FrameBuffer.Size()); + + if ( ! Options.no_write_flag ) + { + printf(" -> %s", filename); + } + + printf("\n"); + } + if ( ASDCP_SUCCESS(result) && ( ! Options.no_write_flag ) ) { Kumu::FileWriter OutFile; - char filename[256]; ui32_t write_count; - snprintf(filename, 256, name_format, Options.file_prefix, i); result = OutFile.OpenWrite(filename); if ( ASDCP_SUCCESS(result) ) diff --git a/src/h__02_Writer.cpp b/src/h__02_Writer.cpp index ff8d000..745166c 100644 --- a/src/h__02_Writer.cpp +++ b/src/h__02_Writer.cpp @@ -191,7 +191,7 @@ AS_02::h__AS02WriterFrame::WriteEKLVPacket(const ASDCP::FrameBuffer& FrameBuf,co m_IndexWriter.PushIndexEntry(Entry); } - if ( m_FramesWritten > 0 && ( m_FramesWritten % m_PartitionSpace ) == 0 ) + if ( m_FramesWritten > 1 && ( ( m_FramesWritten + 1 ) % m_PartitionSpace ) == 0 ) { m_IndexWriter.ThisPartition = m_File.Tell(); m_IndexWriter.WriteToFile(m_File); diff --git a/src/phdr-unwrap.cpp b/src/phdr-unwrap.cpp index 162bb73..a7a3afc 100755 --- a/src/phdr-unwrap.cpp +++ b/src/phdr-unwrap.cpp @@ -255,7 +255,7 @@ read_JP2K_file(CommandOptions& Options) std::string PHDR_master_metadata; // todo: write to a file? Result_t result = Reader.OpenRead(Options.input_filename, PHDR_master_metadata); - fprintf(stderr, "PHDR_master_metadata size=%d\n", PHDR_master_metadata.size()); + fprintf(stderr, "PHDR_master_metadata size=%zd\n", PHDR_master_metadata.size()); if ( ASDCP_SUCCESS(result) ) { @@ -347,19 +347,34 @@ read_JP2K_file(CommandOptions& Options) { result = Reader.ReadFrame(i, FrameBuffer, Context, HMAC); - if ( ASDCP_SUCCESS(result) ) + char filename[1024]; + snprintf(filename, 1024, name_format, Options.file_prefix, i); + + if ( ASDCP_SUCCESS(result) && Options.verbose_flag ) + { + printf("Frame %d, %d bytes", i, FrameBuffer.Size()); + + if ( ! Options.no_write_flag ) + { + printf(" -> %s", filename); + } + + printf("\n"); + } + + if ( ASDCP_SUCCESS(result) && ( ! Options.no_write_flag ) ) { Kumu::FileWriter OutFile; - char filename[256]; ui32_t write_count; - snprintf(filename, 256, name_format, Options.file_prefix, i); result = OutFile.OpenWrite(filename); if ( ASDCP_SUCCESS(result) ) result = OutFile.Write(FrameBuffer.Data(), FrameBuffer.Size(), &write_count); - if ( Options.verbose_flag ) - FrameBuffer.Dump(stderr, Options.fb_dump_size); + if ( ASDCP_SUCCESS(result) && Options.verbose_flag ) + { + FrameBuffer.Dump(stderr, Options.fb_dump_size); + } } } |
