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

Gyan Doshi ffmpeg at gyani.pro
Fri Jul 23 22:54:54 EEST 2021



On 2021-07-24 01:14, Michael Niedermayer wrote:
> 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"

Will re-add it. Is making it default required?

Gyan


More information about the ffmpeg-devel mailing list