@@ -353,7 +353,7 @@ void ff_cbs_sei_delete_message_type(CodedBitstreamContext *ctx,
{
int err, i, j;
- for (i = 0; i < au->nb_units; i++) {
+ for (i = au->nb_units - 1; i >= 0; i--) {
CodedBitstreamUnit *unit = &au->units[i];
SEIRawMessageList *list;
@@ -365,5 +365,10 @@ void ff_cbs_sei_delete_message_type(CodedBitstreamContext *ctx,
if (list->messages[j].payload_type == payload_type)
cbs_sei_delete_message(list, j);
}
+
+ if (list->nb_messages == 0) {
+ // The SEI NAL unit is now empty, so get rid of it.
+ ff_cbs_delete_unit(au, i);
+ }
}
}