|
@@ -228,6 +228,7 @@ static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id id)
|
|
|
return -EINVAL;
|
|
|
|
|
|
port->encodernorm = saa7164_tvnorms[i];
|
|
|
+ port->std = id;
|
|
|
|
|
|
/* Update the audio decoder while is not running in
|
|
|
* auto detect mode.
|
|
@@ -239,6 +240,15 @@ static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id id)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+static int vidioc_g_std(struct file *file, void *priv, v4l2_std_id *id)
|
|
|
+{
|
|
|
+ struct saa7164_encoder_fh *fh = file->private_data;
|
|
|
+ struct saa7164_port *port = fh->port;
|
|
|
+
|
|
|
+ *id = port->std;
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
static int vidioc_enum_input(struct file *file, void *priv,
|
|
|
struct v4l2_input *i)
|
|
|
{
|
|
@@ -1290,6 +1300,7 @@ static const struct v4l2_file_operations mpeg_fops = {
|
|
|
|
|
|
static const struct v4l2_ioctl_ops mpeg_ioctl_ops = {
|
|
|
.vidioc_s_std = vidioc_s_std,
|
|
|
+ .vidioc_g_std = vidioc_g_std,
|
|
|
.vidioc_enum_input = vidioc_enum_input,
|
|
|
.vidioc_g_input = vidioc_g_input,
|
|
|
.vidioc_s_input = vidioc_s_input,
|
|
@@ -1316,7 +1327,6 @@ static struct video_device saa7164_mpeg_template = {
|
|
|
.ioctl_ops = &mpeg_ioctl_ops,
|
|
|
.minor = -1,
|
|
|
.tvnorms = SAA7164_NORMS,
|
|
|
- .current_norm = V4L2_STD_NTSC_M,
|
|
|
};
|
|
|
|
|
|
static struct video_device *saa7164_encoder_alloc(
|
|
@@ -1383,6 +1393,7 @@ int saa7164_encoder_register(struct saa7164_port *port)
|
|
|
port->encoder_params.ctl_aspect = V4L2_MPEG_VIDEO_ASPECT_4x3;
|
|
|
port->encoder_params.refdist = 1;
|
|
|
port->encoder_params.gop_size = SAA7164_ENCODER_DEFAULT_GOP_SIZE;
|
|
|
+ port->std = V4L2_STD_NTSC_M;
|
|
|
|
|
|
if (port->encodernorm.id & V4L2_STD_525_60)
|
|
|
port->height = 480;
|