[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 10:55:53 CET 2013
Quoting Michael Niedermayer <michaelni at gmx.at>:
> On Mon, Dec 09, 2013 at 12:46:37AM +0100, Peter B. wrote:
>> 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?
>
> there is no reason, its equivalent, the next line will change it to
> 3
Oh, now I see.
Thanks for clearing that up for me.
This auto-level setting is actually a nice thing for applications
which do not yet offer a switch for choosing FFV1-version, by allowing
to use them to generate FFV1.3 files.
Thanks,
Pb
More information about the ffmpeg-devel
mailing list