Lines Matching defs:tracks
51 struct Track **tracks;
78 static int find_sidx(struct Tracks *tracks, int start_index,
97 for (i = start_index; i < tracks->nb_tracks; i++) {
98 struct Track *track = tracks->tracks[i];
117 static int handle_file(struct Tracks *tracks, const char *file)
120 int err = 0, i, orig_tracks = tracks->nb_tracks;
143 tracks->multiple_tracks_per_file = 1;
160 temp = av_realloc_array(tracks->tracks, tracks->nb_tracks + 1,
161 sizeof(*tracks->tracks));
167 tracks->tracks = temp;
168 tracks->tracks[tracks->nb_tracks] = track;
185 av_freep(&tracks->tracks[tracks->nb_tracks]);
189 tracks->duration = FFMAX(tracks->duration,
203 tracks->nb_tracks++;
208 err = find_sidx(tracks, orig_tracks, file);
233 static int output_mpd(struct Tracks *tracks, const char *filename)
243 if (!tracks->multiple_tracks_per_file) {
248 adaptation_sets[i] = av_malloc_array(tracks->nb_tracks, sizeof(*adaptation_sets[i]));
254 for (i = 0; i < tracks->nb_tracks; i++) {
256 if (tracks->tracks[i]->is_video)
258 else if (tracks->tracks[i]->is_audio)
262 adaptation_sets[set_index][nb_tracks[set_index]++] = tracks->tracks[i];
265 adaptation_sets = &tracks->tracks;
266 nb_tracks = &tracks->nb_tracks;
284 write_time(out, tracks->duration, 1, AV_ROUND_DOWN);
350 static void clean_tracks(struct Tracks *tracks)
353 for (i = 0; i < tracks->nb_tracks; i++) {
354 av_freep(&tracks->tracks[i]);
356 av_freep(&tracks->tracks);
357 tracks->nb_tracks = 0;
363 struct Tracks tracks = { 0 };
373 if (handle_file(&tracks, argv[i]))
377 if (!tracks.nb_tracks || !out)
380 output_mpd(&tracks, out);
382 clean_tracks(&tracks);