[FFmpeg-devel] [PATCH 3/3] avutil/frame: use staticpool
Muhammad Faiz
mfcc64 at gmail.com
Sat Jan 20 06:29:15 EET 2018
Use default size 256.
Benchmark:
time ./ffmpeg -f s16le -ac 5 -ar 48000 -t 10000 -i /dev/zero \
-af "aformat=s16p, asetnsamples=256" -f null -
old: 22.079s
new: 21.180s
Signed-off-by: Muhammad Faiz <mfcc64 at gmail.com>
---
libavutil/frame.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/libavutil/frame.c b/libavutil/frame.c
index 662a7e5ab5..dd13d2b67b 100644
--- a/libavutil/frame.c
+++ b/libavutil/frame.c
@@ -25,8 +25,11 @@
#include "imgutils.h"
#include "mem.h"
#include "samplefmt.h"
+#include "staticpool.h"
+FF_STATICPOOL_DECLARE(AVFrame, 256)
+
static AVFrameSideData *frame_new_side_data(AVFrame *frame,
enum AVFrameSideDataType type,
AVBufferRef *buf);
@@ -149,7 +152,7 @@ static void wipe_side_data(AVFrame *frame)
AVFrame *av_frame_alloc(void)
{
- AVFrame *frame = av_mallocz(sizeof(*frame));
+ AVFrame *frame = FF_STATICPOOL_MALLOCZ(AVFrame);
if (!frame)
return NULL;
@@ -166,7 +169,7 @@ void av_frame_free(AVFrame **frame)
return;
av_frame_unref(*frame);
- av_freep(frame);
+ FF_STATICPOOL_FREEP(AVFrame, frame);
}
static int get_video_buffer(AVFrame *frame, int align)
--
2.13.2
More information about the ffmpeg-devel
mailing list