Lines Matching refs:index_table
1852 static int mxf_edit_unit_absolute_offset(MXFContext *mxf, MXFIndexTable *index_table, int64_t edit_unit, AVRational edit_rate, int64_t *edit_unit_out, int64_t *offset_out, MXFPartition **partition_out, int nag)
1857 edit_unit = av_rescale_q(edit_unit, index_table->segments[0]->index_edit_rate, edit_rate);
1859 for (i = 0; i < index_table->nb_segments; i++) {
1860 MXFIndexTableSegment *s = index_table->segments[i];
1875 index_table->index_sid, s->index_start_position);
1885 return mxf_absolute_bodysid_offset(mxf, index_table->body_sid, offset_temp, offset_out, partition_out);
1897 av_log(mxf->fc, AV_LOG_ERROR, "failed to map EditUnit %"PRId64" in IndexSID %i to an offset\n", edit_unit, index_table->index_sid);
1902 static int mxf_compute_ptses_fake_index(MXFContext *mxf, MXFIndexTable *index_table)
1909 for (i = 0; i < index_table->nb_segments; i++) {
1910 MXFIndexTableSegment *s = index_table->segments[i];
1913 index_table->nb_ptses = 0;
1917 if (s->index_duration > INT_MAX - index_table->nb_ptses) {
1918 index_table->nb_ptses = 0;
1923 index_table->nb_ptses += s->index_duration;
1927 if (index_table->nb_ptses <= 0)
1930 if (!(index_table->ptses = av_calloc(index_table->nb_ptses, sizeof(int64_t))) ||
1931 !(index_table->fake_index = av_calloc(index_table->nb_ptses, sizeof(AVIndexEntry))) ||
1932 !(index_table->offsets = av_calloc(index_table->nb_ptses, sizeof(int8_t))) ||
1933 !(flags = av_calloc(index_table->nb_ptses, sizeof(uint8_t)))) {
1934 av_freep(&index_table->ptses);
1935 av_freep(&index_table->fake_index);
1936 av_freep(&index_table->offsets);
1942 for (x = 0; x < index_table->nb_ptses; x++)
1943 index_table->ptses[x] = AV_NOPTS_VALUE;
1972 for (i = x = 0; i < index_table->nb_segments; i++) {
1973 MXFIndexTableSegment *s = index_table->segments[i];
1987 if (x >= index_table->nb_ptses) {
1996 if (index < 0 || index >= index_table->nb_ptses) {
2003 index_table->offsets[x] = offset;
2004 index_table->ptses[index] = x;
2010 for (x = 0; x < index_table->nb_ptses; x++) {
2011 index_table->fake_index[x].timestamp = x;
2012 if (index_table->ptses[x] != AV_NOPTS_VALUE)
2013 index_table->fake_index[index_table->ptses[x]].flags = flags[x];
2017 index_table->first_dts = -max_temporal_offset;