Audio is lost when pausing an AC3 channel. (1 Viewer)

htpcoz

Portal Pro
July 25, 2005
127
1
Brisbane
Home Country
Area: Media Portal Program
MediaPortal Version: 0.2.0 - RC4 - all SVNs up to 08/06/06
MediaPortal Skin: Razor
Windows Version: Windows XP (SP2)
.NET CLR Version: 2.0.50727
Audio Codec: NVIDIA Audio Decoder
Video Codec: NVIDIA Video Decoder
CPU Type: Intel Pentium 4 - 2.80GHz
Memory: 510 MB
Motherboard Chipset: P4P800-VM (ASUSTeK Computer INC.)
TV Card Model: DNTV Live
TV Card Type: DVB
TV Card Driver: -
Video Card Model: RADEON X700 Secondary (256 MB)
Video Card Driver: Catalyst 6.4
Video Card Resolution: 1920x1080
Video Render Type: VMR9
Audio Card Model: SoundMAX Integrated Digital Audio
Audio Card Driver: 6.20.100.1362
Synopsis::

When a channel has an AC3 PID, if I pause that channel and then unpause the channel the audio is lost, even thought the video resumes perfectly. I have to stop and restart the channel to recover the audio. One interesting thing (perhaps related) iis the "click" sound effect related to the pause keypress is not heard when this occurs.

If I do the same thing to a channel without an AC3 pid (just an MP2 PID) then there is no problem at all, the click sound is heard and the audio returns with the video.

I have done a complete rebuild with a clean minimal install, including deleting the MP directories and reinstalled to no avail.

What I have found is in my environment it is directly related to the AC3 PIDs, so I tried to simply disable the AC3 PIDs from the Channel setup, however it appears that MP is detecting the AC3 pid and rewriting the Channel entry to include the AC3 PID, so that next time I change back to that channel, I am back with the problem with not being able to pause the AC3 channel.

This brings up a few questions:

1) Is it possible to simply disable AC3 alltogether? ie rather than MP defaulting to play the AC3 stream if it exists, simply play the MP2 by default?

2) is it possible to stop MP from rewriting the TV database when the new PIDs are detected? That way I can delete the AC3 PID an avoid this problem.

3) does anyone else have problems with pausing an AC3 stream? As disabling AC3 is really just a workaround to avoid the actual problem.

I can post a log, but there is no logging related to the audio stream when pausing and resuming, all that you see is:


13/06/2006 11:15:25 PM planescene: PresentSurface() frame:0 enabled:True allowed:False
13/06/2006 11:15:25 PM 1 VMR9Helper: repaint->playing 1
13/06/2006 11:15:26 PM VMR9Helper: SetRepaint()
13/06/2006 11:15:26 PM VMR9Helper: SetRepaint()
13/06/2006 11:15:27 PM planescene: PresentSurface() frame:0 enabled:True allowed:False
13/06/2006 11:15:27 PM 1 VMR9Helper: repaint->playing 1
13/06/2006 11:15:27 PM VMR9Helper: SetRepaint()
13/06/2006 11:15:27 PM VMR9Helper: SetRepaint()
13/06/2006 11:15:28 PM planescene: PresentSurface() frame:0 enabled:True allowed:False
13/06/2006 11:15:28 PM 1 VMR9Helper: repaint->playing 1
13/06/2006 11:15:28 PM VMR9Helper: SetRepaint()
13/06/2006 11:15:28 PM VMR9Helper: SetRepaint()
13/06/2006 11:15:29 PM planescene: PresentSurface() frame:0 enabled:True allowed:False
13/06/2006 11:15:29 PM 1 VMR9Helper: repaint->playing 1
 

Taipan

Retired Team Member
  • Premium Supporter
  • February 23, 2005
    2,075
    44
    Melbourne
    Home Country
    Australia Australia
    htpcoz said:
    1) Is it possible to simply disable AC3 alltogether? ie rather than MP defaulting to play the AC3 stream if it exists, simply play the MP2 by default?
    On my system, MediaPortal always selects the MP2 stream by default - I have to specifically select AC3 for each channel (via the OSD) once I have commenced watching that channel. How do you know that MediaPortal is selecting AC3 by default?

    htpcoz said:
    2) is it possible to stop MP from rewriting the TV database when the new PIDs are detected? That way I can delete the AC3 PID an avoid this problem.
    I don't think this will help

    htpcoz said:
    3) does anyone else have problems with pausing an AC3 stream? As disabling AC3 is really just a workaround to avoid the actual problem.
    No, I don't experience this problem at all, and I have a very similar configuration to yours... :?
     

    htpcoz

    Portal Pro
    July 25, 2005
    127
    1
    Brisbane
    Home Country
    I know that AC3 is detected, based on the Status display of my TV (the TV is the SPDIF decoder). When I connect to a channel without an AC3 PID it always displays "ProLogic", whereas when I connect to a channel that does broadcast AC3 then the TV shows "DolbyDigital". I've also checked the Nvidia properties, and it indicates DolbyDigital when my TV does, and MPEG when my TV indicates ProLogic.

    The interesting thing is these dp appear to be at odds to what the MP OSD says. In MP the list of available streams in the audio OSD indicates that the "english" ie non-AC3 stream is the active one, even though all other indications lead me to believe that AC3 is in fact being played. If I try to change to the AC3 stream then all hell breaks loose and MP locks up (that appears to be a known issue tracked by another thread).

    When I go into channel setup and set the AC3 PID to 0 and select the channel the MP2 stream is played, in the logs I see the following:

    14/06/2006 10:21:44 AM Navigator:ZapNext Seven Digital->Nine Digital
    14/06/2006 10:21:44 AM Channel change:Nine Digital
    14/06/2006 10:21:44 AM GUITVHome.ViewChannel(): View channel=Nine Digital ts:True
    14/06/2006 10:21:44 AM g_Player.Stop()
    14/06/2006 10:21:44 AM g_Player.OnStopped()
    14/06/2006 10:21:44 AM StreamBufferPlayer9:cleanup DShow graph False
    14/06/2006 10:21:44 AM StreamBufferPlayer9: vmr9 disable
    14/06/2006 10:21:44 AM StreamBufferPlayer9: vmr9 dispose
    14/06/2006 10:21:44 AM 1 vmr9:Dispose
    14/06/2006 10:21:44 AM VMR9: not active
    14/06/2006 10:21:44 AM PlaneScene: PresentImage() dispose surfaces
    14/06/2006 10:21:44 AM PlaneScene: PresentImage() dispose surfaces
    14/06/2006 10:21:44 AM 1 VMR9:ReleaseComObject():0
    14/06/2006 10:21:44 AM PlaneScene: PresentImage() dispose surfaces
    14/06/2006 10:21:44 AM StreamBufferPlayer9: Cleanup done
    14/06/2006 10:21:44 AM StreamBufferPlayer9:grapbuilder=null
    14/06/2006 10:21:44 AM add cmd:MediaPortal.TV.Recording.TimeShiftTvCommand #1
    14/06/2006 10:21:44 AM Recorder:confused:tartTimeshift tv Nine Digital
    14/06/2006 10:21:44 AM Recorder: find free card
    14/06/2006 10:21:44 AM Command:confused:top all card except card:1
    14/06/2006 10:21:44 AM Recorder: tv channel changed:Nine Digital
    14/06/2006 10:21:44 AM teletext: clear teletext cache
    14/06/2006 10:21:44 AM Recorder: found free card 2 prio:1 name:DNTV Live! LP Tuner Card
    14/06/2006 10:21:44 AM Recorder: start timeshifting card DNTV Live! LP Tuner Card channel:Nine Digital
    14/06/2006 10:21:44 AM TVCapture: change channel to :Nine Digital
    14/06/2006 10:21:44 AM DVBGraph: ShouldRebuildGraph(Nine Digital) current ac3:False new channel ac3:False
    14/06/2006 10:21:44 AM DVBGraph:TuneChannel() tune to channel:11
    14/06/2006 10:21:44 AM DVBGraph: tuning details: frequency:191625 kHz ONID:12803 TSID:1024 SID:1025 provider:unknown
    14/06/2006 10:21:44 AM DVBGraphBDA:confused:ubmitTuneRequest() frequency:191625 kHz Bandwidth:7 ONID:12803 TSID:1024, SID:1025
    14/06/2006 10:21:45 AM DVBGraph:confused:etHardwarePidFiltering to:0,1,10,11,12,D3,D2,201,294,101,241,82,
    14/06/2006 10:21:45 AM DVBGraphBDA: signal strength:100 signal quality:50 signal present:True locked:True
    14/06/2006 10:21:45 AM DVBDemuxer:Nine Digital audio:294 video:201 teletext:241 pmt:101 subtitle:0 program:1025
    14/06/2006 10:21:45 AM DVBGraph:TuneChannel done signal strength:100 signal quality:0 locked:False
    14/06/2006 10:21:45 AM TVCapture.StartTimeShifting() Card:2 :Nine Digital
    14/06/2006 10:21:45 AM teletext: grab teletext for card:DNTV Live! LP Tuner Card
    14/06/2006 10:21:45 AM Recorder: tv channel changed:Nine Digital
    14/06/2006 10:21:45 AM teletext: clear teletext cache
    14/06/2006 10:21:45 AM Command:MediaPortal.TV.Recording.TimeShiftTvCommand time:953.125 msec
    14/06/2006 10:21:45 AM Recorder: Card:Hauppauge PVR150MCE idle
    14/06/2006 10:21:45 AM Recorder: Card:DNTV Live! LP Tuner Card timeshift tv channel:Nine Digital
    14/06/2006 10:21:51 AM wait for pmt :-1
    14/06/2006 10:21:51 AM Recorder: start viewing timeshift file of card DNTV Live! LP Tuner Card
    14/06/2006 10:21:51 AM Playlistplayer.StartFile(d:\recordings\card2\live.tv)
    14/06/2006 10:21:51 AM add cmd:MediaPortal.TV.Recording.StopRadioCommand #1
    14/06/2006 10:21:51 AM g_Player.Play(d:\recordings\card2\live.tv)

    In the above case the TV displays ProLogic, indicating an MP2 stream.

    If I change off that channel I see MP has now identified the AC3 stream, this updates the DB to include the AC3 PID, and also writes out the PMT file:

    14/06/2006 10:21:57 AM wait for pmt :-1
    14/06/2006 10:21:57 AM DVBGraph:Got PMT version:2
    14/06/2006 10:21:57 AM DVBGraph: OnPMTIsChanged:database\pmt\pmt_Nine Digital_12803_1024_1025_5.dat
    14/06/2006 10:21:57 AM DVBGraph:confused:endPMT() set demux: video pid:201 audio pid:294 AC3 pid:295 audio1 pid:294 audio2 pid:0 audio3 pid:0 subtitle pid:FFFFFFFF teletext pid:241 pcr pid:82
    14/06/2006 10:21:57 AM DVBDemuxer:Nine Digital audio:294 video:201 teletext:241 pmt:101 subtitle:0 program:1025
    14/06/2006 10:21:57 AM DVBGraph:confused:etHardwarePidFiltering to:0,1,10,11,12,D3,D2,201,294,295,101,241,82,
    14/06/2006 10:21:57 AM update dvbt channel:Nine Digital
    14/06/2006 10:21:57 AM DVBGraph: grab epg for Nine Digital
    14/06/2006 10:22:05 AM VMR9Helper: SetRepaint()


    Then when I go back to the channel it has now detected that the channel is AC3, and the TV indicates that a Dolby Digital stream is being played:

    14/06/2006 10:22:22 AM TVCapture: change channel to :Nine Digital
    14/06/2006 10:22:22 AM DVBGraph: ShouldRebuildGraph(Nine Digital) current ac3:False new channel ac3:True
    14/06/2006 10:22:22 AM TvCaptureDevice:RebuildGraph() Card:2 chan:Nine Digital
    14/06/2006 10:22:22 AM DVBGraph: StopTimeShifting()
    14/06/2006 10:22:22 AM TvCaptureDevice:RebuildGraph() recreate timeshifting graph
    14/06/2006 10:22:22 AM DVBGraph:confused:tartTimeShifting() Nine Digital
    14/06/2006 10:22:22 AM DVBGraph: tuning details: frequency:191625 kHz ONID:12803 TSID:1024 SID:1025 provider:unknown
    14/06/2006 10:22:22 AM DVBGraph: channel Nine Digital uses AC3
    14/06/2006 10:22:22 AM DVBGraph:(). StartTimeShifting: ac3=True
    14/06/2006 10:22:23 AM DVBGraph:TuneChannel() tune to channel:11
    14/06/2006 10:22:23 AM DVBGraph: tuning details: frequency:191625 kHz ONID:12803 TSID:1024 SID:1025 provider:unknown
    14/06/2006 10:22:23 AM DVBGraphBDA:confused:ubmitTuneRequest() frequency:191625 kHz Bandwidth:7 ONID:12803 TSID:1024, SID:1025
    14/06/2006 10:22:24 AM DVBGraph:confused:etHardwarePidFiltering to:0,1,10,11,12,D3,D2,201,294,295,101,241,82,
    14/06/2006 10:22:24 AM DVBGraphBDA: signal strength:100 signal quality:50 signal present:True locked:True
    14/06/2006 10:22:24 AM DVBDemuxer:Nine Digital audio:294 video:201 teletext:241 pmt:101 subtitle:0 program:1025
    14/06/2006 10:22:24 AM DVBGraph:TuneChannel done signal strength:100 signal quality:0 locked:False
    14/06/2006 10:22:24 AM TVCapture.StartTimeShifting() Card:2 :Nine Digital
    14/06/2006 10:22:24 AM teletext: grab teletext for card:DNTV Live! LP Tuner Card
    14/06/2006 10:22:24 AM Recorder: tv channel changed:Nine Digital
     

    Taipan

    Retired Team Member
  • Premium Supporter
  • February 23, 2005
    2,075
    44
    Melbourne
    Home Country
    Australia Australia
    I don't know if this is a clue, but I just noticed that you are using SPDIF to pass the audio stream to an external decoder - whereas I am using the soundcard in the PC to decode the audio into the 5.1 analog channels.

    Could it be that the problem you experience is caused by the SPDIF passthrough not working correctly - have you tried other audio decoders?

    I recall reading some other posts where users had trouble getting SPDIF pass-through to work reliably..... :?
     

    htpcoz

    Portal Pro
    July 25, 2005
    127
    1
    Brisbane
    Home Country
    Interesting. I just had a tinker with the Nvidia Audio codec properties, and if I set the SPDIF mode to ProLogic, rather than SPDIF (so the signal being sent is MP2, still over the SPDIF) the problem with the loss of audio no longer occurs.

    I'm going to investigate different version of the codec to see if the behavior is the same across the Nvidia codec. I tried MPA and it has the same issue, however it doesn't have the same configurable mode, so I could not get it to work.

    I'd be interested to hear if people are in fact receiving AC3 audio even though MP thinks that it is playing the mp2 stream. Ie anyone running SPDIF into a decoder that tells you the mode that it is in, when you change to a channel with both an MP2 and AC3 PID, which one does it actually play?
     

    Users who are viewing this thread

    Top Bottom