mirror of
https://github.com/torvalds/linux.git
synced 2024-12-03 17:41:22 +00:00
V4L/DVB: ivtv: Avoid accidental video standard change
For yuv video output, pass fake values to avoid firmware trying to change video standard. Signed-off-by: Ian Armstrong <ian@iarmst.demon.co.uk> Signed-off-by: Andy Walls <awalls@md.metrocast.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
5f39b9f660
commit
bd62307b20
@ -618,12 +618,17 @@ static int ivtv_setup_v4l2_decode_stream(struct ivtv_stream *s)
|
|||||||
struct ivtv *itv = s->itv;
|
struct ivtv *itv = s->itv;
|
||||||
struct cx2341x_mpeg_params *p = &itv->params;
|
struct cx2341x_mpeg_params *p = &itv->params;
|
||||||
int datatype;
|
int datatype;
|
||||||
|
u16 width;
|
||||||
|
u16 height;
|
||||||
|
|
||||||
if (s->vdev == NULL)
|
if (s->vdev == NULL)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
IVTV_DEBUG_INFO("Setting some initial decoder settings\n");
|
IVTV_DEBUG_INFO("Setting some initial decoder settings\n");
|
||||||
|
|
||||||
|
width = p->width;
|
||||||
|
height = p->height;
|
||||||
|
|
||||||
/* set audio mode to left/stereo for dual/stereo mode. */
|
/* set audio mode to left/stereo for dual/stereo mode. */
|
||||||
ivtv_vapi(itv, CX2341X_DEC_SET_AUDIO_MODE, 2, itv->audio_bilingual_mode, itv->audio_stereo_mode);
|
ivtv_vapi(itv, CX2341X_DEC_SET_AUDIO_MODE, 2, itv->audio_bilingual_mode, itv->audio_stereo_mode);
|
||||||
|
|
||||||
@ -646,7 +651,14 @@ static int ivtv_setup_v4l2_decode_stream(struct ivtv_stream *s)
|
|||||||
2 = yuv_from_host */
|
2 = yuv_from_host */
|
||||||
switch (s->type) {
|
switch (s->type) {
|
||||||
case IVTV_DEC_STREAM_TYPE_YUV:
|
case IVTV_DEC_STREAM_TYPE_YUV:
|
||||||
datatype = itv->output_mode == OUT_PASSTHROUGH ? 1 : 2;
|
if (itv->output_mode == OUT_PASSTHROUGH) {
|
||||||
|
datatype = 1;
|
||||||
|
} else {
|
||||||
|
/* Fake size to avoid switching video standard */
|
||||||
|
datatype = 2;
|
||||||
|
width = 720;
|
||||||
|
height = itv->is_out_50hz ? 576 : 480;
|
||||||
|
}
|
||||||
IVTV_DEBUG_INFO("Setup DEC YUV Stream data[0] = %d\n", datatype);
|
IVTV_DEBUG_INFO("Setup DEC YUV Stream data[0] = %d\n", datatype);
|
||||||
break;
|
break;
|
||||||
case IVTV_DEC_STREAM_TYPE_MPG:
|
case IVTV_DEC_STREAM_TYPE_MPG:
|
||||||
@ -655,7 +667,7 @@ static int ivtv_setup_v4l2_decode_stream(struct ivtv_stream *s)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (ivtv_vapi(itv, CX2341X_DEC_SET_DECODER_SOURCE, 4, datatype,
|
if (ivtv_vapi(itv, CX2341X_DEC_SET_DECODER_SOURCE, 4, datatype,
|
||||||
p->width, p->height, p->audio_properties)) {
|
width, height, p->audio_properties)) {
|
||||||
IVTV_DEBUG_WARN("Couldn't initialize decoder source\n");
|
IVTV_DEBUG_WARN("Couldn't initialize decoder source\n");
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user