parent
0b3c230542
commit
92c07acce7
@ -1103,6 +1103,13 @@ typedef struct AVStream {
|
|||||||
* Keys are separated from values by '='.
|
* Keys are separated from values by '='.
|
||||||
*/
|
*/
|
||||||
char *recommended_encoder_configuration;
|
char *recommended_encoder_configuration;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* display aspect ratio (0 if unknown)
|
||||||
|
* - encoding: unused
|
||||||
|
* - decoding: Set by libavformat to calculate sample_aspect_ratio internally
|
||||||
|
*/
|
||||||
|
AVRational display_aspect_ratio;
|
||||||
} AVStream;
|
} AVStream;
|
||||||
|
|
||||||
AVRational av_stream_get_r_frame_rate(const AVStream *s);
|
AVRational av_stream_get_r_frame_rate(const AVStream *s);
|
||||||
|
@ -1781,6 +1781,8 @@ static int mxf_parse_structural_metadata(MXFContext *mxf)
|
|||||||
if (source_track->sequence->origin) {
|
if (source_track->sequence->origin) {
|
||||||
av_dict_set_int(&st->metadata, "source_track_origin", source_track->sequence->origin, 0);
|
av_dict_set_int(&st->metadata, "source_track_origin", source_track->sequence->origin, 0);
|
||||||
}
|
}
|
||||||
|
if (descriptor->aspect_ratio.num && descriptor->aspect_ratio.den)
|
||||||
|
st->display_aspect_ratio = descriptor->aspect_ratio;
|
||||||
} else if (st->codec->codec_type == AVMEDIA_TYPE_AUDIO) {
|
} else if (st->codec->codec_type == AVMEDIA_TYPE_AUDIO) {
|
||||||
container_ul = mxf_get_codec_ul(mxf_sound_essence_container_uls, essence_container_ul);
|
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. */
|
/* Only overwrite existing codec ID if it is unset or A-law, which is the default according to SMPTE RP 224. */
|
||||||
|
@ -3347,6 +3347,11 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options)
|
|||||||
st->r_frame_rate.den = st->time_base.num;
|
st->r_frame_rate.den = st->time_base.num;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (st->display_aspect_ratio.num && st->display_aspect_ratio.den) {
|
||||||
|
AVRational hw_ratio = { st->codec->height, st->codec->width };
|
||||||
|
st->sample_aspect_ratio = av_mul_q(st->display_aspect_ratio,
|
||||||
|
hw_ratio);
|
||||||
|
}
|
||||||
} else if (st->codec->codec_type == AVMEDIA_TYPE_AUDIO) {
|
} else if (st->codec->codec_type == AVMEDIA_TYPE_AUDIO) {
|
||||||
if (!st->codec->bits_per_coded_sample)
|
if (!st->codec->bits_per_coded_sample)
|
||||||
st->codec->bits_per_coded_sample =
|
st->codec->bits_per_coded_sample =
|
||||||
|
Loading…
x
Reference in New Issue
Block a user