Re: Fwd: No audio in HW Compressed MPEG2 container on HVR-1300

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2010-08-03 at 09:02 +1200, Shane Harrison wrote:
[snip]
> Thanks for the audio path info.  While you are on a roll, a few more questions ?
> 1) So do you know how the I2S input (from WM8775) is looped back to
> the I2S output that is fed to the MPEG encoder?  I can only assume in
> software?

Yes, it is looped through the cx23883 under s/w control.

>   I note that the driver has a comment re. using passthrough
> mode in the CX2388x but actually uses normal mode which isn't a
> loopback.  Hence something else must generate the I2S output source.

I believe that as long as b13 of AUD_CTL is set then i2s data is output
- this bit is set in set_audio_finish().  The code comment is wrong, as
you say, the i2sctl register is set to normal mode.  In normal mode the
i2s data output is either i2s-in or the demodulated audio from the
analog tuner, dependent upon configuration.

> 2)  I interpreted the following note in the CX23416 datasheet slightly
> differently than you:
>        "The CX23416 audio input interface is designed to work with most commonly
>        available audio analog-to-digital converters (ADCs) that are
> compatible with the Sony
>        I2S data format. An I2S-compatible audio part can be supported
> by running its AILR
>        sync signal through an inverting flip-flop, clocked by an
> inverted AICKIN, before
>        passing it to the CX23416.
> I assumed it was saying it accepted standard Sony variant but you
> could connect to Philips I2S if you used a flip-flop to invert and
> synchronise with the AICKIN.

Yes you are correct, the flip-flop is needed (which is what I wanted to
emphasise) only for _Philips_ mode but the cx23883 i2sout is programmed
for Sony mode in set_audio_finish() i.e. AUD_I2SOUTPUTCNT = 1.

>   I did notice that the HVR1300 board has
> a footprint for an IC that is connected to the I2S outputs in some
> manner.  I wondered what this was - does something need to be fitted
> then to make these two devices talk directly?  I also note that the
> driver sets the I2S input to be Philips (as output by the WM8775) and
> the I2S output as Sony which seems like an attempt to talk directly.
> A bit confused here.....

The wm8775 outputs Philips format in i2s mode and that's what
cx88_set_tvaudio() programs the cx23883 to accept on i2sin.

If the cx23883 were programmed for pass-thru mode then the cx23416 would
receive the wrong data format.  I believe that's the reason for using
'normal' mode.

However, I believe there may be a problem in set_audio_finish() when
CX88_MPEG_BLACKBIRD is set.  If core->tvaudio == WW_I2SADC (which it
true for s-video and composite inputs) then cx88_set_tvaudio() calls
set_audio_finish(core, EN_I2SIN_ENABLE) to enable i2s audio input but in
the CX88_MPEG_BLACKBIRD case the EN_I2SIN_ENABLE is never written to
AUD_CTL.  This may account for the white noise you hear.  You could test
this easily by forcing the cx88 module parameter 'analog' to 1

> 3) Given I am getting audio sometimes in the MPEG2 stream, is it using
> another path into the CX23416.  The idea of getting lucky on switching
> glitches seems improbable on the I2S interface since once I get audio
> I continue to have it until a hard reboot.  Switching glitches and
> race conditions on the control interfaces being successful every so
> often I could buy.
> 
> Still to try the patch - will let you know.  Unfortunately our
> HVR-1300 is in the process of being swapped out since the supplier
> wanted to try swapping boards first :-(

Let us know how you get on.

-- Lawrence Rust


--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux