[FFmpeg-devel] [PATCH 4/8] avdevice/lavfi: remove access of AV_PIX_FMT_NB
quinkblack at foxmail.com
quinkblack at foxmail.com
Mon Dec 30 15:54:15 EET 2019
From: Zhao Zhili <zhilizhao at tencent.com>
---
libavdevice/lavfi.c | 24 ++++++++++++++----------
1 file changed, 14 insertions(+), 10 deletions(-)
diff --git a/libavdevice/lavfi.c b/libavdevice/lavfi.c
index c949ff7e12..fc2336d8fe 100644
--- a/libavdevice/lavfi.c
+++ b/libavdevice/lavfi.c
@@ -59,24 +59,28 @@ typedef struct {
AVPacket subcc_packet;
} LavfiContext;
-static int *create_all_formats(int n)
+static int *create_all_formats()
{
- int i, j, *fmts, count = 0;
+ int i, *fmts, count = 0;
+ const AVPixFmtDescriptor *desc;
- for (i = 0; i < n; i++) {
- const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(i);
+ desc = NULL;
+ while ((desc = av_pix_fmt_desc_next(desc))) {
if (!(desc->flags & AV_PIX_FMT_FLAG_HWACCEL))
count++;
}
if (!(fmts = av_malloc((count+1) * sizeof(int))))
return NULL;
- for (j = 0, i = 0; i < n; i++) {
- const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(i);
- if (!(desc->flags & AV_PIX_FMT_FLAG_HWACCEL))
- fmts[j++] = i;
+
+ desc = NULL;
+ i = 0;
+ while ((desc = av_pix_fmt_desc_next(desc))) {
+ if (!(desc->flags & AV_PIX_FMT_FLAG_HWACCEL)) {
+ fmts[i++] = av_pix_fmt_desc_get_id(desc);
+ }
}
- fmts[j] = -1;
+ fmts[i] = AV_PIX_FMT_NONE;
return fmts;
}
@@ -121,7 +125,7 @@ av_cold static int lavfi_read_header(AVFormatContext *avctx)
LavfiContext *lavfi = avctx->priv_data;
AVFilterInOut *input_links = NULL, *output_links = NULL, *inout;
const AVFilter *buffersink, *abuffersink;
- int *pix_fmts = create_all_formats(AV_PIX_FMT_NB);
+ int *pix_fmts = create_all_formats();
enum AVMediaType type;
int ret = 0, i, n;
--
2.22.0
More information about the ffmpeg-devel
mailing list