Commit 6ef30976 authored by Derek Buitenhuis's avatar Derek Buitenhuis
Browse files

timefilter: Handle memory allocation failure

Signed-off-by: default avatarDerek Buitenhuis <derek.buitenhuis@gmail.com>
parent fc7be7dd
release/6.1 n7.1-dev n7.0.2 n7.0.1 n7.0 n6.2-dev n6.1.2 n6.1.1 n6.1 n6.1-dev n6.0.1 n6.0 n5.2-dev n5.1.6 n5.1.5 n5.1.4 n5.1.3 n5.1.2 n5.1.1 n5.1 n5.1-dev n5.0.3 n5.0.2 n5.0.1 n5.0 n4.5-dev n4.4.5 n4.4.4 n4.4.3 n4.4.2 n4.4.1 n4.4 n4.4-dev n4.3.8 n4.3.7 n4.3.6 n4.3.5 n4.3.4 n4.3.3 n4.3.2 n4.3.1 n4.3 n4.3-dev n4.2.10 n4.2.9 n4.2.8 n4.2.7 n4.2.6 n4.2.5 n4.2.4 n4.2.3 n4.2.2 n4.2.1 n4.2 n4.2-dev n4.1.11 n4.1.10 n4.1.9 n4.1.8 n4.1.7 n4.1.6 n4.1.5 n4.1.4 n4.1.3 n4.1.2 n4.1.1 n4.1 n4.1-dev n4.0.6 n4.0.5 n4.0.4 n4.0.3 n4.0.2 n4.0.1 n4.0 n3.5-dev n3.4.13 n3.4.12 n3.4.11 n3.4.10 n3.4.9 n3.4.8 n3.4.7 n3.4.6 n3.4.5 n3.4.4 n3.4.3 n3.4.2 n3.4.1 n3.4 n3.4-dev n3.3.9 n3.3.8 n3.3.7 n3.3.6 n3.3.5 n3.3.4 n3.3.3 n3.3.2 n3.3.1 n3.3 n3.3-dev n3.2.19 n3.2.18 n3.2.17 n3.2.16 n3.2.15 n3.2.14 n3.2.13 n3.2.12 n3.2.11 n3.2.10 n3.2.9 n3.2.8 n3.2.7 n3.2.6 n3.2.5 n3.2.4 n3.2.3 n3.2.2 n3.2.1 n3.2 n3.2-dev n3.1.11 n3.1.10 n3.1.9 n3.1.8 n3.1.7 n3.1.6 n3.1.5 n3.1.4 n3.1.3 n3.1.2 n3.1.1 n3.1 n3.1-dev n3.0.12 n3.0.11 n3.0.10 n3.0.9 n3.0.8 n3.0.7 n3.0.6 n3.0.5 n3.0.4 n3.0.3 n3.0.2 n3.0.1 n3.0 n2.9-dev n2.8.22 n2.8.21 n2.8.20 n2.8.19 n2.8.18 n2.8.17 n2.8.16 n2.8.15 n2.8.14 n2.8.13 n2.8.12 n2.8.11 n2.8.10 n2.8.9 n2.8.8 n2.8.7 n2.8.6 n2.8.5 n2.8.4 n2.8.3 n2.8.2 n2.8.1 n2.8 n2.8-dev n2.7.7 n2.7.6 n2.7.5 n2.7.4 n2.7.3 n2.7.2 n2.7.1 n2.7 n2.7-dev n2.6.9 n2.6.8 n2.6.7 n2.6.6 n2.6.5 n2.6.4 n2.6.3 n2.6.2 n2.6.1 n2.6 n2.6-dev n2.5.11 n2.5.10 n2.5.9 n2.5.8 n2.5.7 n2.5.6 n2.5.5 n2.5.4 n2.5.3 n2.5.2 n2.5.1 n2.5 n2.5-dev n2.4.14 n2.4.13 n2.4.12 n2.4.11 n2.4.10 n2.4.9 n2.4.8 n2.4.7 n2.4.6 n2.4.5 n2.4.4 n2.4.3 n2.4.2 n2.4.1 n2.4 n2.4-dev n2.3.6 n2.3.5 n2.3.4 n2.3.3 n2.3.2 n2.3.1 n2.3 n2.3-dev n2.2.16 n2.2.15 n2.2.14 n2.2.13 n2.2.12 n2.2.11 n2.2.10 n2.2.9 n2.2.8 n2.2.7 n2.2.6 n2.2.5 n2.2.4 n2.2.3 n2.2.2 n2.2.1 n2.2 n2.2-rc2 n2.2-rc1 n2.2-dev n2.1.8 n2.1.7 n2.1.6 n2.1.5 n2.1.4 n2.1.3 n2.1.2 n2.1.1 n2.1
No related merge requests found
Showing with 16 additions and 0 deletions
+16 -0
......@@ -188,6 +188,10 @@ static int start_jack(AVFormatContext *context)
/* Create time filter */
self->timefilter = ff_timefilter_new (1.0 / self->sample_rate, self->buffer_size, 1.5);
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));
......
......@@ -49,6 +49,10 @@ TimeFilter *ff_timefilter_new(double time_base,
{
TimeFilter *self = av_mallocz(sizeof(TimeFilter));
double o = 2 * M_PI * bandwidth * period * time_base;
if (!self)
return NULL;
self->clock_period = time_base;
self->feedback2_factor = qexpneg(M_SQRT2 * o);
self->feedback3_factor = qexpneg(o * o) / period;
......@@ -121,6 +125,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 alocate memory for timefilter.\n");
exit(1);
}
for (i = 0; i < SAMPLES; i++) {
double filtered;
filtered = ff_timefilter_update(tf, samples[i], i ? (samplet[i] - samplet[i-1]) : 1);
......
......@@ -58,6 +58,8 @@ typedef struct TimeFilter TimeFilter;
* @param period expected update interval, in input units
* @param brandwidth filtering bandwidth, in Hz
*
* @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
*/
......
......@@ -455,6 +455,8 @@ static int init_convert_timestamp(AVFormatContext *ctx, int64_t ts)
av_log(ctx, AV_LOG_INFO, "Detected monotonic timestamps, converting\n");
/* microseconds instead of seconds, MHz instead of Hz */
s->timefilter = ff_timefilter_new(1, period, 1.0E-6);
if (!s->timefilter)
return AVERROR(ENOMEM);
s->ts_mode = V4L_TS_CONVERT_READY;
return 0;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment