summaryrefslogtreecommitdiff
path: root/libavcodec/v4l2_fmt.c
diff options
context:
space:
mode:
authorMark Thompson <sw@jkqxz.net>2017-10-03 20:57:14 +0100
committerMark Thompson <sw@jkqxz.net>2017-10-04 23:14:37 +0100
commita0d076f3ef95e971014c4333c71b384976484889 (patch)
treefd17c818422caf7917e855ba7170cb393351557e /libavcodec/v4l2_fmt.c
parentede233a278896209cb78a1c298b5ed44d4792a23 (diff)
downloadffmpeg-a0d076f3ef95e971014c4333c71b384976484889.tar.gz
lavc/v4l2: Remove use of lfind()
This is not present in older bionic and therefore fails to build there, and the code is much simpler without it anyway.
Diffstat (limited to 'libavcodec/v4l2_fmt.c')
-rw-r--r--libavcodec/v4l2_fmt.c73
1 files changed, 16 insertions, 57 deletions
diff --git a/libavcodec/v4l2_fmt.c b/libavcodec/v4l2_fmt.c
index a7ce308696..6df47e3f5a 100644
--- a/libavcodec/v4l2_fmt.c
+++ b/libavcodec/v4l2_fmt.c
@@ -109,74 +109,33 @@ static const struct fmt_conversion {
#endif
};
-static int match_codec(const void *a, const void *b)
-{
- if (*(enum AVCodecID *)a == ((struct fmt_conversion *)b)->avcodec)
- return 0;
-
- return 1;
-}
-
uint32_t ff_v4l2_format_avcodec_to_v4l2(enum AVCodecID avcodec)
{
- size_t len = FF_ARRAY_ELEMS(fmt_map);
- struct fmt_conversion *item;
-
- item = lfind(&avcodec, fmt_map, &len, sizeof(fmt_map[0]), match_codec);
- if (item)
- return item->v4l2_fmt;
-
+ int i;
+ for (i = 0; i < FF_ARRAY_ELEMS(fmt_map); i++) {
+ if (fmt_map[i].avcodec == avcodec)
+ return fmt_map[i].v4l2_fmt;
+ }
return 0;
}
-static int match_fmt(const void *a, const void *b)
-{
- if ( *(enum AVPixelFormat *)a == ((struct fmt_conversion *)b)->avfmt)
- return 0;
-
- return 1;
-}
-
uint32_t ff_v4l2_format_avfmt_to_v4l2(enum AVPixelFormat avfmt)
{
- size_t len = FF_ARRAY_ELEMS(fmt_map);
- struct fmt_conversion *item;
-
- item = lfind(&avfmt, fmt_map, &len, sizeof(fmt_map[0]), match_fmt);
- if (item)
- return item->v4l2_fmt;
-
+ int i;
+ for (i = 0; i < FF_ARRAY_ELEMS(fmt_map); i++) {
+ if (fmt_map[i].avfmt == avfmt)
+ return fmt_map[i].v4l2_fmt;
+ }
return 0;
}
-struct v4l2fmt_avcodec_pair {
- enum AVCodecID avcodec;
- uint32_t v4l2_fmt;
-};
-
-static int match_codecfmt(const void *a, const void *b)
-{
- struct v4l2fmt_avcodec_pair *key = (struct v4l2fmt_avcodec_pair *) a;
- struct fmt_conversion *item = (struct fmt_conversion *) b;
-
- if (key->avcodec == item->avcodec && key->v4l2_fmt == item->v4l2_fmt)
- return 0;
-
- return 1;
-}
-
enum AVPixelFormat ff_v4l2_format_v4l2_to_avfmt(uint32_t v4l2_fmt, enum AVCodecID avcodec)
{
- struct v4l2fmt_avcodec_pair const key = {
- .v4l2_fmt = v4l2_fmt,
- .avcodec = avcodec,
- };
- size_t len = FF_ARRAY_ELEMS(fmt_map);
- struct fmt_conversion *item;
-
- item = lfind(&key, fmt_map, &len, sizeof(fmt_map[0]), match_codecfmt);
- if (item)
- return item->avfmt;
-
+ int i;
+ for (i = 0; i < FF_ARRAY_ELEMS(fmt_map); i++) {
+ if (fmt_map[i].avcodec == avcodec &&
+ fmt_map[i].v4l2_fmt == v4l2_fmt)
+ return fmt_map[i].avfmt;
+ }
return AV_PIX_FMT_NONE;
}