[FFmpeg-devel] [PATCH v5 1/3] speedhq: fix behavior of single-field decoding

James Almer jamrial at gmail.com
Thu Aug 3 22:53:28 EEST 2017


On 8/3/2017 4:22 AM, Steinar H. Gunderson wrote:
> The height convention for decoding frames with only a single field made sense
> for compatibility with legacy decoders, but doesn't really match the convention
> used by NDI, which is the primary (only?) user. Thus, change it to simply
> assuming that if the two fields overlap, the frame is meant to be a single
> field and the frame height matches the field height.
> ---
>  libavcodec/speedhq.c | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/libavcodec/speedhq.c b/libavcodec/speedhq.c
> index 60efb0222b..47b1e4dc7a 100644
> --- a/libavcodec/speedhq.c
> +++ b/libavcodec/speedhq.c
> @@ -450,10 +450,13 @@ static int speedhq_decode_frame(AVCodecContext *avctx,
>      if (second_field_offset == 4) {
>          /*
>           * Overlapping first and second fields is used to signal
> -         * encoding only a single field (the second field then comes
> -         * as a separate, later frame).
> +         * encoding only a single field. In this case, "height"
> +         * is ambiguous; it could mean either the height of the
> +         * frame as a whole, or of the field. The former would make
> +         * more sense for compatibility with legacy decoders,
> +         * but this matches the convention used in NDI, which is
> +         * the primary user of this trick.
>           */
> -        frame->height >>= 1;
>          if ((ret = decode_speedhq_field(s, buf, buf_size, frame, 0, 4, buf_size, 1)) < 0)
>              return ret;
>      } else {
> 

Applied.


More information about the ffmpeg-devel mailing list