- AV_WB32(cur_buffer, info->system_id_size);
- AV_WB32(cur_buffer + 4, info->num_key_ids);
- AV_WB32(cur_buffer + 8, info->key_id_size);
- AV_WB32(cur_buffer + 12, info->data_size);
- cur_buffer += 16;
-
- memcpy(cur_buffer, info->system_id, info->system_id_size);
- cur_buffer += info->system_id_size;
- for (i = 0; i < info->num_key_ids; i++) {
- memcpy(cur_buffer, info->key_ids[i], info->key_id_size);
- cur_buffer += info->key_id_size;
+ AV_WB32(cur_buffer, init_info_count);
+ cur_buffer += 4;
+ for (cur_info = info; cur_info; cur_info = cur_info->next) {
+ AV_WB32(cur_buffer, cur_info->system_id_size);
+ AV_WB32(cur_buffer + 4, cur_info->num_key_ids);
+ AV_WB32(cur_buffer + 8, cur_info->key_id_size);
+ AV_WB32(cur_buffer + 12, cur_info->data_size);
+ cur_buffer += 16;
+
+ memcpy(cur_buffer, cur_info->system_id, cur_info->system_id_size);
+ cur_buffer += cur_info->system_id_size;
+ for (i = 0; i < cur_info->num_key_ids; i++) {
+ memcpy(cur_buffer, cur_info->key_ids[i], cur_info->key_id_size);
+ cur_buffer += cur_info->key_id_size;
+ }
+ memcpy(cur_buffer, cur_info->data, cur_info->data_size);
+ cur_buffer += cur_info->data_size;