|
|
@ -39,7 +39,7 @@ static int noise(AVBSFContext *ctx, AVPacket *pkt) |
|
|
|
{ |
|
|
|
{ |
|
|
|
NoiseContext *s = ctx->priv_data; |
|
|
|
NoiseContext *s = ctx->priv_data; |
|
|
|
int amount = s->amount > 0 ? s->amount : (s->state % 10001 + 1); |
|
|
|
int amount = s->amount > 0 ? s->amount : (s->state % 10001 + 1); |
|
|
|
int i, ret = 0; |
|
|
|
int i, ret; |
|
|
|
|
|
|
|
|
|
|
|
if (amount <= 0) |
|
|
|
if (amount <= 0) |
|
|
|
return AVERROR(EINVAL); |
|
|
|
return AVERROR(EINVAL); |
|
|
@ -55,19 +55,18 @@ static int noise(AVBSFContext *ctx, AVPacket *pkt) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
ret = av_packet_make_writable(pkt); |
|
|
|
ret = av_packet_make_writable(pkt); |
|
|
|
if (ret < 0) |
|
|
|
if (ret < 0) { |
|
|
|
goto fail; |
|
|
|
av_packet_unref(pkt); |
|
|
|
|
|
|
|
return ret; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
for (i = 0; i < pkt->size; i++) { |
|
|
|
for (i = 0; i < pkt->size; i++) { |
|
|
|
s->state += pkt->data[i] + 1; |
|
|
|
s->state += pkt->data[i] + 1; |
|
|
|
if (s->state % amount == 0) |
|
|
|
if (s->state % amount == 0) |
|
|
|
pkt->data[i] = s->state; |
|
|
|
pkt->data[i] = s->state; |
|
|
|
} |
|
|
|
} |
|
|
|
fail: |
|
|
|
|
|
|
|
if (ret < 0) |
|
|
|
|
|
|
|
av_packet_unref(pkt); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return ret; |
|
|
|
return 0; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#define OFFSET(x) offsetof(NoiseContext, x) |
|
|
|
#define OFFSET(x) offsetof(NoiseContext, x) |
|
|
|