[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