Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3bcc9576 authored by Hans Verkuil's avatar Hans Verkuil Committed by Mauro Carvalho Chehab
Browse files

V4L/DVB (6321): Remove obsolete VIDIOC_S/G_MPEGCOMP ioctls



Remove the obsolete VIDIOC_G_MPEGCOMP and VIDIOC_S_MPEGCOMP ioctls from
the V4L2 API as per the removal schedule (October 2007).

Signed-off-by: default avatarHans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent 22c4a4e9
Loading
Loading
Loading
Loading
+0 −57
Original line number Diff line number Diff line
@@ -527,44 +527,6 @@ static void blackbird_codec_settings(struct cx8802_dev *dev)
	cx2341x_update(dev, blackbird_mbox_func, NULL, &dev->params);
}

static struct v4l2_mpeg_compression default_mpeg_params = {
	.st_type          = V4L2_MPEG_PS_2,
	.st_bitrate       = {
		.mode     = V4L2_BITRATE_CBR,
		.min      = 0,
		.target   = 0,
		.max      = 0
	},
	.ts_pid_pmt       = 16,
	.ts_pid_audio     = 260,
	.ts_pid_video     = 256,
	.ts_pid_pcr       = 259,
	.ps_size          = 0,
	.au_type          = V4L2_MPEG_AU_2_II,
	.au_bitrate       = {
		.mode     = V4L2_BITRATE_CBR,
		.min      = 224,
		.target   = 224,
		.max      = 224
	},
	.au_sample_rate    = 48000,
	.au_pesid          = 0,
	.vi_type           = V4L2_MPEG_VI_2,
	.vi_aspect_ratio   = V4L2_MPEG_ASPECT_4_3,
	.vi_bitrate        = {
		.mode      = V4L2_BITRATE_CBR,
		.min       = 4000,
		.target    = 4500,
		.max       = 6000
	},
	.vi_frame_rate     = 25,
	.vi_frames_per_gop = 12,
	.vi_bframes_count  = 2,
	.vi_pesid          = 0,
	.closed_gops       = 1,
	.pulldown          = 0
};

static int blackbird_initialize_codec(struct cx8802_dev *dev)
{
	struct cx88_core *core = dev->core;
@@ -852,23 +814,6 @@ static int vidioc_streamoff(struct file *file, void *priv, enum v4l2_buf_type i)
	return videobuf_streamoff(&fh->mpegq);
}

static int vidioc_g_mpegcomp (struct file *file, void *fh,
			      struct v4l2_mpeg_compression *f)
{
	printk(KERN_WARNING "VIDIOC_G_MPEGCOMP is obsolete. "
				"Replace with VIDIOC_G_EXT_CTRLS!");
	memcpy(f,&default_mpeg_params,sizeof(*f));
	return 0;
}

static int vidioc_s_mpegcomp (struct file *file, void *fh,
			      struct v4l2_mpeg_compression *f)
{
	printk(KERN_WARNING "VIDIOC_S_MPEGCOMP is obsolete. "
				"Replace with VIDIOC_S_EXT_CTRLS!");
	return 0;
}

static int vidioc_g_ext_ctrls (struct file *file, void *priv,
			       struct v4l2_ext_controls *f)
{
@@ -1216,8 +1161,6 @@ static struct video_device cx8802_mpeg_template =
	.vidioc_dqbuf         = vidioc_dqbuf,
	.vidioc_streamon      = vidioc_streamon,
	.vidioc_streamoff     = vidioc_streamoff,
	.vidioc_g_mpegcomp    = vidioc_g_mpegcomp,
	.vidioc_s_mpegcomp    = vidioc_s_mpegcomp,
	.vidioc_g_ext_ctrls   = vidioc_g_ext_ctrls,
	.vidioc_s_ext_ctrls   = vidioc_s_ext_ctrls,
	.vidioc_try_ext_ctrls = vidioc_try_ext_ctrls,
+0 −111
Original line number Diff line number Diff line
@@ -71,7 +71,6 @@ static const struct v4l2_format v4l2_format_table[] =

struct saa6752hs_state {
	struct i2c_client             client;
	struct v4l2_mpeg_compression  old_params;
	struct saa6752hs_mpeg_params  params;
	enum saa6752hs_videoformat    video_format;
	v4l2_std_id                   standard;
@@ -161,35 +160,6 @@ static struct saa6752hs_mpeg_params param_defaults =
	.au_l2_bitrate   = V4L2_MPEG_AUDIO_L2_BITRATE_256K,
};

static struct v4l2_mpeg_compression old_param_defaults =
{
	.st_type         = V4L2_MPEG_TS_2,
	.st_bitrate      = {
		.mode    = V4L2_BITRATE_CBR,
		.target  = 7000,
	},

	.ts_pid_pmt      = 16,
	.ts_pid_video    = 260,
	.ts_pid_audio    = 256,
	.ts_pid_pcr      = 259,

	.vi_type         = V4L2_MPEG_VI_2,
	.vi_aspect_ratio = V4L2_MPEG_ASPECT_4_3,
	.vi_bitrate      = {
		.mode    = V4L2_BITRATE_VBR,
		.target  = 4000,
		.max     = 6000,
	},

	.au_type         = V4L2_MPEG_AU_2_II,
	.au_bitrate      = {
		.mode    = V4L2_BITRATE_CBR,
		.target  = 256,
	},

};

/* ---------------------------------------------------------------------- */

static int saa6752hs_chip_command(struct i2c_client* client,
@@ -362,74 +332,6 @@ static void saa6752hs_set_subsampling(struct i2c_client* client,
}


static void saa6752hs_old_set_params(struct i2c_client* client,
				 struct v4l2_mpeg_compression* params)
{
	struct saa6752hs_state *h = i2c_get_clientdata(client);

	/* check PIDs */
	if (params->ts_pid_pmt <= MPEG_PID_MAX) {
		h->old_params.ts_pid_pmt = params->ts_pid_pmt;
		h->params.ts_pid_pmt = params->ts_pid_pmt;
	}
	if (params->ts_pid_pcr <= MPEG_PID_MAX) {
		h->old_params.ts_pid_pcr = params->ts_pid_pcr;
		h->params.ts_pid_pcr = params->ts_pid_pcr;
	}
	if (params->ts_pid_video <= MPEG_PID_MAX) {
		h->old_params.ts_pid_video = params->ts_pid_video;
		h->params.ts_pid_video = params->ts_pid_video;
	}
	if (params->ts_pid_audio <= MPEG_PID_MAX) {
		h->old_params.ts_pid_audio = params->ts_pid_audio;
		h->params.ts_pid_audio = params->ts_pid_audio;
	}

	/* check bitrate parameters */
	if ((params->vi_bitrate.mode == V4L2_BITRATE_CBR) ||
	    (params->vi_bitrate.mode == V4L2_BITRATE_VBR)) {
		h->old_params.vi_bitrate.mode = params->vi_bitrate.mode;
		h->params.vi_bitrate_mode = (params->vi_bitrate.mode == V4L2_BITRATE_VBR) ?
		       V4L2_MPEG_VIDEO_BITRATE_MODE_VBR : V4L2_MPEG_VIDEO_BITRATE_MODE_CBR;
	}
	if (params->vi_bitrate.mode != V4L2_BITRATE_NONE)
		h->old_params.st_bitrate.target = params->st_bitrate.target;
	if (params->vi_bitrate.mode != V4L2_BITRATE_NONE)
		h->old_params.vi_bitrate.target = params->vi_bitrate.target;
	if (params->vi_bitrate.mode == V4L2_BITRATE_VBR)
		h->old_params.vi_bitrate.max = params->vi_bitrate.max;
	if (params->au_bitrate.mode != V4L2_BITRATE_NONE)
		h->old_params.au_bitrate.target = params->au_bitrate.target;

	/* aspect ratio */
	if (params->vi_aspect_ratio == V4L2_MPEG_ASPECT_4_3 ||
	    params->vi_aspect_ratio == V4L2_MPEG_ASPECT_16_9) {
		h->old_params.vi_aspect_ratio = params->vi_aspect_ratio;
		if (params->vi_aspect_ratio == V4L2_MPEG_ASPECT_4_3)
			h->params.vi_aspect = V4L2_MPEG_VIDEO_ASPECT_4x3;
		else
			h->params.vi_aspect = V4L2_MPEG_VIDEO_ASPECT_16x9;
	}

	/* range checks */
	if (h->old_params.st_bitrate.target > MPEG_TOTAL_TARGET_BITRATE_MAX)
		h->old_params.st_bitrate.target = MPEG_TOTAL_TARGET_BITRATE_MAX;
	if (h->old_params.vi_bitrate.target > MPEG_VIDEO_TARGET_BITRATE_MAX)
		h->old_params.vi_bitrate.target = MPEG_VIDEO_TARGET_BITRATE_MAX;
	if (h->old_params.vi_bitrate.max > MPEG_VIDEO_MAX_BITRATE_MAX)
		h->old_params.vi_bitrate.max = MPEG_VIDEO_MAX_BITRATE_MAX;
	h->params.vi_bitrate = params->vi_bitrate.target;
	h->params.vi_bitrate_peak = params->vi_bitrate.max;
	if (h->old_params.au_bitrate.target <= 256) {
		h->old_params.au_bitrate.target = 256;
		h->params.au_l2_bitrate = V4L2_MPEG_AUDIO_L2_BITRATE_256K;
	}
	else {
		h->old_params.au_bitrate.target = 384;
		h->params.au_l2_bitrate = V4L2_MPEG_AUDIO_L2_BITRATE_384K;
	}
}

static int handle_ctrl(struct saa6752hs_mpeg_params *params,
		struct v4l2_ext_control *ctrl, unsigned int cmd)
{
@@ -697,7 +599,6 @@ static int saa6752hs_attach(struct i2c_adapter *adap, int addr, int kind)
		return -ENOMEM;
	h->client = client_template;
	h->params = param_defaults;
	h->old_params = old_param_defaults;
	h->client.adapter = adap;
	h->client.addr = addr;

@@ -734,23 +635,11 @@ saa6752hs_command(struct i2c_client *client, unsigned int cmd, void *arg)
{
	struct saa6752hs_state *h = i2c_get_clientdata(client);
	struct v4l2_ext_controls *ctrls = arg;
	struct v4l2_mpeg_compression *old_params = arg;
	struct saa6752hs_mpeg_params params;
	int err = 0;
	int i;

	switch (cmd) {
	case VIDIOC_S_MPEGCOMP:
		if (NULL == old_params) {
			/* apply settings and start encoder */
			saa6752hs_init(client);
			break;
		}
		saa6752hs_old_set_params(client, old_params);
		/* fall through */
	case VIDIOC_G_MPEGCOMP:
		*old_params = h->old_params;
		break;
	case VIDIOC_S_EXT_CTRLS:
		if (ctrls->ctrl_class != V4L2_CTRL_CLASS_MPEG)
			return -EINVAL;
+0 −11
Original line number Diff line number Diff line
@@ -284,17 +284,6 @@ static int ts_do_ioctl(struct inode *inode, struct file *file,
	case VIDIOC_S_CTRL:
		return saa7134_common_ioctl(dev, cmd, arg);

	case VIDIOC_S_MPEGCOMP:
		printk(KERN_WARNING "VIDIOC_S_MPEGCOMP is obsolete. "
				    "Replace with VIDIOC_S_EXT_CTRLS!");
		saa7134_i2c_call_clients(dev, VIDIOC_S_MPEGCOMP, arg);
		ts_init_encoder(dev);
		return 0;
	case VIDIOC_G_MPEGCOMP:
		printk(KERN_WARNING "VIDIOC_G_MPEGCOMP is obsolete. "
				    "Replace with VIDIOC_G_EXT_CTRLS!");
		saa7134_i2c_call_clients(dev, VIDIOC_G_MPEGCOMP, arg);
		return 0;
	case VIDIOC_S_EXT_CTRLS:
		/* count == 0 is abused in saa6752hs.c, so that special
		   case is handled here explicitly. */
+0 −2
Original line number Diff line number Diff line
@@ -317,8 +317,6 @@ static const char *v4l2_ioctls[] = {
	[_IOC_NR(VIDIOC_ENUM_FMT)]         = "VIDIOC_ENUM_FMT",
	[_IOC_NR(VIDIOC_G_FMT)]            = "VIDIOC_G_FMT",
	[_IOC_NR(VIDIOC_S_FMT)]            = "VIDIOC_S_FMT",
	[_IOC_NR(VIDIOC_G_MPEGCOMP)]       = "VIDIOC_G_MPEGCOMP",
	[_IOC_NR(VIDIOC_S_MPEGCOMP)]       = "VIDIOC_S_MPEGCOMP",
	[_IOC_NR(VIDIOC_REQBUFS)]          = "VIDIOC_REQBUFS",
	[_IOC_NR(VIDIOC_QUERYBUF)]         = "VIDIOC_QUERYBUF",
	[_IOC_NR(VIDIOC_G_FBUF)]           = "VIDIOC_G_FBUF",
+0 −42
Original line number Diff line number Diff line
@@ -1313,48 +1313,6 @@ static int __video_do_ioctl(struct inode *inode, struct file *file,
		ret=vfd->vidioc_cropcap(file, fh, p);
		break;
	}
	case VIDIOC_G_MPEGCOMP:
	{
		struct v4l2_mpeg_compression *p=arg;

		/*FIXME: Several fields not shown */
		if (!vfd->vidioc_g_mpegcomp)
			break;
		ret=vfd->vidioc_g_mpegcomp(file, fh, p);
		if (!ret)
			dbgarg (cmd, "ts_pid_pmt=%d, ts_pid_audio=%d,"
					" ts_pid_video=%d, ts_pid_pcr=%d, "
					"ps_size=%d, au_sample_rate=%d, "
					"au_pesid=%c, vi_frame_rate=%d, "
					"vi_frames_per_gop=%d, "
					"vi_bframes_count=%d, vi_pesid=%c\n",
					p->ts_pid_pmt,p->ts_pid_audio,
					p->ts_pid_video,p->ts_pid_pcr,
					p->ps_size, p->au_sample_rate,
					p->au_pesid, p->vi_frame_rate,
					p->vi_frames_per_gop,
					p->vi_bframes_count, p->vi_pesid);
		break;
	}
	case VIDIOC_S_MPEGCOMP:
	{
		struct v4l2_mpeg_compression *p=arg;
		/*FIXME: Several fields not shown */
		if (!vfd->vidioc_s_mpegcomp)
			break;
		dbgarg (cmd, "ts_pid_pmt=%d, ts_pid_audio=%d, "
				"ts_pid_video=%d, ts_pid_pcr=%d, ps_size=%d, "
				"au_sample_rate=%d, au_pesid=%c, "
				"vi_frame_rate=%d, vi_frames_per_gop=%d, "
				"vi_bframes_count=%d, vi_pesid=%c\n",
				p->ts_pid_pmt,p->ts_pid_audio, p->ts_pid_video,
				p->ts_pid_pcr, p->ps_size, p->au_sample_rate,
				p->au_pesid, p->vi_frame_rate,
				p->vi_frames_per_gop, p->vi_bframes_count,
				p->vi_pesid);
		ret=vfd->vidioc_s_mpegcomp(file, fh, p);
		break;
	}
	case VIDIOC_G_JPEGCOMP:
	{
		struct v4l2_jpegcompression *p=arg;
Loading