diff options
-rw-r--r-- | drivers/media/video/ivtv/ivtv-fileops.c | 9 | ||||
-rw-r--r-- | drivers/media/video/ivtv/ivtv-streams.c | 11 |
2 files changed, 10 insertions, 10 deletions
diff --git a/drivers/media/video/ivtv/ivtv-fileops.c b/drivers/media/video/ivtv/ivtv-fileops.c index baa17cbee5e1..5dd519caf81d 100644 --- a/drivers/media/video/ivtv/ivtv-fileops.c +++ b/drivers/media/video/ivtv/ivtv-fileops.c | |||
@@ -800,7 +800,16 @@ int ivtv_v4l2_close(struct inode *inode, struct file *filp) | |||
800 | ivtv_unmute(itv); | 800 | ivtv_unmute(itv); |
801 | ivtv_release_stream(s); | 801 | ivtv_release_stream(s); |
802 | } else if (s->type >= IVTV_DEC_STREAM_TYPE_MPG) { | 802 | } else if (s->type >= IVTV_DEC_STREAM_TYPE_MPG) { |
803 | struct ivtv_stream *s_vout = &itv->streams[IVTV_DEC_STREAM_TYPE_VOUT]; | ||
804 | |||
803 | ivtv_stop_decoding(id, VIDEO_CMD_STOP_TO_BLACK | VIDEO_CMD_STOP_IMMEDIATELY, 0); | 805 | ivtv_stop_decoding(id, VIDEO_CMD_STOP_TO_BLACK | VIDEO_CMD_STOP_IMMEDIATELY, 0); |
806 | |||
807 | /* If all output streams are closed, and if the user doesn't have | ||
808 | IVTV_DEC_STREAM_TYPE_VOUT open, then disable VBI on TV-out. */ | ||
809 | if (itv->output_mode == OUT_NONE && !test_bit(IVTV_F_S_APPL_IO, &s_vout->s_flags)) { | ||
810 | /* disable VBI on TV-out */ | ||
811 | ivtv_disable_vbi(itv); | ||
812 | } | ||
804 | } else { | 813 | } else { |
805 | ivtv_stop_capture(id, 0); | 814 | ivtv_stop_capture(id, 0); |
806 | } | 815 | } |
diff --git a/drivers/media/video/ivtv/ivtv-streams.c b/drivers/media/video/ivtv/ivtv-streams.c index 322b347b67c2..51df3f855031 100644 --- a/drivers/media/video/ivtv/ivtv-streams.c +++ b/drivers/media/video/ivtv/ivtv-streams.c | |||
@@ -603,10 +603,6 @@ static int ivtv_setup_v4l2_decode_stream(struct ivtv_stream *s) | |||
603 | 603 | ||
604 | IVTV_DEBUG_INFO("Setting some initial decoder settings\n"); | 604 | IVTV_DEBUG_INFO("Setting some initial decoder settings\n"); |
605 | 605 | ||
606 | /* disable VBI signals, if the MPEG stream contains VBI data, | ||
607 | then that data will be processed automatically for you. */ | ||
608 | ivtv_disable_vbi(itv); | ||
609 | |||
610 | /* set audio mode to left/stereo for dual/stereo mode. */ | 606 | /* set audio mode to left/stereo for dual/stereo mode. */ |
611 | ivtv_vapi(itv, CX2341X_DEC_SET_AUDIO_MODE, 2, itv->audio_bilingual_mode, itv->audio_stereo_mode); | 607 | ivtv_vapi(itv, CX2341X_DEC_SET_AUDIO_MODE, 2, itv->audio_bilingual_mode, itv->audio_stereo_mode); |
612 | 608 | ||
@@ -639,7 +635,7 @@ static int ivtv_setup_v4l2_decode_stream(struct ivtv_stream *s) | |||
639 | } | 635 | } |
640 | if (ivtv_vapi(itv, CX2341X_DEC_SET_DECODER_SOURCE, 4, datatype, | 636 | if (ivtv_vapi(itv, CX2341X_DEC_SET_DECODER_SOURCE, 4, datatype, |
641 | itv->params.width, itv->params.height, itv->params.audio_properties)) { | 637 | itv->params.width, itv->params.height, itv->params.audio_properties)) { |
642 | IVTV_DEBUG_WARN("COULDN'T INITIALIZE DECODER SOURCE\n"); | 638 | IVTV_DEBUG_WARN("Couldn't initialize decoder source\n"); |
643 | } | 639 | } |
644 | return 0; | 640 | return 0; |
645 | } | 641 | } |
@@ -909,11 +905,6 @@ int ivtv_stop_v4l2_decode_stream(struct ivtv_stream *s, int flags, u64 pts) | |||
909 | clear_bit(IVTV_F_S_STREAMING, &s->s_flags); | 905 | clear_bit(IVTV_F_S_STREAMING, &s->s_flags); |
910 | ivtv_flush_queues(s); | 906 | ivtv_flush_queues(s); |
911 | 907 | ||
912 | if (!test_bit(IVTV_F_S_PASSTHROUGH, &s->s_flags)) { | ||
913 | /* disable VBI on TV-out */ | ||
914 | ivtv_disable_vbi(itv); | ||
915 | } | ||
916 | |||
917 | /* decrement decoding */ | 908 | /* decrement decoding */ |
918 | atomic_dec(&itv->decoding); | 909 | atomic_dec(&itv->decoding); |
919 | 910 | ||