diff options
author | Jelle Foks <jelle@foks.8m.com> | 2007-05-21 19:36:01 +0200 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-01-25 22:03:47 +0100 |
commit | f9e54e0c84da869ad9bc372fb4eab26d558dbfc2 (patch) | |
tree | 874fa207ad3777aba200d6207f068e49493b0b3a /drivers/media/video/cx88/cx88.h | |
parent | V4L/DVB (6827): Auto-selects D2633 for ATSC (diff) | |
download | linux-f9e54e0c84da869ad9bc372fb4eab26d558dbfc2.tar.xz linux-f9e54e0c84da869ad9bc372fb4eab26d558dbfc2.zip |
V4L/DVB (6828): cx88-blackbird: audio improvements
This patch should fix the 'muted audio' and 'raspy audio' problem for
mpeg2 streams out of cx88-blackbird devices.
Especially mythtv users would find that the audio would often sound bad
(aliased, or 'raspy'), mainly related to channel changes, many (all?)
other users would find that there was no audio at all in the mpeg data
from the encoder chip, unless the audio was manually unmuted.
The patch includes the following modifications:
Don't actually start the mpeg2 encoder until the device is read from
by the application.
Wait until the audio is stable for at least 400ms before starting the
mpeg encoder.
Mute/Unmute the audio when starting/stopping the mpeg encoder.
Stop the mpeg encoder when changing parameters and when changing tuner
frequency.
Add a variable 'mpeg_active' to struct cx8802_dev to allow tracking of
whether or not the mpeg2 encoder is active.
Load the firmware on cx88-blackbird driver load.
Signed-off-by: Jelle Foks <jelle@foks.8m.com>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/cx88/cx88.h')
-rw-r--r-- | drivers/media/video/cx88/cx88.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/media/video/cx88/cx88.h b/drivers/media/video/cx88/cx88.h index bb1036a5c6c6..f10d432eb3eb 100644 --- a/drivers/media/video/cx88/cx88.h +++ b/drivers/media/video/cx88/cx88.h @@ -461,6 +461,7 @@ struct cx8802_dev { u32 mailbox; int width; int height; + unsigned char mpeg_active; /* nonzero if mpeg encoder is active */ /* mpeg params */ struct cx2341x_mpeg_params params; |