+ break;
+ case MKTAG('a', 'd', 't', 'l'):
+ if (s->nb_chapters > 0) {
+ while (avio_tell(pb) < next_tag_ofs &&
+ !avio_feof(pb)) {
+ char cue_label[512];
+ unsigned id, sub_size;
+
+ if (avio_rl32(pb) != MKTAG('l', 'a', 'b', 'l'))
+ break;
+
+ sub_size = avio_rl32(pb);
+ if (sub_size < 5)
+ break;
+ id = avio_rl32(pb);
+ avio_get_str(pb, sub_size - 4, cue_label, sizeof(cue_label));
+ avio_skip(pb, avio_tell(pb) & 1);
+
+ for (int i = 0; i < s->nb_chapters; i++) {
+ if (s->chapters[i]->id == id) {
+ av_dict_set(&s->chapters[i]->metadata, "title", cue_label, 0);
+ break;
+ }
+ }
+ }
+ }
+ break;