Lines Matching defs:segment

1201 static int mxf_read_index_entry_array(AVIOContext *pb, MXFIndexTableSegment *segment)
1205 if (segment->temporal_offset_entries)
1208 segment->nb_index_entries = avio_rb32(pb);
1211 if(segment->nb_index_entries && length < 11)
1214 if (!FF_ALLOC_TYPED_ARRAY(segment->temporal_offset_entries, segment->nb_index_entries) ||
1215 !FF_ALLOC_TYPED_ARRAY(segment->flag_entries , segment->nb_index_entries) ||
1216 !FF_ALLOC_TYPED_ARRAY(segment->stream_offset_entries , segment->nb_index_entries)) {
1217 av_freep(&segment->temporal_offset_entries);
1218 av_freep(&segment->flag_entries);
1222 for (i = 0; i < segment->nb_index_entries; i++) {
1225 segment->temporal_offset_entries[i] = avio_r8(pb);
1227 segment->flag_entries[i] = avio_r8(pb);
1228 segment->stream_offset_entries[i] = avio_rb64(pb);
1236 MXFIndexTableSegment *segment = arg;
1239 segment->edit_unit_byte_count = avio_rb32(pb);
1240 av_log(NULL, AV_LOG_TRACE, "EditUnitByteCount %d\n", segment->edit_unit_byte_count);
1243 segment->index_sid = avio_rb32(pb);
1244 av_log(NULL, AV_LOG_TRACE, "IndexSID %d\n", segment->index_sid);
1247 segment->body_sid = avio_rb32(pb);
1248 av_log(NULL, AV_LOG_TRACE, "BodySID %d\n", segment->body_sid);
1252 return mxf_read_index_entry_array(pb, segment);
1254 segment->index_edit_rate.num = avio_rb32(pb);
1255 segment->index_edit_rate.den = avio_rb32(pb);
1256 av_log(NULL, AV_LOG_TRACE, "IndexEditRate %d/%d\n", segment->index_edit_rate.num,
1257 segment->index_edit_rate.den);
1260 segment->index_start_position = avio_rb64(pb);
1261 av_log(NULL, AV_LOG_TRACE, "IndexStartPosition %"PRId64"\n", segment->index_start_position);
1264 segment->index_duration = avio_rb64(pb);
1265 av_log(NULL, AV_LOG_TRACE, "IndexDuration %"PRId64"\n", segment->index_duration);
1731 av_log(mxf->fc, AV_LOG_WARNING, "IndexSID %i segment at %"PRId64" missing EditUnitByteCount and IndexEntryArray\n",
1874 av_log(mxf->fc, AV_LOG_ERROR, "IndexSID %i segment at %"PRId64" IndexEntryArray too small\n",
2100 av_log(mxf->fc, AV_LOG_WARNING, "IndexSID %i segment %i has invalid IndexEditRate\n",
2110 av_log(mxf->fc, AV_LOG_WARNING, "IndexSID %i segment %i has zero IndexDuration and there's more than one segment\n",
3509 /* expect PCM with exactly one index table segment and a small (< 32) EUBC */
3530 MXFIndexTableSegment *segment = NULL;
3574 if (!(segment = av_mallocz(sizeof(*segment))))
3577 if ((ret = mxf_add_metadata_set(mxf, (MXFMetadataSet**)&segment)))
3585 segment->meta.type = IndexTableSegment;
3587 segment->edit_unit_byte_count = edit_unit_byte_count;
3588 segment->index_start_position = 0;
3589 segment->index_duration = st->duration;
3590 segment->index_edit_rate = av_inv_q(st->time_base);
3591 segment->index_sid = track->index_sid;
3592 segment->body_sid = p->body_sid;