mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
Merge commit '259fe7280d0b63dc7a8ff017d44f26d3a84cfde8'
* commit '259fe7280d0b63dc7a8ff017d44f26d3a84cfde8': mxf: Extract origin information from material and source track Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
8b1e920676
@ -114,6 +114,7 @@ typedef struct {
|
||||
UID *structural_components_refs;
|
||||
int structural_components_count;
|
||||
int64_t duration;
|
||||
uint8_t origin;
|
||||
} MXFSequence;
|
||||
|
||||
typedef struct {
|
||||
@ -715,6 +716,9 @@ static int mxf_read_sequence(void *arg, AVIOContext *pb, int tag, int size, UID
|
||||
case 0x0201:
|
||||
avio_read(pb, sequence->data_definition_ul, 16);
|
||||
break;
|
||||
case 0x4b02:
|
||||
sequence->origin = avio_r8(pb);
|
||||
break;
|
||||
case 0x1001:
|
||||
sequence->structural_components_count = avio_rb32(pb);
|
||||
sequence->structural_components_refs = av_calloc(sequence->structural_components_count, sizeof(UID));
|
||||
@ -1627,6 +1631,16 @@ static int mxf_parse_structural_metadata(MXFContext *mxf)
|
||||
}
|
||||
}
|
||||
st->need_parsing = AVSTREAM_PARSE_HEADERS;
|
||||
if (material_track->sequence->origin) {
|
||||
char material_origin[3];
|
||||
snprintf(material_origin, sizeof(material_origin), "%d", material_track->sequence->origin);
|
||||
av_dict_set(&st->metadata, "material_track_origin", material_origin, 0);
|
||||
}
|
||||
if (source_track->sequence->origin) {
|
||||
char source_origin[3];
|
||||
snprintf(source_origin, sizeof(source_origin), "%d", source_track->sequence->origin);
|
||||
av_dict_set(&st->metadata, "source_track_origin", source_origin, 0);
|
||||
}
|
||||
} else if (st->codec->codec_type == AVMEDIA_TYPE_AUDIO) {
|
||||
container_ul = mxf_get_codec_ul(mxf_sound_essence_container_uls, essence_container_ul);
|
||||
/* Only overwrite existing codec ID if it is unset or A-law, which is the default according to SMPTE RP 224. */
|
||||
|
Loading…
Reference in New Issue
Block a user