void
ebml_chapters_converter_c::setup_maps() {
  m_formatter_map["ChapterTimeStart"]  = format_timecode;
  m_formatter_map["ChapterTimeEnd"]    = format_timecode;

  m_parser_map["ChapterTimeStart"]     = parse_timecode;
  m_parser_map["ChapterTimeEnd"]       = parse_timecode;

  m_limits["EditionUID"]               = limits_t{ true, false, 1, 0 };
  m_limits["EditionFlagHidden"]        = limits_t{ true, true,  0, 1 };
  m_limits["EditionFlagDefault"]       = limits_t{ true, true,  0, 1 };
  m_limits["EditionFlagOrdered"]       = limits_t{ true, true,  0, 1 };
  m_limits["ChapterFlagHidden"]        = limits_t{ true, true,  0, 1 };
  m_limits["ChapterFlagEnabled"]       = limits_t{ true, true,  0, 1 };
  m_limits["ChapterUID"]               = limits_t{ true, false, 1, 0 };
  m_limits["ChapterSegmentUID"]        = limits_t{ true, false, 1, 0 };
  m_limits["ChapterSegmentEditionUID"] = limits_t{ true, false, 1, 0 };
  m_limits["ChapterTrackNumber"]       = limits_t{ true, false, 1, 0 };

  reverse_debug_to_tag_name_map();

  if (debugging_requested("ebml_converter_semantics"))
    dump_semantics("Chapters");
}
void
ebml_segmentinfo_converter_c::setup_maps() {
  m_debug_to_tag_name_map["NextUID"]      = "NextSegmentUID";
  m_debug_to_tag_name_map["PrevUID"]      = "PreviousSegmentUID";
  m_debug_to_tag_name_map["NextFilename"] = "NextSegmentFilename";
  m_debug_to_tag_name_map["PrevFilename"] = "PreviousSegmentFilename";

  m_invalid_elements_map["TimecodeScale"] = true;
  m_invalid_elements_map["DateUTC"]       = true;
  m_invalid_elements_map["MuxingApp"]     = true;
  m_invalid_elements_map["WritingApp"]    = true;
  m_invalid_elements_map["Duration"]      = true;
  m_invalid_elements_map["Title"]         = true;

  m_limits["SegmentUID"]                  = limits_t{ true, true, 16, 16 };
  m_limits["SegmentFamily"]               = limits_t{ true, true, 16, 16 };
  m_limits["NextSegmentUID"]              = limits_t{ true, true, 16, 16 };
  m_limits["PreviousSegmentUID"]          = limits_t{ true, true, 16, 16 };

  reverse_debug_to_tag_name_map();

  if (debugging_c::requested("ebml_converter_semantics"))
    dump_semantics("Info");
}