blob: 2381ebd9b708a4ada594762e14b3692e34375647 [file] [log] [blame]
diff --git a/utils/common/v4l2-tpg-colors.c b/utils/common/v4l2-tpg-colors.c
index a4341205..b4e257c2 100644
--- a/utils/common/v4l2-tpg-colors.c
+++ b/utils/common/v4l2-tpg-colors.c
@@ -24,7 +24,7 @@
*/
#include <linux/videodev2.h>
-#include <media/tpg/v4l2-tpg.h>
+#include "v4l2-tpg-colors.h"
/* sRGB colors with range [0-255] */
const struct tpg_rbg_color8 tpg_colors[TPG_COLOR_MAX] = {
diff --git a/utils/common/v4l2-tpg-core.c b/utils/common/v4l2-tpg-core.c
index 630a75e0..44972222 100644
--- a/utils/common/v4l2-tpg-core.c
+++ b/utils/common/v4l2-tpg-core.c
@@ -8,8 +8,8 @@
* Copyright 2014 Cisco Systems, Inc. and/or its affiliates. All rights reserved.
*/
-#include <linux/module.h>
-#include <media/tpg/v4l2-tpg.h>
+#include "compiler.h"
+#include "v4l2-tpg-colors.h"
/* Must remain in sync with enum tpg_pattern */
const char * const tpg_pattern_strings[] = {
@@ -37,7 +36,6 @@ const char * const tpg_pattern_strings[] = {
"Noise",
NULL
};
-EXPORT_SYMBOL_GPL(tpg_pattern_strings);
/* Must remain in sync with enum tpg_aspect */
const char * const tpg_aspect_strings[] = {
@@ -48,7 +46,6 @@ const char * const tpg_aspect_strings[] = {
"16x9 Anamorphic",
NULL
};
-EXPORT_SYMBOL_GPL(tpg_aspect_strings);
/*
* Sine table: sin[0] = 127 * sin(-180 degrees)
@@ -84,7 +81,6 @@ void tpg_set_font(const u8 *f)
{
font8x16 = f;
}
-EXPORT_SYMBOL_GPL(tpg_set_font);
void tpg_init(struct tpg_data *tpg, unsigned w, unsigned h)
{
@@ -107,7 +103,6 @@ void tpg_init(struct tpg_data *tpg, unsigned w, unsigned h)
tpg->perc_fill = 100;
tpg->hsv_enc = V4L2_HSV_ENC_180;
}
-EXPORT_SYMBOL_GPL(tpg_init);
int tpg_alloc(struct tpg_data *tpg, unsigned max_w)
{
@@ -149,7 +144,6 @@ int tpg_alloc(struct tpg_data *tpg, unsigned max_w)
}
return 0;
}
-EXPORT_SYMBOL_GPL(tpg_alloc);
void tpg_free(struct tpg_data *tpg)
{
@@ -174,7 +168,6 @@ void tpg_free(struct tpg_data *tpg)
tpg->random_line[plane] = NULL;
}
}
-EXPORT_SYMBOL_GPL(tpg_free);
bool tpg_s_fourcc(struct tpg_data *tpg, u32 fourcc)
{
@@ -466,7 +459,6 @@ bool tpg_s_fourcc(struct tpg_data *tpg, u32 fourcc)
}
return true;
}
-EXPORT_SYMBOL_GPL(tpg_s_fourcc);
void tpg_s_crop_compose(struct tpg_data *tpg, const struct v4l2_rect *crop,
const struct v4l2_rect *compose)
@@ -482,7 +474,6 @@ void tpg_s_crop_compose(struct tpg_data *tpg, const struct v4l2_rect *crop,
tpg->scaled_width = 2;
tpg->recalc_lines = true;
}
-EXPORT_SYMBOL_GPL(tpg_s_crop_compose);
void tpg_reset_source(struct tpg_data *tpg, unsigned width, unsigned height,
u32 field)
@@ -507,7 +498,6 @@ void tpg_reset_source(struct tpg_data *tpg, unsigned width, unsigned height,
(2 * tpg->hdownsampling[p]);
tpg->recalc_square_border = true;
}
-EXPORT_SYMBOL_GPL(tpg_reset_source);
static enum tpg_color tpg_get_textbg_color(struct tpg_data *tpg)
{
@@ -1528,7 +1518,6 @@ unsigned tpg_g_interleaved_plane(const struct tpg_data *tpg, unsigned buf_line)
return 0;
}
}
-EXPORT_SYMBOL_GPL(tpg_g_interleaved_plane);
/* Return how many pattern lines are used by the current pattern. */
static unsigned tpg_get_pat_lines(const struct tpg_data *tpg)
@@ -2006,7 +1995,6 @@ void tpg_gen_text(const struct tpg_data *tpg, u8 *basep[TPG_MAX_PLANES][2],
}
}
}
-EXPORT_SYMBOL_GPL(tpg_gen_text);
const char *tpg_g_color_order(const struct tpg_data *tpg)
{
@@ -2030,7 +2018,6 @@ const char *tpg_g_color_order(const struct tpg_data *tpg)
return NULL;
}
}
-EXPORT_SYMBOL_GPL(tpg_g_color_order);
void tpg_update_mv_step(struct tpg_data *tpg)
{
@@ -2079,7 +2066,6 @@ void tpg_update_mv_step(struct tpg_data *tpg)
if (factor < 0)
tpg->mv_vert_step = tpg->src_height - tpg->mv_vert_step;
}
-EXPORT_SYMBOL_GPL(tpg_update_mv_step);
/* Map the line number relative to the crop rectangle to a frame line number */
static unsigned tpg_calc_frameline(const struct tpg_data *tpg, unsigned src_y,
@@ -2171,7 +2157,6 @@ void tpg_calc_text_basep(struct tpg_data *tpg,
if (p == 0 && tpg->interleaved)
tpg_calc_text_basep(tpg, basep, 1, vbuf);
}
-EXPORT_SYMBOL_GPL(tpg_calc_text_basep);
static int tpg_pattern_avg(const struct tpg_data *tpg,
unsigned pat1, unsigned pat2)
@@ -2223,7 +2208,6 @@ void tpg_log_status(struct tpg_data *tpg)
pr_info("tpg quantization: %d/%d\n", tpg->quantization, tpg->real_quantization);
pr_info("tpg RGB range: %d/%d\n", tpg->rgb_range, tpg->real_rgb_range);
}
-EXPORT_SYMBOL_GPL(tpg_log_status);
/*
* This struct contains common parameters used by both the drawing of the
@@ -2629,7 +2613,6 @@ void tpg_fill_plane_buffer(struct tpg_data *tpg, v4l2_std_id std,
vbuf + buf_line * params.stride);
}
}
-EXPORT_SYMBOL_GPL(tpg_fill_plane_buffer);
void tpg_fillbuffer(struct tpg_data *tpg, v4l2_std_id std, unsigned p, u8 *vbuf)
{
@@ -2646,8 +2629,3 @@ void tpg_fillbuffer(struct tpg_data *tpg, v4l2_std_id std, unsigned p, u8 *vbuf)
offset += tpg_calc_plane_size(tpg, i);
}
}
-EXPORT_SYMBOL_GPL(tpg_fillbuffer);
-
-MODULE_DESCRIPTION("V4L2 Test Pattern Generator");
-MODULE_AUTHOR("Hans Verkuil");
-MODULE_LICENSE("GPL");
diff --git a/utils/common/v4l2-tpg.h b/utils/common/v4l2-tpg.h
index 0b0ddb87..91da74ec 100644
--- a/utils/common/v4l2-tpg.h
+++ b/utils/common/v4l2-tpg.h
@@ -8,13 +8,59 @@
#ifndef _V4L2_TPG_H_
#define _V4L2_TPG_H_
-#include <linux/types.h>
-#include <linux/errno.h>
-#include <linux/random.h>
-#include <linux/slab.h>
-#include <linux/vmalloc.h>
#include <linux/videodev2.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+
+typedef __u32 u32;
+typedef __u16 u16;
+typedef __s16 s16;
+typedef __u8 u8;
+typedef __s8 s8;
+
+#ifndef __packed
+#define __packed __attribute__((packed))
+#endif
+#define pr_info printf
+#define noinline
+
+#define tpg_min(a,b) ((a) < (b) ? (a) : (b))
+#define tpg_max(a,b) ((a) > (b) ? (a) : (b))
+#define min3(x, y, z) tpg_min((typeof(x))tpg_min(x, y), z)
+#define max3(x, y, z) tpg_max((typeof(x))tpg_max(x, y), z)
+#define array_size(a, b) ((a) * (b))
+#define array3_size(a, b, c) ((a) * (b) * (c))
+
+static inline void vfree(void *p)
+{
+ free(p);
+}
+
+static inline void *vzalloc(unsigned long size)
+{
+ return calloc(1, size);
+}
+
+#define clamp(val, min, max) ({ \
+ typeof(val) __val = (val); \
+ typeof(min) __min = (min); \
+ typeof(max) __max = (max); \
+ (void) (&__val == &__min); \
+ (void) (&__val == &__max); \
+ __val = __val < __min ? __min: __val; \
+ __val > __max ? __max: __val; })
+
+#define clamp_t(type, val, min, max) clamp((type)val, (type)min, (type)max)
+
+static inline u32 prandom_u32_max(u32 ep_ro)
+{
+ return rand() % ep_ro;
+}
+
struct tpg_rbg_color8 {
unsigned char r, g, b;
};