#include "internal.h"
unsigned avfilter_version(void) {
+ av_assert0(LIBAVFILTER_VERSION_MICRO >= 100);
return LIBAVFILTER_VERSION_INT;
}
{
if (link->type == AVMEDIA_TYPE_VIDEO) {
av_dlog(ctx,
- "link[%p s:%dx%d fmt:%-16s %-16s->%-16s]%s",
+ "link[%p s:%dx%d fmt:%s %s->%s]%s",
link, link->w, link->h,
av_pix_fmt_descriptors[link->format].name,
link->src ? link->src->filter->name : "",
av_get_channel_layout_string(buf, sizeof(buf), -1, link->channel_layout);
av_dlog(ctx,
- "link[%p r:%d cl:%s fmt:%-16s %-16s->%-16s]%s",
+ "link[%p r:%d cl:%s fmt:%s %s->%s]%s",
link, (int)link->sample_rate, buf,
av_get_sample_fmt_name(link->format),
link->src ? link->src->filter->name : "",
picref->type = AVMEDIA_TYPE_VIDEO;
pic->format = picref->format = format;
- memcpy(pic->data, data, sizeof(pic->data));
- memcpy(pic->linesize, linesize, sizeof(pic->linesize));
+ memcpy(pic->data, data, 4*sizeof(data[0]));
+ memcpy(pic->linesize, linesize, 4*sizeof(linesize[0]));
memcpy(picref->data, pic->data, sizeof(picref->data));
memcpy(picref->linesize, pic->linesize, sizeof(picref->linesize));
AVFilterBufferRef *
avfilter_get_audio_buffer_ref_from_arrays(uint8_t *data[8], int linesize[8], int perms,
int nb_samples, enum AVSampleFormat sample_fmt,
- int64_t channel_layout, int planar)
+ uint64_t channel_layout, int planar)
{
AVFilterBuffer *samples = av_mallocz(sizeof(AVFilterBuffer));
AVFilterBufferRef *samplesref = av_mallocz(sizeof(AVFilterBufferRef));
link->cur_buf->audio->sample_rate = samplesref->audio->sample_rate;
/* Copy actual data into new samples buffer */
- for (i = 0; samplesref->data[i]; i++)
+ for (i = 0; samplesref->data[i] && i < 8; i++)
memcpy(link->cur_buf->data[i], samplesref->data[i], samplesref->linesize[0]);
avfilter_unref_buffer(samplesref);
filter_samples(link, link->cur_buf);
}
-#define MAX_REGISTERED_AVFILTERS_NB 64
+#define MAX_REGISTERED_AVFILTERS_NB 128
static AVFilter *registered_avfilters[MAX_REGISTERED_AVFILTERS_NB + 1];
int avfilter_register(AVFilter *filter)
{
- if (next_registered_avfilter_idx == MAX_REGISTERED_AVFILTERS_NB)
- return -1;
+ if (next_registered_avfilter_idx == MAX_REGISTERED_AVFILTERS_NB) {
+ av_log(NULL, AV_LOG_ERROR,
+ "Maximum number of registered filters %d reached, "
+ "impossible to register filter with name '%s'\n",
+ MAX_REGISTERED_AVFILTERS_NB, filter->name);
+ return AVERROR(ENOMEM);
+ }
registered_avfilters[next_registered_avfilter_idx++] = filter;
return 0;