[FFmpeg-devel] [PATCH v2 1/2] avcodec/noise: don't force non-zero value for amount

Michael Niedermayer michael at niedermayer.cc
Fri Jul 23 22:44:09 EEST 2021


On Fri, Jul 23, 2021 at 04:04:49PM +0530, Gyan Doshi wrote:
> Currently, the user is forced to accept some noise in
> packet payload, even if not requested.
> ---
>  doc/bitstream_filters.texi                    | 13 +++++-------
>  libavcodec/noise_bsf.c                        | 21 +++++++++++++------
>  tests/fate/matroska.mak                       |  2 +-
>  .../fate/matroska-mastering-display-metadata  | 10 ++++-----
>  4 files changed, 26 insertions(+), 20 deletions(-)
> 
> diff --git a/doc/bitstream_filters.texi b/doc/bitstream_filters.texi
> index d10842ae47..2b84bda1fc 100644
> --- a/doc/bitstream_filters.texi
> +++ b/doc/bitstream_filters.texi
> @@ -534,20 +534,17 @@ container. Can be used for fuzzing or testing error resilience/concealment.
>  Parameters:
>  @table @option
>  @item amount
> -A numeral string, whose value is related to how often output bytes will
> -be modified. Therefore, values below or equal to 0 are forbidden, and
> -the lower the more frequent bytes will be modified, with 1 meaning
> -every byte is modified.
> +Accepts a positive integer. Lower the value, more frequently bytes will be modified,
> +with @var{1} meaning every byte is modified. Default is @var{0}.
>  @item dropamount
> -A numeral string, whose value is related to how often packets will be dropped.
> -Therefore, values below or equal to 0 are forbidden, and the lower the more
> -frequent packets will be dropped, with 1 meaning every packet is dropped.
> +Accepts a positive integer. Lower the value, more frequently packets will be dropped,
> +with @var{1} meaning every packet is dropped. Default is @var{0}.
>  @end table
>  
>  The following example applies the modification to every byte but does not drop
>  any packets.
>  @example
> -ffmpeg -i INPUT -c copy -bsf noise[=1] output.mkv
> +ffmpeg -i INPUT -c copy -bsf noise=amount=1 output.mkv
>  @end example
>  
>  @section null
> diff --git a/libavcodec/noise_bsf.c b/libavcodec/noise_bsf.c
> index 6ebd369633..c1b0203442 100644
> --- a/libavcodec/noise_bsf.c
> +++ b/libavcodec/noise_bsf.c
> @@ -33,20 +33,28 @@ typedef struct NoiseContext {
>      unsigned int state;
>  } NoiseContext;
>  
> -static int noise(AVBSFContext *ctx, AVPacket *pkt)
> +static int noise_init(AVBSFContext *ctx)
>  {
>      NoiseContext *s = ctx->priv_data;
> -    int amount = s->amount > 0 ? s->amount : (s->state % 10001 + 1);
> -    int i, ret;

you are droping the support for variable noise

this also breaks a simple plain "-bsf noise"


[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

It is what and why we do it that matters, not just one of them.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20210723/6acc4f0f/attachment.sig>


More information about the ffmpeg-devel mailing list