mirror of
https://github.com/librempeg/librempeg
synced 2024-11-22 00:51:37 +00:00
timefilter: Handle memory allocation failure
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
This commit is contained in:
parent
e789130522
commit
327c439f81
@ -190,6 +190,10 @@ static int start_jack(AVFormatContext *context)
|
||||
period = (double) self->buffer_size / self->sample_rate;
|
||||
o = 2 * M_PI * 1.5 * period; /// bandwidth: 1.5Hz
|
||||
self->timefilter = ff_timefilter_new (1.0 / self->sample_rate, sqrt(2 * o), o * o);
|
||||
if (!self->timefilter) {
|
||||
jack_client_close(self->client);
|
||||
return AVERROR(ENOMEM);
|
||||
}
|
||||
|
||||
/* Create FIFO buffers */
|
||||
self->filled_pkts = av_fifo_alloc(FIFO_PACKETS_NUM * sizeof(AVPacket));
|
||||
|
@ -41,7 +41,11 @@ TimeFilter *ff_timefilter_new(double clock_period,
|
||||
double feedback2_factor,
|
||||
double feedback3_factor)
|
||||
{
|
||||
TimeFilter *self = av_mallocz(sizeof(TimeFilter));
|
||||
TimeFilter *self = av_mallocz(sizeof(TimeFilter));
|
||||
|
||||
if (!self)
|
||||
return NULL;
|
||||
|
||||
self->clock_period = clock_period;
|
||||
self->feedback2_factor = feedback2_factor;
|
||||
self->feedback3_factor = feedback3_factor;
|
||||
@ -105,6 +109,10 @@ int main(void)
|
||||
for (par1 = bestpar1 * 0.8; par1 <= bestpar1 * 1.21; par1 += bestpar1 * 0.05) {
|
||||
double error = 0;
|
||||
TimeFilter *tf = ff_timefilter_new(1, par0, par1);
|
||||
if (!tf) {
|
||||
printf("Could not allocate memory for timefilter.\n");
|
||||
exit(1);
|
||||
}
|
||||
for (i = 0; i < SAMPLES; i++) {
|
||||
double filtered;
|
||||
filtered = ff_timefilter_update(tf, samples[i], 1);
|
||||
|
@ -56,6 +56,8 @@ typedef struct TimeFilter TimeFilter;
|
||||
* @param clock_period period of the hardware clock in seconds
|
||||
* (for example 1.0/44100)
|
||||
*
|
||||
* @return a pointer to a TimeFilter struct, or NULL on error
|
||||
*
|
||||
* For more details about these parameters and background concepts please see:
|
||||
* http://www.kokkinizita.net/papers/usingdll.pdf
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user