[FFmpeg-devel] [PATCH] avcodec/ffv1enc: choose 1.2 by default for higher resolutions to ensure multi-threaded decodability
Peter B.
pb at das-werkstatt.com
Mon Dec 9 00:46:37 CET 2013
On 12/08/2013 06:25 PM, Michael Niedermayer wrote:
> Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> ---
> libavcodec/ffv1enc.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/libavcodec/ffv1enc.c b/libavcodec/ffv1enc.c
> index 2c87d7a..4856be5 100644
> --- a/libavcodec/ffv1enc.c
> +++ b/libavcodec/ffv1enc.c
> @@ -672,6 +672,10 @@ static av_cold int encode_init(AVCodecContext *avctx)
> if ((avctx->flags & (CODEC_FLAG_PASS1|CODEC_FLAG_PASS2)) || avctx->slices>1)
> s->version = FFMAX(s->version, 2);
>
> + // Unspecified level & slices, we choose version 1.2+ to ensure multithreaded decodability
> + if (avctx->slices == 0 && avctx->level < 0 && avctx->width * avctx->height > 720*576)
> + s->version = FFMAX(s->version, 2);
> +
> if (avctx->level == 3 || (avctx->level <= 0 && s->version == 2)) {
> s->version = 3;
> }
Do I understand this correctly to set the bitstream version to "2" if
the resolution is greater than SD?
If so, I wanted to ask why not set the version to 1.3 directly?
As far as I understood, v1.2 was never officially released, so no files
with v1.2 should actually exist in the wild. Wouldn't your patch now
cause v1.2 files to be generated in some cases? I thought v1.2 was
directly to be skipped and v1.3 be used instead.
Could be that I'm completely wrong, but I'm confused... :)
Would you please elaborate a bit the use cases for v1.2 vs v1.3?
Thank you very much in advance,
Pb
More information about the ffmpeg-devel
mailing list