comparison resample.c @ 9834:ce317c75222d libavcodec

give s->resample_context to avoid segfault, avclass was moved
author bcoudurier
date Thu, 11 Jun 2009 08:14:50 +0000
parents fff66291d84d
children ff9ae6249d18
comparison
equal deleted inserted replaced
9833:2023caf1ccd5 9834:ce317c75222d
255 if (!s->buffer_size[0] || s->buffer_size[0] < input_size) { 255 if (!s->buffer_size[0] || s->buffer_size[0] < input_size) {
256 av_free(s->buffer[0]); 256 av_free(s->buffer[0]);
257 s->buffer_size[0] = input_size; 257 s->buffer_size[0] = input_size;
258 s->buffer[0] = av_malloc(s->buffer_size[0]); 258 s->buffer[0] = av_malloc(s->buffer_size[0]);
259 if (!s->buffer[0]) { 259 if (!s->buffer[0]) {
260 av_log(s, AV_LOG_ERROR, "Could not allocate buffer\n"); 260 av_log(s->resample_context, AV_LOG_ERROR, "Could not allocate buffer\n");
261 return 0; 261 return 0;
262 } 262 }
263 } 263 }
264 264
265 obuf[0] = s->buffer[0]; 265 obuf[0] = s->buffer[0];
266 266
267 if (av_audio_convert(s->convert_ctx[0], obuf, ostride, 267 if (av_audio_convert(s->convert_ctx[0], obuf, ostride,
268 ibuf, istride, nb_samples*s->input_channels) < 0) { 268 ibuf, istride, nb_samples*s->input_channels) < 0) {
269 av_log(s, AV_LOG_ERROR, "Audio sample format conversion failed\n"); 269 av_log(s->resample_context, AV_LOG_ERROR, "Audio sample format conversion failed\n");
270 return 0; 270 return 0;
271 } 271 }
272 272
273 input = s->buffer[0]; 273 input = s->buffer[0];
274 } 274 }
281 if (!s->buffer_size[1] || s->buffer_size[1] < lenout) { 281 if (!s->buffer_size[1] || s->buffer_size[1] < lenout) {
282 av_free(s->buffer[1]); 282 av_free(s->buffer[1]);
283 s->buffer_size[1] = lenout; 283 s->buffer_size[1] = lenout;
284 s->buffer[1] = av_malloc(s->buffer_size[1]); 284 s->buffer[1] = av_malloc(s->buffer_size[1]);
285 if (!s->buffer[1]) { 285 if (!s->buffer[1]) {
286 av_log(s, AV_LOG_ERROR, "Could not allocate buffer\n"); 286 av_log(s->resample_context, AV_LOG_ERROR, "Could not allocate buffer\n");
287 return 0; 287 return 0;
288 } 288 }
289 } 289 }
290 290
291 output = s->buffer[1]; 291 output = s->buffer[1];
346 const void *ibuf[1] = { output }; 346 const void *ibuf[1] = { output };
347 void *obuf[1] = { output_bak }; 347 void *obuf[1] = { output_bak };
348 348
349 if (av_audio_convert(s->convert_ctx[1], obuf, ostride, 349 if (av_audio_convert(s->convert_ctx[1], obuf, ostride,
350 ibuf, istride, nb_samples1*s->output_channels) < 0) { 350 ibuf, istride, nb_samples1*s->output_channels) < 0) {
351 av_log(s, AV_LOG_ERROR, "Audio sample format convertion failed\n"); 351 av_log(s->resample_context, AV_LOG_ERROR, "Audio sample format convertion failed\n");
352 return 0; 352 return 0;
353 } 353 }
354 } 354 }
355 355
356 for(i=0; i<s->filter_channels; i++) 356 for(i=0; i<s->filter_channels; i++)