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);
+ }
}
}
m_IndexAccess.Dump();
-
return result;
}
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))
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()));
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++;
}
}
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 },
{
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) )
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);
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) )
{
{
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);
+ }
}
}