Jump to content

Problem with mono channels


Recommended Posts

Hi.

 

There is a problem with mono channels. COM variable #TV.audio.pic is equal to audio_stereo.png even on mono channels. But in statusbar channels are correctly displayed as mono.

 

And maybe related bug: on the same channels ffdshow+libmad gives no output, it detects the input as stereo, although it is mono. Funny, but if I enable recording and then playback of the file being recorded then ffdshow detects input as mono and correctly outputs.

 

Tested with versions 4.0 and 4.1.1.

Link to comment
on the same channels ffdshow+libmad gives no output, it detects the input as stereo, although it is mono
.

Options -> DirectX -> TV/Radio Pre-Format Detection -> Audio.

Link to comment

Made some tests and now I can say that "TV/Radio Pre-Format Detection" is not the complete cure. Here are results when the option is enabled.

 

If DVBViewer is started on FTA mono channel or any stereo channel then I have sound from libmad.

 

If DVBViewer is started on crypted mono channel then I have no sound from libmad. I switch to other mono channels and still have no sound. To make it appear I need to rebuild graph or switch to any stereo channel.

 

I tested ffdshow 2940, 3003, 3013 and DVBViewer 4.0 and 4.1.1. Same results for all versions.

Link to comment

Hello same problem here on mono audio channel , i have no sound instantly, i have always to "rebuild playback" to get sound, whenewer i switch back to stereo i also have to "rebuild playback"

 

from stereo audio to ac3 no problem, stereo alone : no problem neither.

Link to comment
  • 3 weeks later...
  • 1 year later...

ffdshow b3154 beta 7 (latest official stable version) + libmad does not work at mono channels at all.

Tried DVBSource 3.4.1, 3.4.3, 3.5.2. Rebuilding graph does not help.

 

Using libavcodec as mp2 decoder in ffdshow is a working workaround, but the problem with libmad indicates something works improperly in the source filter. Picky libmad reveals it.

Link to comment
If DVBViewer is started on crypted mono channel then I have no sound from libmad.

Maybe your CAM starts deccrypting a bit lazely, so the format detection time-out is exceeded before unencrypted data arrives.

 

the problem with libmad indicates something works improperly in the source filter.

No, the DVBViewer Filter is ok. It's a general problem with TV/Radio streams, if you want fast channel switching.

 

Some decoders (like ffdshow with libmad) completely rely on the connection format, which means, they don't check the input themselves and are not able to auto-detect the format or format changes. The connection format is the video/audio format reported by the DVBViewer Filter when connecting to a decoder. If the DVBViewer Filter doesn't know the format, because it has not been detected yet, it reports a default format, which is stereo in case of MPEG audio.

 

Usually ticking the Pre-Format Detection checkboxes on Options -> DirectX solves these issues, but it slows down channel switching, because playback doesn't start until the format is detected and the DVBViewer Filter has re-connected to the decoder (e.g. in case of a stereo <--> mono change) with the correct format information. Read more about it here.

 

Conclusion: For TV/Radio preferably use decoders that don't need help from outside. Decoders that are not able to auto-detect the format may be fine for file playback (as long as the format doesn't change within the file), but they are not really suitable for TV/Radio. Consider that stereo <--> mono changes (or AC3 2.0 <--> 5.1 changes) may occur "on the fly" in TV/Radio streams even without channel switching.

Link to comment

Well... inspired by this discussion, I've tried something. There is a possibility to add format information to samples sent to a decoder after playback has been started. See here:

 

http://msdn.microsoft.com/en-us/library/dd407019%28VS.85%29.aspx

 

I've already tried this some time ago, but audio decoders didn't respond to it at all or in a buggy way (e.g. by creating memory leaks, because it's their duty to free the memory block containing the information). So I dropped it again.

 

However, a test revealed that ffdshow with libmad seems to handle it correctly. It solves the mono problem. Nevertheless thorough tests are necessary to make sure that it doesn't create problems with other decoders.

Link to comment
  • 1 month later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...