You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	timefilter: Handle memory allocation failure
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
This commit is contained in:
		| @@ -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 | ||||
|  */ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user