Paul B Mahol
2018-12-07 20:30:56 UTC
Fixes #5155
Signed-off-by: Paul B Mahol <***@gmail.com>
---
libavformat/mxfenc.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c
index 3549b4137d..8f762c7eaf 100644
--- a/libavformat/mxfenc.c
+++ b/libavformat/mxfenc.c
@@ -2726,6 +2726,14 @@ static int mxf_write_packet(AVFormatContext *s, AVPacket *pkt)
}
}
+ if (st->codecpar->sample_aspect_ratio.num && st->codecpar->sample_aspect_ratio.den) {
+ av_reduce(&sc->aspect_ratio.num, &sc->aspect_ratio.den,
+ st->codecpar->sample_aspect_ratio.num * st->codecpar->width,
+ st->codecpar->sample_aspect_ratio.den * st->codecpar->height, INT_MAX);
+ } else if (st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) {
+ av_reduce(&sc->aspect_ratio.num, &sc->aspect_ratio.den, st->codecpar->width, st->codecpar->height, INT_MAX);
+ }
+
if (st->codecpar->codec_id == AV_CODEC_ID_MPEG2VIDEO) {
if (!mxf_parse_mpeg2_frame(s, st, pkt, &ie)) {
av_log(s, AV_LOG_ERROR, "could not get mpeg2 profile and level\n");
Signed-off-by: Paul B Mahol <***@gmail.com>
---
libavformat/mxfenc.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c
index 3549b4137d..8f762c7eaf 100644
--- a/libavformat/mxfenc.c
+++ b/libavformat/mxfenc.c
@@ -2726,6 +2726,14 @@ static int mxf_write_packet(AVFormatContext *s, AVPacket *pkt)
}
}
+ if (st->codecpar->sample_aspect_ratio.num && st->codecpar->sample_aspect_ratio.den) {
+ av_reduce(&sc->aspect_ratio.num, &sc->aspect_ratio.den,
+ st->codecpar->sample_aspect_ratio.num * st->codecpar->width,
+ st->codecpar->sample_aspect_ratio.den * st->codecpar->height, INT_MAX);
+ } else if (st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) {
+ av_reduce(&sc->aspect_ratio.num, &sc->aspect_ratio.den, st->codecpar->width, st->codecpar->height, INT_MAX);
+ }
+
if (st->codecpar->codec_id == AV_CODEC_ID_MPEG2VIDEO) {
if (!mxf_parse_mpeg2_frame(s, st, pkt, &ie)) {
av_log(s, AV_LOG_ERROR, "could not get mpeg2 profile and level\n");
--
2.17.1
2.17.1