summaryrefslogtreecommitdiff
path: root/libavcodec/v4l2_m2m_enc.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_m2m_enc.c
parentede233a278896209cb78a1c298b5ed44d4792a23 (diff)
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_m2m_enc.c')
-rw-r--r--libavcodec/v4l2_m2m_enc.c32
1 files changed, 12 insertions, 20 deletions
diff --git a/libavcodec/v4l2_m2m_enc.c b/libavcodec/v4l2_m2m_enc.c
index e40a120b53..9f59be6efb 100644
--- a/libavcodec/v4l2_m2m_enc.c
+++ b/libavcodec/v4l2_m2m_enc.c
@@ -91,20 +91,12 @@ static inline int v4l2_get_ext_ctrl(V4L2m2mContext *s, unsigned int id, signed i
return 0;
}
-static int match_profile(const void *a, const void *b)
-{
- if (*(unsigned int *)a == *(unsigned int *)b)
- return 0;
-
- return 1;
-}
-
static inline unsigned int v4l2_h264_profile_from_ff(int p)
{
struct h264_profile {
unsigned int ffmpeg_val;
unsigned int v4l2_val;
- } *val, profile[] = {
+ } profile[] = {
{ FF_PROFILE_H264_CONSTRAINED_BASELINE, MPEG_VIDEO(H264_PROFILE_CONSTRAINED_BASELINE) },
{ FF_PROFILE_H264_HIGH_444_PREDICTIVE, MPEG_VIDEO(H264_PROFILE_HIGH_444_PREDICTIVE) },
{ FF_PROFILE_H264_HIGH_422_INTRA, MPEG_VIDEO(H264_PROFILE_HIGH_422_INTRA) },
@@ -117,12 +109,12 @@ static inline unsigned int v4l2_h264_profile_from_ff(int p)
{ FF_PROFILE_H264_MAIN, MPEG_VIDEO(H264_PROFILE_MAIN) },
{ FF_PROFILE_H264_HIGH, MPEG_VIDEO(H264_PROFILE_HIGH) },
};
- size_t len = FF_ARRAY_ELEMS(profile);
-
- val = lfind(&p, profile, &len, sizeof(profile[0]), match_profile);
- if (val)
- return val->v4l2_val;
+ int i;
+ for (i = 0; i < FF_ARRAY_ELEMS(profile); i++) {
+ if (profile[i].ffmpeg_val == p)
+ return profile[i].v4l2_val;
+ }
return AVERROR(ENOENT);
}
@@ -131,19 +123,19 @@ static inline int v4l2_mpeg4_profile_from_ff(int p)
struct mpeg4_profile {
unsigned int ffmpeg_val;
unsigned int v4l2_val;
- } *val, profile[] = {
+ } profile[] = {
{ FF_PROFILE_MPEG4_ADVANCED_CODING, MPEG_VIDEO(MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY) },
{ FF_PROFILE_MPEG4_ADVANCED_SIMPLE, MPEG_VIDEO(MPEG4_PROFILE_ADVANCED_SIMPLE) },
{ FF_PROFILE_MPEG4_SIMPLE_SCALABLE, MPEG_VIDEO(MPEG4_PROFILE_SIMPLE_SCALABLE) },
{ FF_PROFILE_MPEG4_SIMPLE, MPEG_VIDEO(MPEG4_PROFILE_SIMPLE) },
{ FF_PROFILE_MPEG4_CORE, MPEG_VIDEO(MPEG4_PROFILE_CORE) },
};
- size_t len = FF_ARRAY_ELEMS(profile);
-
- val = lfind(&p, profile, &len, sizeof(profile[0]), match_profile);
- if (val)
- return val->v4l2_val;
+ int i;
+ for (i = 0; i < FF_ARRAY_ELEMS(profile); i++) {
+ if (profile[i].ffmpeg_val == p)
+ return profile[i].v4l2_val;
+ }
return AVERROR(ENOENT);
}