Lines Matching defs:tracks

73     { "rtphint", "Add RTP hint tracks", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MOV_FLAG_RTP_HINT}, INT_MIN, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM, "movflags" },
108 { "video_track_timescale", "set timescale of all video tracks", offsetof(MOVMuxContext, video_track_timescale), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM},
184 /* Add hint tracks for each real audio and video stream */
1720 // "rtp " is used to distinguish internally created RTP-hint tracks
1721 // (with rtp_ctx) from other tracks.
2228 if (track == &mov->tracks[i]) {
3045 hdlr_type = (track == &mov->tracks[0]) ? "pict" : "auxv";
3242 mov_write_av1c_tag(pb, &mov->tracks[i]);
3244 mov_write_colr_tag(pb, &mov->tracks[0], 0);
3346 // tmcd tracks gets track_duration set in mov_write_moov_tag from
3349 get_pts_range(mov, &mov->tracks[track->src_track], start, end);
3351 mov->tracks[track->src_track].timescale);
3353 mov->tracks[track->src_track].timescale);
3898 if (mov->tracks[i].entry > 0 || mov->flags & FF_MOV_FLAG_EMPTY_MOOV) {
3899 has_audio |= mov->tracks[i].par->codec_type == AVMEDIA_TYPE_AUDIO;
3900 has_video |= mov->tracks[i].par->codec_type == AVMEDIA_TYPE_VIDEO;
3940 mov_write_trex_tag(pb, &mov->tracks[i]);
3952 if (mov->tracks[i].entry > 0 && mov->tracks[i].timescale) {
3954 calc_pts_duration(mov, &mov->tracks[i]),
3956 mov->tracks[i].timescale,
3960 if (max_track_id < mov->tracks[i].track_id)
3961 max_track_id = mov->tracks[i].track_id;
3987 timescale = mov->tracks[0].timescale;
4324 int tracks = 0;
4327 tracks = atoi(slash + 1);
4336 avio_wb16(pb, tracks); // total track / disc number
4377 MOVTrack *trk = &mov->tracks[i];
4517 mov_write_hdlr_tag(s, pb, &mov->tracks[0]);
4838 * This assumes mov->tracks and s->streams are in the same order and
4839 * there are no gaps in either of them (so mov->tracks[n] refers to
4843 * s->streams than in mov->tracks, in which case new track ids are
4861 if (mov->tracks[i].entry <= 0 && !(mov->flags & FF_MOV_FLAG_FRAGMENT))
4864 mov->tracks[i].track_id = i >= s->nb_streams ? ++next_generated_track_id : s->streams[i]->id;
4868 if (mov->tracks[i].entry <= 0 && !(mov->flags & FF_MOV_FLAG_FRAGMENT))
4871 mov->tracks[i].track_id = i + 1;
4891 if (mov->tracks[i].entry <= 0 && !(mov->flags & FF_MOV_FLAG_FRAGMENT))
4894 mov->tracks[i].time = mov->time;
4896 if (mov->tracks[i].entry)
4897 build_chunks(&mov->tracks[i]);
4902 mov->tracks[i].tref_tag = MKTAG('c','h','a','p');
4904 mov->tracks[i].ref_track_count++;
4905 mov->tracks[i].tref_ids[0] = mov->tracks[mov->chapter_track].track_id;
4907 mov->tracks[i].tref_id = mov->tracks[mov->chapter_track].track_id;
4911 MOVTrack *track = &mov->tracks[i];
4916 track->tref_ids[0] = mov->tracks[track->src_track].track_id;
4918 track->tref_id = mov->tracks[track->src_track].track_id;
4931 track->tref_ids[0] = mov->tracks[*fallback].track_id;
4933 track->tref_id = mov->tracks[*fallback].track_id;
4940 if (mov->tracks[i].tag == MKTAG('t','m','c','d')) {
4941 int src_trk = mov->tracks[i].src_track;
4942 mov->tracks[src_trk].tref_tag = mov->tracks[i].tag;
4944 mov->tracks[src_trk].ref_track_count++;
4945 mov->tracks[src_trk].tref_ids[0] = mov->tracks[i].track_id;
4947 mov->tracks[src_trk].tref_id = mov->tracks[i].track_id;
4950 mov->tracks[i].track_duration = av_rescale(mov->tracks[src_trk].track_duration,
4951 mov->tracks[i].timescale,
4952 mov->tracks[src_trk].timescale);
4957 if (mov->tracks[i].tag == MKTAG('c','d','s','c')) {
4958 int src_trk = mov->tracks[i].src_track;
4959 for (int j = 0; j < mov->tracks[i].ref_track_count; j++) {
4960 mov->tracks[i].tref_ids[j] = mov->tracks[src_trk].track_id;
4970 if (mov->tracks[i].entry > 0 || mov->flags & FF_MOV_FLAG_FRAGMENT ||
4972 int ret = mov_write_trak_tag(s, pb, mov, &(mov->tracks[i]), i < s->nb_streams ? s->streams[i] : NULL);
5041 MOVTrack *track = &mov->tracks[i];
5252 avio_wb32(pb, 0); /* Later tracks follow immediately after the previous one */
5343 static int mov_add_tfra_entries(AVIOContext *pb, MOVMuxContext *mov, int tracks,
5348 MOVTrack *track = &mov->tracks[i];
5350 if ((tracks >= 0 && i != tracks) || !track->entry)
5382 static void mov_prune_frag_info(MOVMuxContext *mov, int tracks, int max)
5386 MOVTrack *track = &mov->tracks[i];
5387 if ((tracks >= 0 && i != tracks) || !track->entry)
5448 int tracks, int moof_size)
5459 MOVTrack *track = &mov->tracks[i];
5460 if (tracks >= 0 && i != tracks)
5536 int tracks, int ref_size)
5553 MOVTrack *track = &mov->tracks[i];
5554 if (tracks >= 0 && i != tracks)
5557 // we want to include all tracks. ref_size is 0 in this case,
5570 static int mov_write_prft_tag(AVIOContext *pb, MOVMuxContext *mov, int tracks)
5578 if (tracks > 0)
5580 first_track = &(mov->tracks[0]);
5620 static int mov_write_moof_tag(AVIOContext *pb, MOVMuxContext *mov, int tracks,
5628 mov_write_moof_tag_internal(avio_buf, mov, tracks, 0);
5633 mov_write_sidx_tags(pb, mov, tracks, moof_size + 8 + mdat_size);
5636 mov_write_prft_tag(pb, mov, tracks);
5641 if ((ret = mov_add_tfra_entries(pb, mov, tracks, moof_size + 8 + mdat_size)) < 0)
5645 mov_prune_frag_info(mov, tracks, mov->ism_lookahead + 1);
5649 return mov_write_moof_tag_internal(pb, mov, tracks, moof_size);
5694 MOVTrack *track = &mov->tracks[i];
6136 MOVTrack *track = &mov->tracks[i];
6166 // Check if we have any tracks that require squashing.
6175 // tracks may need to be filled in.
6177 MOVTrack *track = &mov->tracks[i];
6197 MOVTrack *track = &mov->tracks[i];
6229 if (!mov->tracks[i].entry && !is_cover_image(mov->tracks[i].st))
6231 /* Don't write the initial moov unless all tracks have data */
6237 mov->tracks[i].data_offset = pos + moov_size + 8;
6265 mov->tracks[i].entry = 0;
6266 mov->tracks[i].end_reliable = 0;
6274 MOVTrack *track = &mov->tracks[i];
6286 MOVTrack *track = &mov->tracks[i];
6311 av_rescale(mov->tracks[first_track].cluster[0].dts, AV_TIME_BASE, mov->tracks[first_track].timescale),
6312 (has_video ? starts_with_key : mov->tracks[first_track].cluster[0].flags & MOV_SYNC_SAMPLE) ? AVIO_DATA_MARKER_SYNC_POINT : AVIO_DATA_MARKER_BOUNDARY_POINT);
6315 MOVTrack *track = &mov->tracks[i];
6380 MOVTrack *trk = &mov->tracks[pkt->stream_index];
6418 MOVTrack *trk = &mov->tracks[pkt->stream_index];
6768 MOVTrack *trk = &mov->tracks[pkt->stream_index];
6780 mov->tracks[i].frag_discont = 1;
6886 trk = &mov->tracks[pkt->stream_index];
6928 MOVTrack *trk = &mov->tracks[i];
7008 // as samples, and a tref pointing from the other tracks to the chapter one.
7033 MOVTrack *track = &mov->tracks[tracknum];
7099 MOVTrack *track = &mov->tracks[index];
7110 track->timescale = mov->tracks[src_index].timescale;
7141 MOVTrack *track = &mov->tracks[index];
7153 MOVTrack *src_track = &mov->tracks[src_index];
7157 track->timescale = mov->tracks[src_index].timescale;
7214 mov->tracks[i].flags |= MOV_TRACK_ENABLED;
7227 mov->tracks[first[i]].flags |= MOV_TRACK_ENABLED;
7238 if (!mov->tracks)
7242 avcodec_parameters_free(&mov->tracks[mov->chapter_track].par);
7246 MOVTrack *const track = &mov->tracks[i];
7273 av_freep(&mov->tracks);
7410 // tracks, prefer that over (trying to) write edit lists
7538 mov->tracks = av_calloc(mov->nb_streams + 1, sizeof(*mov->tracks));
7539 if (!mov->tracks)
7566 MOVTrack *track= &mov->tracks[i];
7744 for video tracks, so if user-set, it isn't overwritten */
7788 MOVTrack *track= &mov->tracks[i];
7812 MOVTrack *trackj= &mov->tracks[j];
7886 /* Initialize the tmcd tracks */
7984 mov->tracks[i].data_offset += moov_size;
7994 mov->tracks[i].data_offset += moov_size2 - moov_size;
8009 mov->tracks[i].data_offset += sidx_size;
8039 MOVTrack *track = &mov->tracks[i];
8058 MOVTrack *trk = &mov->tracks[i];
8066 // Check if we have any tracks that require squashing.
8129 mov->tracks[i].data_offset = 0;
8181 mov->tracks[1].tref_tag = MKTAG('a', 'u', 'x', 'l');
8183 mov->tracks[1].tref_ids[0] = 1;
8185 mov->tracks[1].tref_id = 1;
8193 mov->tracks[i].data_offset = avio_tell(pb) + moov_size + 8;