Re: [FFmpeg-devel] [PATCH] avformat/mxfenc: calculate and store DAR from user SAR
mån 2018-12-10 klockan 10:17 +0100 skrev Paul B Mahol: > > Signed-off-by: Paul B Mahol > --- > libavformat/mxfenc.c | 5 + > 1 file changed, 5 insertions(+) > > diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c > index 3549b4137d..006a9da1f8 100644 > --- a/libavformat/mxfenc.c > +++ b/libavformat/mxfenc.c > @@ -2368,6 +2368,11 @@ static int mxf_write_header(AVFormatContext *s) > sc->v_chroma_sub_sample = 2; > sc->color_siting = 0xFF; > > +if (st->codecpar->sample_aspect_ratio.num && > st->codecpar->sample_aspect_ratio.den) { > +sc->aspect_ratio = > av_mul_q(st->codecpar->sample_aspect_ratio, > +av_make_q(st->codecpar->width, > st->codecpar->height)); > +} > + Nice, look OK of course /Tomas ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
[FFmpeg-devel] [PATCH] avformat/mxfenc: calculate and store DAR from user SAR
Signed-off-by: Paul B Mahol --- libavformat/mxfenc.c | 5 + 1 file changed, 5 insertions(+) diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c index 3549b4137d..006a9da1f8 100644 --- a/libavformat/mxfenc.c +++ b/libavformat/mxfenc.c @@ -2368,6 +2368,11 @@ static int mxf_write_header(AVFormatContext *s) sc->v_chroma_sub_sample = 2; sc->color_siting = 0xFF; +if (st->codecpar->sample_aspect_ratio.num && st->codecpar->sample_aspect_ratio.den) { +sc->aspect_ratio = av_mul_q(st->codecpar->sample_aspect_ratio, +av_make_q(st->codecpar->width, st->codecpar->height)); +} + if (pix_desc) { sc->component_depth = pix_desc->comp[0].depth; sc->h_chroma_sub_sample = 1 << pix_desc->log2_chroma_w; -- 2.17.1 ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH] avformat/mxfenc: calculate and store DAR from user SAR
Paul B Mahol (2018-12-09): > >> +if (st->codecpar->sample_aspect_ratio.num && > >> st->codecpar->sample_aspect_ratio.den) { > >> +av_reduce(>aspect_ratio.num, >aspect_ratio.den, > >> + st->codecpar->sample_aspect_ratio.num * > >> st->codecpar->width, > >> + st->codecpar->sample_aspect_ratio.den * > >> st->codecpar->height, INT_MAX); > There is no av_reduce_q. But there are av_mul_q() and av_div_q(), that would make these computations much more readable, and are protected from overflow. Regards, -- Nicolas George signature.asc Description: Digital signature ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH] avformat/mxfenc: calculate and store DAR from user SAR
On 12/9/18, Tomas Härdin wrote: > fre 2018-12-07 klockan 21:30 +0100 skrev Paul B Mahol: >> Fixes #5155 >> >> > Signed-off-by: Paul B Mahol >> --- >> 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(>aspect_ratio.num, >aspect_ratio.den, >> + st->codecpar->sample_aspect_ratio.num * >> st->codecpar->width, >> + st->codecpar->sample_aspect_ratio.den * >> st->codecpar->height, INT_MAX); > > Can these multiplications ever overflow? av_reduce_q might be a better > choice. There is no av_reduce_q. ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH] avformat/mxfenc: calculate and store DAR from user SAR
fre 2018-12-07 klockan 21:30 +0100 skrev Paul B Mahol: > Fixes #5155 > > > Signed-off-by: Paul B Mahol > --- > 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(>aspect_ratio.num, >aspect_ratio.den, > + st->codecpar->sample_aspect_ratio.num * > st->codecpar->width, > + st->codecpar->sample_aspect_ratio.den * > st->codecpar->height, INT_MAX); Can these multiplications ever overflow? av_reduce_q might be a better choice. /Tomas ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
[FFmpeg-devel] [PATCH] avformat/mxfenc: calculate and store DAR from user SAR
Fixes #5155 Signed-off-by: Paul B Mahol --- 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(>aspect_ratio.num, >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(>aspect_ratio.num, >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, )) { av_log(s, AV_LOG_ERROR, "could not get mpeg2 profile and level\n"); -- 2.17.1 ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel