diff options
author | Steven Toth <stoth@kernellabs.com> | 2010-07-31 14:03:31 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-10-21 05:54:48 -0400 |
commit | f91d095c92e8fdcb6bd8cb35e8fa9c87d9c10768 (patch) | |
tree | d3dbe13ed4e35ca4bb905a70c87e7a7bf62b932e /drivers/media/video/saa7164 | |
parent | 968b11b20143036098a7013817a15615a54383d3 (diff) |
[media] saa7164: allow encoder output format to be user configurable
Allow PS and TS.
Signed-off-by: Steven Toth <stoth@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/saa7164')
-rw-r--r-- | drivers/media/video/saa7164/saa7164-api.c | 5 | ||||
-rw-r--r-- | drivers/media/video/saa7164/saa7164-encoder.c | 9 |
2 files changed, 10 insertions, 4 deletions
diff --git a/drivers/media/video/saa7164/saa7164-api.c b/drivers/media/video/saa7164/saa7164-api.c index 54568cfe933d..5f72bb854e60 100644 --- a/drivers/media/video/saa7164/saa7164-api.c +++ b/drivers/media/video/saa7164/saa7164-api.c | |||
@@ -53,6 +53,11 @@ int saa7164_api_set_encoder(struct saa7164_port *port) | |||
53 | dprintk(DBGLVL_ENC, "%s() unitid=0x%x\n", __func__, | 53 | dprintk(DBGLVL_ENC, "%s() unitid=0x%x\n", __func__, |
54 | port->hwcfg.sourceid); | 54 | port->hwcfg.sourceid); |
55 | 55 | ||
56 | if (port->encoder_params.stream_type == V4L2_MPEG_STREAM_TYPE_MPEG2_PS) | ||
57 | port->encoder_profile = EU_PROFILE_PS_DVD; | ||
58 | else | ||
59 | port->encoder_profile = EU_PROFILE_TS_HQ; | ||
60 | |||
56 | ret = saa7164_cmd_send(port->dev, port->hwcfg.sourceid, SET_CUR, | 61 | ret = saa7164_cmd_send(port->dev, port->hwcfg.sourceid, SET_CUR, |
57 | EU_PROFILE_CONTROL, sizeof(u8), &port->encoder_profile); | 62 | EU_PROFILE_CONTROL, sizeof(u8), &port->encoder_profile); |
58 | if (ret != SAA_OK) | 63 | if (ret != SAA_OK) |
diff --git a/drivers/media/video/saa7164/saa7164-encoder.c b/drivers/media/video/saa7164/saa7164-encoder.c index c1265b821b2b..c357e2db1ac3 100644 --- a/drivers/media/video/saa7164/saa7164-encoder.c +++ b/drivers/media/video/saa7164/saa7164-encoder.c | |||
@@ -43,6 +43,7 @@ static const u32 saa7164_v4l2_ctrls[] = { | |||
43 | V4L2_CID_AUDIO_VOLUME, | 43 | V4L2_CID_AUDIO_VOLUME, |
44 | V4L2_CID_SHARPNESS, | 44 | V4L2_CID_SHARPNESS, |
45 | V4L2_CID_MPEG_VIDEO_ASPECT, | 45 | V4L2_CID_MPEG_VIDEO_ASPECT, |
46 | V4L2_CID_MPEG_VIDEO_GOP_SIZE, | ||
46 | V4L2_CID_MPEG_STREAM_TYPE, | 47 | V4L2_CID_MPEG_STREAM_TYPE, |
47 | V4L2_CID_MPEG_AUDIO_MUTE, | 48 | V4L2_CID_MPEG_AUDIO_MUTE, |
48 | V4L2_CID_MPEG_VIDEO_BITRATE_MODE, | 49 | V4L2_CID_MPEG_VIDEO_BITRATE_MODE, |
@@ -432,7 +433,8 @@ static int saa7164_try_ctrl(struct v4l2_ext_control *ctrl, int ac3) | |||
432 | ret = 0; | 433 | ret = 0; |
433 | break; | 434 | break; |
434 | case V4L2_CID_MPEG_STREAM_TYPE: | 435 | case V4L2_CID_MPEG_STREAM_TYPE: |
435 | if (ctrl->value == V4L2_MPEG_STREAM_TYPE_MPEG2_PS) | 436 | if ((ctrl->value == V4L2_MPEG_STREAM_TYPE_MPEG2_PS) || |
437 | (ctrl->value == V4L2_MPEG_STREAM_TYPE_MPEG2_TS)) | ||
436 | ret = 0; | 438 | ret = 0; |
437 | break; | 439 | break; |
438 | case V4L2_CID_MPEG_AUDIO_MUTE: | 440 | case V4L2_CID_MPEG_AUDIO_MUTE: |
@@ -694,8 +696,8 @@ static int fill_queryctrl(struct saa7164_encoder_params *params, | |||
694 | case V4L2_CID_MPEG_STREAM_TYPE: | 696 | case V4L2_CID_MPEG_STREAM_TYPE: |
695 | return v4l2_ctrl_query_fill(c, | 697 | return v4l2_ctrl_query_fill(c, |
696 | V4L2_MPEG_STREAM_TYPE_MPEG2_PS, | 698 | V4L2_MPEG_STREAM_TYPE_MPEG2_PS, |
697 | V4L2_MPEG_STREAM_TYPE_MPEG2_PS, | 699 | V4L2_MPEG_STREAM_TYPE_MPEG2_TS, |
698 | 0, V4L2_MPEG_STREAM_TYPE_MPEG2_PS); | 700 | 1, V4L2_MPEG_STREAM_TYPE_MPEG2_PS); |
699 | case V4L2_CID_MPEG_VIDEO_ASPECT: | 701 | case V4L2_CID_MPEG_VIDEO_ASPECT: |
700 | return v4l2_ctrl_query_fill(c, | 702 | return v4l2_ctrl_query_fill(c, |
701 | V4L2_MPEG_VIDEO_ASPECT_1x1, | 703 | V4L2_MPEG_VIDEO_ASPECT_1x1, |
@@ -1324,7 +1326,6 @@ int saa7164_encoder_register(struct saa7164_port *port) | |||
1324 | port->encodernorm = saa7164_tvnorms[0]; | 1326 | port->encodernorm = saa7164_tvnorms[0]; |
1325 | port->width = 720; | 1327 | port->width = 720; |
1326 | port->mux_input = 1; /* Composite */ | 1328 | port->mux_input = 1; /* Composite */ |
1327 | port->encoder_profile = EU_PROFILE_PS_DVD; | ||
1328 | port->video_format = EU_VIDEO_FORMAT_MPEG_2; | 1329 | port->video_format = EU_VIDEO_FORMAT_MPEG_2; |
1329 | port->audio_format = 0; | 1330 | port->audio_format = 0; |
1330 | port->video_resolution = 0; | 1331 | port->video_resolution = 0; |