[FFmpeg-devel] [PATCH v2] avcodec/dpx: Read alternative frame rate from television header
Harry Mallon
harry.mallon at codex.online
Mon Sep 28 17:52:33 EEST 2020
> On 14 Aug 2020, at 11:03, Harry Mallon <harry.mallon at codex.online> wrote:
>
> Signed-off-by: Harry Mallon <harry.mallon at codex.online>
> ---
> libavcodec/dpx.c | 15 ++++++++++++++-
> 1 file changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/libavcodec/dpx.c b/libavcodec/dpx.c
> index b1833ed9ef..7e3ac0af2e 100644
> --- a/libavcodec/dpx.c
> +++ b/libavcodec/dpx.c
> @@ -216,10 +216,23 @@ static int decode_frame(AVCodecContext *avctx,
> else
> avctx->sample_aspect_ratio = (AVRational){ 0, 1 };
>
> + /* preferred frame rate from Motion-picture film header */
> if (offset >= 1724 + 4) {
> buf = avpkt->data + 1724;
> i = read32(&buf, endian);
> - if(i) {
> + if(i && i != 0xFFFFFFFF) {
> + AVRational q = av_d2q(av_int2float(i), 4096);
> + if (q.num > 0 && q.den > 0)
> + avctx->framerate = q;
> + }
> + }
> +
> + /* alternative frame rate from television header */
> + if (offset >= 1940 + 4 &&
> + !(avctx->framerate.num && avctx->framerate.den)) {
> + buf = avpkt->data + 1940;
> + i = read32(&buf, endian);
> + if(i && i != 0xFFFFFFFF) {
> AVRational q = av_d2q(av_int2float(i), 4096);
> if (q.num > 0 && q.den > 0)
> avctx->framerate = q;
> --
> 2.28.0
>
Bump, does anyone have anything on this?
Best,
Harry
More information about the ffmpeg-devel
mailing list