On Tue, Oct 17, 2017 at 11:49:57AM +0000, Luca Barbato wrote:
> According to the MediaSDK documentation the idr_interval value has
> a different meaning depending on the codec:
> 
>     0 in H264 means make every I-frame IDR, in HEVC means to have
>     it only at the beginning.

it means

>     1 in H264 means every other I-frame is not-IDR, in HEVC means
>     that every I-frame is IDR.

it means

> Increase by 1 idr_interval for hevc and support -1 with a constant
> name to provide a mean to have the only-at-beginning behaviour if
> really need.
>
> Keep the default consistent between the two encoders.

Keep the default consistent between the two encoders. Make 1 the default
for HEVC and provide a shorthand option to set idr_interval to 0 for HEVC.

> --- a/libavcodec/qsvenc_hevc.c
> +++ b/libavcodec/qsvenc_hevc.c
> @@ -220,7 +223,8 @@ static av_cold int qsv_enc_close(AVCodecContext *avctx)
>  
> -    { "idr_interval", "Distance (in I-frames) between IDR frames", 
> OFFSET(qsv.idr_interval), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX, VE },
> +    { "idr_interval", "Distance (in I-frames) between IDR frames", 
> OFFSET(qsv.idr_interval), AV_OPT_TYPE_INT, { .i64 = 0 }, -1, INT_MAX, VE, 
> "idr_interval" },
> +    { "begin_only", "Output an IDR-frame only at the begin of the stream", 
> 0, AV_OPT_TYPE_CONST, { .i64 = -1 }, 0, 0, VE, "idr_interval" },

only at the beginning of the stream

Diego
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to