static void dash_packager_remove_redundant_tracks( vod_uint_t duplicate_bitrate_threshold, media_set_t* media_set) { media_track_t* track1; media_track_t* track2; media_track_t* remove; media_track_t* last_track; uint32_t clip_index; last_track = media_set->filtered_tracks + media_set->total_track_count; for (track1 = media_set->filtered_tracks + 1; track1 < last_track; track1++) { for (track2 = media_set->filtered_tracks; track2 < track1; track2++) { if (track1->media_info.media_type != track2->media_info.media_type) { continue; } if (!dash_packager_compare_tracks( duplicate_bitrate_threshold, &track1->media_info, &track2->media_info)) { continue; } // prefer to remove a track that doesn't have a label, so that we won't lose a language // in case of multi language manifest if (track1->media_info.label.len == 0 || track2->media_info.label.len != 0) { remove = track1; } else { remove = track2; } // remove the track from all clips media_set->track_count[remove->media_info.media_type]--; for (clip_index = 0; clip_index < media_set->clip_count; clip_index++) { remove[clip_index * media_set->total_track_count].media_info.media_type = MEDIA_TYPE_NONE; } if (remove == track1) { break; } } } }
static void dash_packager_remove_redundant_tracks( vod_uint_t duplicate_bitrate_threshold, media_set_t* media_set) { media_track_t* track1; media_track_t* track2; media_track_t* last_track; uint32_t clip_index; last_track = media_set->filtered_tracks + media_set->total_track_count; for (track1 = media_set->filtered_tracks + 1; track1 < last_track; track1++) { for (track2 = media_set->filtered_tracks; track2 < track1; track2++) { if (track1->media_info.media_type != track2->media_info.media_type) { continue; } if (!dash_packager_compare_tracks( duplicate_bitrate_threshold, &track1->media_info, &track2->media_info)) { continue; } // remove the track from all clips media_set->track_count[track1->media_info.media_type]--; for (clip_index = 0; clip_index < media_set->clip_count; clip_index++) { track1[clip_index * media_set->total_track_count].media_info.media_type = MEDIA_TYPE_NONE; } break; } } }