diff options
author | Hans Verkuil <hverkuil@xs4all.nl> | 2007-08-20 21:01:58 +0200 |
---|---|---|
committer | Hans Verkuil <hverkuil@xs4all.nl> | 2007-08-20 21:01:58 +0200 |
commit | 3fc385d8f4e2e1404a59e12eefda5193eb5f6bc2 (patch) | |
tree | 1473de7a801ff8ebc5d21efca3e6260b59ba584d /linux/drivers/media/video/ivtv/ivtv-fileops.c | |
parent | 638acf07e1921e20c61cd6fa47effac3dd17960b (diff) | |
download | mediapointer-dvb-s2-3fc385d8f4e2e1404a59e12eefda5193eb5f6bc2.tar.gz mediapointer-dvb-s2-3fc385d8f4e2e1404a59e12eefda5193eb5f6bc2.tar.bz2 |
ivtv: fix output mode processing: UDMA_YUV wasn't cleared.
From: Hans Verkuil <hverkuil@xs4all.nl>
- Always clear when stopping the decoder
- Clear if the filehandle that is being close was used for UDMA_YUV output.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Diffstat (limited to 'linux/drivers/media/video/ivtv/ivtv-fileops.c')
-rw-r--r-- | linux/drivers/media/video/ivtv/ivtv-fileops.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/linux/drivers/media/video/ivtv/ivtv-fileops.c b/linux/drivers/media/video/ivtv/ivtv-fileops.c index 109c8c6c9..5183f7183 100644 --- a/linux/drivers/media/video/ivtv/ivtv-fileops.c +++ b/linux/drivers/media/video/ivtv/ivtv-fileops.c @@ -755,6 +755,7 @@ static void ivtv_stop_decoding(struct ivtv_open_id *id, int flags, u64 pts) IVTV_DEBUG_INFO("close stopping decode\n"); ivtv_stop_v4l2_decode_stream(s, flags, pts); + itv->output_mode = OUT_NONE; } clear_bit(IVTV_F_S_APPL_IO, &s->s_flags); clear_bit(IVTV_F_S_STREAMOFF, &s->s_flags); @@ -762,11 +763,7 @@ static void ivtv_stop_decoding(struct ivtv_open_id *id, int flags, u64 pts) /* Restore registers we've changed & clean up any mess we've made */ ivtv_yuv_close(itv); } - if (s->type == IVTV_DEC_STREAM_TYPE_YUV && itv->output_mode == OUT_YUV) - itv->output_mode = OUT_NONE; - else if (s->type == IVTV_DEC_STREAM_TYPE_YUV && itv->output_mode == OUT_UDMA_YUV) - itv->output_mode = OUT_NONE; - else if (s->type == IVTV_DEC_STREAM_TYPE_MPG && itv->output_mode == OUT_MPG) + if (itv->output_mode == OUT_UDMA_YUV && id->yuv_frames) itv->output_mode = OUT_NONE; itv->speed = 0; |