aboutsummaryrefslogtreecommitdiff
path: root/src/filter/convert_filter_plugin.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/filter/convert_filter_plugin.c')
-rw-r--r--src/filter/convert_filter_plugin.c38
1 files changed, 13 insertions, 25 deletions
diff --git a/src/filter/convert_filter_plugin.c b/src/filter/convert_filter_plugin.c
index 40be67f6..2c2c3b0d 100644
--- a/src/filter/convert_filter_plugin.c
+++ b/src/filter/convert_filter_plugin.c
@@ -97,32 +97,20 @@ convert_filter_close(struct filter *_filter)
sizeof(filter->out_audio_format));
}
-static const void *
-convert_filter_filter(struct filter *_filter, const void *src, size_t src_size,
- size_t *dest_size_r, GError **error_r)
+static AVFrame *convert_filter_filter(struct filter *_filter, AVFrame *src)
{
- struct convert_filter *filter = (struct convert_filter *)_filter;
- const void *dest;
-
- if (audio_format_equals(&filter->in_audio_format,
- &filter->out_audio_format)) {
- /* optimized special case: no-op */
- *dest_size_r = src_size;
- return src;
- }
-
- // FIXME
- return NULL;
-#if 0
- dest = pcm_convert(&filter->state, &filter->in_audio_format,
- src, src_size,
- &filter->out_audio_format, dest_size_r,
- error_r);
- if (dest == NULL)
- return NULL;
-
- return dest;
-#endif
+ struct convert_filter *filter = (struct convert_filter *)_filter;
+ AVFrame *dst;
+
+ /* optimized special case: no-op */
+ if (audio_format_equals(&filter->in_audio_format,
+ &filter->out_audio_format))
+ return src;
+
+ dst = pcm_convert(&filter->state, &filter->in_audio_format,
+ &filter->out_audio_format, src);
+ av_frame_free(&src);
+ return dst;
}
const struct filter_plugin convert_filter_plugin = {