}
}
-static s8 v4l2_pixelformat_to_mcu_codec(u32 pixelformat)
-{
- switch (pixelformat) {
- case V4L2_PIX_FMT_H264:
- default:
- return 1;
- }
-}
-
static u8 v4l2_profile_to_mcu_profile(enum v4l2_mpeg_video_h264_profile profile)
{
switch (profile) {
param->src_mode = 0x0;
param->profile = v4l2_profile_to_mcu_profile(channel->profile);
param->constraint_set_flags = BIT(1);
- param->codec = v4l2_pixelformat_to_mcu_codec(channel->codec);
+ param->codec = channel->codec;
param->level = v4l2_level_to_mcu_level(channel->level);
param->tier = 0;
param->sps_param = BIT(20) | 0x4a;
#include <linux/bitfield.h>
#include <linux/export.h>
#include <linux/errno.h>
+#include <linux/videodev2.h>
#include "allegro-mail.h"
return i * sizeof(*dst);
}
+static inline u32 settings_get_mcu_codec(struct create_channel_param *param)
+{
+ u32 pixelformat = param->codec;
+
+ switch (pixelformat) {
+ case V4L2_PIX_FMT_H264:
+ default:
+ return 1;
+ }
+}
+
static ssize_t
allegro_encode_channel_config(u32 *dst, struct create_channel_param *param)
{
unsigned int i = 0;
+ unsigned int codec = settings_get_mcu_codec(param);
dst[i++] = FIELD_PREP(GENMASK(31, 16), param->height) |
FIELD_PREP(GENMASK(15, 0), param->width);
dst[i++] = param->format;
dst[i++] = param->colorspace;
dst[i++] = param->src_mode;
- dst[i++] = FIELD_PREP(GENMASK(31, 24), param->codec) |
+ dst[i++] = FIELD_PREP(GENMASK(31, 24), codec) |
FIELD_PREP(GENMASK(23, 8), param->constraint_set_flags) |
FIELD_PREP(GENMASK(7, 0), param->profile);
dst[i++] = FIELD_PREP(GENMASK(31, 16), param->tier) |