[FFmpeg-devel] [PATCH] lavc/{av1, h264, h265}_metadata_bsf: fix description of tick_rate

mypopy at gmail.com mypopy at gmail.com
Tue Dec 14 05:26:57 EET 2021


On Fri, Aug 27, 2021 at 3:14 PM Zhao Zhili <quinkblack at foxmail.com> wrote:
>
> Users may take the description literally which leads to inverted
> results.
> ---
>  doc/bitstream_filters.texi     | 8 ++++----
>  libavcodec/av1_metadata_bsf.c  | 2 +-
>  libavcodec/h264_metadata_bsf.c | 2 +-
>  libavcodec/h265_metadata_bsf.c | 2 +-
>  4 files changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/doc/bitstream_filters.texi b/doc/bitstream_filters.texi
> index 1900eb4352..6051dc28d2 100644
> --- a/doc/bitstream_filters.texi
> +++ b/doc/bitstream_filters.texi
> @@ -81,7 +81,7 @@ Top-left position.
>  @end table
>
>  @item tick_rate
> -Set the tick rate (@emph{num_units_in_display_tick / time_scale}) in
> +Set the tick rate (@emph{time_scale / num_units_in_display_tick}) in
>  the timing info in the sequence header.
>  @item num_ticks_per_picture
>  Set the number of ticks in each picture, to indicate that the stream
> @@ -244,7 +244,7 @@ Set the chroma sample location in the stream (see H.264 section
>  E.2.1 and figure E-1).
>
>  @item tick_rate
> -Set the tick rate (num_units_in_tick / time_scale) in the VUI
> +Set the tick rate (time_scale / num_units_in_tick) in the VUI
>  parameters.  This is the smallest time unit representable in the
>  stream, and in many cases represents the field rate of the stream
>  (double the frame rate).
> @@ -352,8 +352,8 @@ Set the chroma sample location in the stream (see H.265 section
>  E.3.1 and figure E.1).
>
>  @item tick_rate
> -Set the tick rate in the VPS and VUI parameters (num_units_in_tick /
> -time_scale).  Combined with @option{num_ticks_poc_diff_one}, this can
> +Set the tick rate in the VPS and VUI parameters (time_scale /
> +num_units_in_tick). Combined with @option{num_ticks_poc_diff_one}, this can
>  set a constant framerate in the stream.  Note that it is likely to be
>  overridden by container parameters when the stream is in a container.
>
> diff --git a/libavcodec/av1_metadata_bsf.c b/libavcodec/av1_metadata_bsf.c
> index 1fb85d88b7..c52673bf6a 100644
> --- a/libavcodec/av1_metadata_bsf.c
> +++ b/libavcodec/av1_metadata_bsf.c
> @@ -194,7 +194,7 @@ static const AVOption av1_metadata_options[] = {
>      { "colocated", "Top-left chroma sample position", 0, AV_OPT_TYPE_CONST,
>          { .i64 = AV1_CSP_COLOCATED }, .flags = FLAGS, .unit = "csp" },
>
> -    { "tick_rate", "Set display tick rate (num_units_in_display_tick / time_scale)",
> +    { "tick_rate", "Set display tick rate (time_scale / num_units_in_display_tick)",
>          OFFSET(tick_rate), AV_OPT_TYPE_RATIONAL,
>          { .dbl = 0.0 }, 0, UINT_MAX, FLAGS },
>      { "num_ticks_per_picture", "Set display ticks per picture for CFR streams",
> diff --git a/libavcodec/h264_metadata_bsf.c b/libavcodec/h264_metadata_bsf.c
> index 452a8ec5dc..c79d91dcef 100644
> --- a/libavcodec/h264_metadata_bsf.c
> +++ b/libavcodec/h264_metadata_bsf.c
> @@ -617,7 +617,7 @@ static const AVOption h264_metadata_options[] = {
>          OFFSET(chroma_sample_loc_type), AV_OPT_TYPE_INT,
>          { .i64 = -1 }, -1, 6, FLAGS },
>
> -    { "tick_rate", "Set VUI tick rate (num_units_in_tick / time_scale)",
> +    { "tick_rate", "Set VUI tick rate (time_scale / num_units_in_tick)",
>          OFFSET(tick_rate), AV_OPT_TYPE_RATIONAL,
>          { .dbl = 0.0 }, 0, UINT_MAX, FLAGS },
>      { "fixed_frame_rate_flag", "Set VUI fixed frame rate flag",
> diff --git a/libavcodec/h265_metadata_bsf.c b/libavcodec/h265_metadata_bsf.c
> index d841839762..e5f70cfbc1 100644
> --- a/libavcodec/h265_metadata_bsf.c
> +++ b/libavcodec/h265_metadata_bsf.c
> @@ -439,7 +439,7 @@ static const AVOption h265_metadata_options[] = {
>          { .i64 = -1 }, -1, 6, FLAGS },
>
>      { "tick_rate",
> -        "Set VPS and VUI tick rate (num_units_in_tick / time_scale)",
> +        "Set VPS and VUI tick rate (time_scale / num_units_in_tick)",
>          OFFSET(tick_rate), AV_OPT_TYPE_RATIONAL,
>          { .dbl = 0.0 }, 0, UINT_MAX, FLAGS },
>      { "num_ticks_poc_diff_one",
> --

Patch is Ok,tick rate  is likes to  frame rate, so  time_scale /
num_units_in_tick is the correct way to calculate it. Thx


More information about the ffmpeg-devel mailing list