static void write_segmentation_framework(AppInfoWriter *info_writer, DMSegment *seg, Timecode start_timecode, int64_t offset, Rational edit_rate) { AS11SegmentationFramework *framework = dynamic_cast<AS11SegmentationFramework*>(seg->getDMFramework()); Timecode som = start_timecode; som.AddOffset(offset, edit_rate); AppTextInfoWriter *text_writer = dynamic_cast<AppTextInfoWriter*>(info_writer); if (text_writer) text_writer->PushItemValueIndent(strlen("part_number ")); info_writer->WriteIntegerItem("part_number", framework->GetPartNumber()); info_writer->WriteIntegerItem("part_total", framework->GetPartNumber()); info_writer->WriteTimecodeItem("som", som); info_writer->WriteDurationItem("duration", seg->getDuration(), edit_rate); if (text_writer) text_writer->PopItemValueIndent(); }