On Fri, Nov 18, 2016 at 11:06:56PM +0100, Andreas Cadhalpun wrote: > AVOption.max is a double, which has not enough precision for INT64_MAX. > > It gets interpreted as INT64_MIN, when converted back to int64_t. > > Signed-off-by: Andreas Cadhalpun <[email protected]> > --- > libavcodec/options_table.h | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) > > diff --git a/libavcodec/options_table.h b/libavcodec/options_table.h > index 48de667..f117ce4 100644 > --- a/libavcodec/options_table.h > +++ b/libavcodec/options_table.h > @@ -41,8 +41,10 @@ > > #define AV_CODEC_DEFAULT_BITRATE 200*1000 > > +#define FF_INT64_MAX (INT64_MAX - 0x1000)
Missing documentation
> +
> static const AVOption avcodec_options[] = {
> -{"b", "set bitrate (in bits/s)", OFFSET(bit_rate), AV_OPT_TYPE_INT64, {.i64
> = AV_CODEC_DEFAULT_BITRATE }, 0, INT64_MAX, A|V|E},
> +{"b", "set bitrate (in bits/s)", OFFSET(bit_rate), AV_OPT_TYPE_INT64, {.i64
> = AV_CODEC_DEFAULT_BITRATE }, 0, FF_INT64_MAX, A|V|E},
> {"ab", "set bitrate (in bits/s)", OFFSET(bit_rate), AV_OPT_TYPE_INT64, {.i64
> = 128*1000 }, 0, INT_MAX, A|E},
> {"bt", "Set video bitrate tolerance (in bits/s). In 1-pass mode, bitrate
> tolerance specifies how far "
> "ratecontrol is willing to deviate from the target average bitrate
> value. This is not related "
> @@ -444,11 +446,11 @@ static const AVOption avcodec_options[] = {
> #if FF_API_PRIVATE_OPT
> {"min_prediction_order", NULL, OFFSET(min_prediction_order),
> AV_OPT_TYPE_INT, {.i64 = -1 }, INT_MIN, INT_MAX, A|E},
> {"max_prediction_order", NULL, OFFSET(max_prediction_order),
> AV_OPT_TYPE_INT, {.i64 = -1 }, INT_MIN, INT_MAX, A|E},
> -{"timecode_frame_start", "GOP timecode frame start number, in non-drop-frame
> format", OFFSET(timecode_frame_start), AV_OPT_TYPE_INT64, {.i64 = -1 }, -1,
> INT64_MAX, V|E},
> +{"timecode_frame_start", "GOP timecode frame start number, in non-drop-frame
> format", OFFSET(timecode_frame_start), AV_OPT_TYPE_INT64, {.i64 = -1 }, -1,
> FF_INT64_MAX, V|E},
> #endif
> {"bits_per_raw_sample", NULL, OFFSET(bits_per_raw_sample), AV_OPT_TYPE_INT,
> {.i64 = DEFAULT }, 0, INT_MAX},
> -{"channel_layout", NULL, OFFSET(channel_layout), AV_OPT_TYPE_INT64, {.i64 =
> DEFAULT }, 0, INT64_MAX, A|E|D, "channel_layout"},
> +{"channel_layout", NULL, OFFSET(channel_layout), AV_OPT_TYPE_INT64, {.i64 =
> DEFAULT }, 0, FF_INT64_MAX, A|E|D, "channel_layout"},
> -{"request_channel_layout", NULL, OFFSET(request_channel_layout),
> AV_OPT_TYPE_INT64, {.i64 = DEFAULT }, 0, INT64_MAX, A|D,
> "request_channel_layout"},
> +{"request_channel_layout", NULL, OFFSET(request_channel_layout),
> AV_OPT_TYPE_INT64, {.i64 = DEFAULT }, 0, FF_INT64_MAX, A|D,
> "request_channel_layout"},
this doesnt feel right
layout is not a scalar
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Awnsering whenever a program halts or runs forever is
On a turing machine, in general impossible (turings halting problem).
On any real computer, always possible as a real computer has a finite number
of states N, and will either halt in less than N cycles or never halt.
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list [email protected] http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
