1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00
Originally committed as revision 17206 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Baptiste Coudurier 2009-02-13 07:46:03 +00:00
parent 8d1a5af700
commit 844d9e4115

View File

@ -169,7 +169,6 @@ static const MXFContainerEssenceEntry mxf_essence_container_uls[] = {
typedef struct MXFContext { typedef struct MXFContext {
int64_t footer_partition_offset; int64_t footer_partition_offset;
int essence_container_count; int essence_container_count;
uint8_t essence_containers_indices[FF_ARRAY_ELEMS(mxf_essence_container_uls)];
AVRational time_base; AVRational time_base;
int header_written; int header_written;
MXFIndexEntry *index_entries; MXFIndexEntry *index_entries;
@ -427,8 +426,8 @@ static void mxf_write_essence_container_refs(AVFormatContext *s)
mxf_write_refs_count(pb, c->essence_container_count); mxf_write_refs_count(pb, c->essence_container_count);
av_log(s,AV_LOG_DEBUG, "essence container count:%d\n", c->essence_container_count); av_log(s,AV_LOG_DEBUG, "essence container count:%d\n", c->essence_container_count);
for (i = 0; i < c->essence_container_count; i++) { for (i = 0; i < c->essence_container_count; i++) {
put_buffer(pb, mxf_essence_container_uls[c->essence_containers_indices[i]].container_ul, 16); MXFStreamContext *sc = s->streams[i]->priv_data;
PRINT_KEY(s, "essence container ul:\n", mxf_essence_container_uls[c->essence_containers_indices[i]].container_ul); put_buffer(pb, mxf_essence_container_uls[sc->index].container_ul, 16);
} }
} }
@ -731,8 +730,10 @@ static void mxf_write_multi_descriptor(AVFormatContext *s)
mxf_write_local_tag(pb, 16, 0x3004); mxf_write_local_tag(pb, 16, 0x3004);
if (mxf->essence_container_count > 1) if (mxf->essence_container_count > 1)
ul = multiple_desc_ul; ul = multiple_desc_ul;
else else {
ul = mxf_essence_container_uls[mxf->essence_containers_indices[0]].container_ul; MXFStreamContext *sc = s->streams[0]->priv_data;
ul = mxf_essence_container_uls[sc->index].container_ul;
}
put_buffer(pb, ul, 16); put_buffer(pb, ul, 16);
// write sub descriptor refs // write sub descriptor refs
@ -1467,8 +1468,8 @@ static int mxf_write_header(AVFormatContext *s)
sc->codec_ul = &mxf_essence_container_uls[sc->index].codec_ul; sc->codec_ul = &mxf_essence_container_uls[sc->index].codec_ul;
if (!present[sc->index]) { if (!present[sc->index]) {
mxf->essence_containers_indices[mxf->essence_container_count++] = sc->index;
present[sc->index] = 1; present[sc->index] = 1;
mxf->essence_container_count++;
} else } else
present[sc->index]++; present[sc->index]++;
@ -1548,8 +1549,10 @@ static void mxf_write_system_item(AVFormatContext *s)
put_be16(pb, frame); // continuity count put_be16(pb, frame); // continuity count
if (mxf->essence_container_count > 1) if (mxf->essence_container_count > 1)
put_buffer(pb, multiple_desc_ul, 16); put_buffer(pb, multiple_desc_ul, 16);
else else {
put_buffer(pb, mxf_essence_container_uls[mxf->essence_containers_indices[0]].container_ul, 16); MXFStreamContext *sc = s->streams[0]->priv_data;
put_buffer(pb, mxf_essence_container_uls[sc->index].container_ul, 16);
}
put_byte(pb, 0); put_byte(pb, 0);
put_be64(pb, 0); put_be64(pb, 0);
put_be64(pb, 0); // creation date/time stamp put_be64(pb, 0); // creation date/time stamp