multiple fake AC3 channels with vnsi saw by xbmc.
#1
Hi

I have a recurrent problem with vdr+vnsi & xbmc.
This happens with all xbmc-pvr version i tryed ( dharma from opendkamp, pvr-testing & master from opendkamp ) .

I use vdr-1.7.16 but had this problem with previous version too.

XBMC sees like 9 ac3 audio tracks for some channels, instead of 2.

For example, Canal + here. We have 2 mpeg audio tracks and 2 ac3 tracks ( one for each language: fr & en )

On vdr everything is ok.

The channels.conf line for it looks like this:
CANAL+;CANALSAT:131125:M64:C:6875:160=2:80=fra@4,81=eng@4;46=fra@106,48=eng@106:32:1812,100:8201:1:1072:0


On xbmc side, when i zap to this channel, I don't have audio by default.
If i go to audio menu on xbmc, i can see 11 audio channels.
First 2 ac3 detected have no audio, then the 3-4 channels have ac3 audio, then 5-6 have mpeg audio, then there's still 5 fake ac3 channels showed on the audio track listing.

Only channels 3-4-5-6 exist really in the stream.

On xbmc side, when i zap to this channel i can see those logs:

Code:
19:45:41 T:2930764656 M:1068384256   DEBUG: PVRRecording: xbmc.pvrclient-VDR VNSI Client - Recording started : CANAL+ (null)
19:45:41 T:2930764656 M:1068384256   DEBUG: PVRTriggerTimerUpdate: xbmc.pvrclient-VDR VNSI Client - Triggered Timer Update
19:45:41 T:3016271744 M:1068384256   DEBUG: ------ Window Init (DialogKaiToast.xml) ------
19:45:41 T:3016271744 M:1068384256   DEBUG: Alloc resources: 0.00ms (0.00 ms skin load)
19:45:41 T:2778721136 M:1068359680   DEBUG: CGUIInfoManager::SetCurrentMovie(pvr://channels/tv/all/44.pvr)
19:45:41 T:2778721136 M:1068232704   DEBUG: CDVDDemuxPVRClient::UpdateStreams(): update stream 0:0 with codec_id 94215                    
19:45:41 T:2778721136 M:1068232704   DEBUG: CDVDDemuxPVRClient::UpdateStreams(): update stream 1:1 with codec_id 86020
19:45:41 T:2778721136 M:1068232704   DEBUG: CDVDDemuxPVRClient::UpdateStreams(): update stream 2:2 with codec_id 86020
19:45:41 T:2778721136 M:1068232704   DEBUG: CDVDDemuxPVRClient::UpdateStreams(): update stream 3:3 with codec_id 86020
19:45:41 T:2778721136 M:1068232704   DEBUG: CDVDDemuxPVRClient::UpdateStreams(): update stream 4:4 with codec_id 86020
19:45:41 T:2778721136 M:1068232704   DEBUG: CDVDDemuxPVRClient::UpdateStreams(): update stream 5:5 with codec_id 86016
19:45:41 T:2778721136 M:1068232704   DEBUG: CDVDDemuxPVRClient::UpdateStreams(): update stream 6:6 with codec_id 86016
19:45:41 T:2778721136 M:1068232704   DEBUG: CDVDDemuxPVRClient::UpdateStreams(): update stream 7:7 with codec_id 86020
19:45:41 T:2778721136 M:1068232704   DEBUG: CDVDDemuxPVRClient::UpdateStreams(): update stream 8:8 with codec_id 2
19:45:41 T:2778721136 M:1068232704   DEBUG: CDVDDemuxPVRClient::UpdateStreams(): update stream 9:9 with codec_id 86020
19:45:41 T:2778721136 M:1068232704   DEBUG: CDVDDemuxPVRClient::UpdateStreams(): update stream 10:10 with codec_id 86020
19:45:41 T:2778721136 M:1068232704   DEBUG: CDVDDemuxPVRClient::UpdateStreams(): update stream 11:11 with codec_id 86020
19:45:41 T:2778721136 M:1068232704   DEBUG: CDVDDemuxPVRClient::UpdateStreams(): update stream 12:12 with codec_id 86020
19:45:42 T:2778721136 M:1067962368   DEBUG: CGUIInfoManager::SetCurrentMovie(pvr://channels/tv/all/44.pvr)


If I play a recording of the same channel, xbmc only see the 4 tracks, it's ok. This occurs only for live tv streams.

This problem doesn't happens with streamdev, only with vnsi.

I don't have lot of information to give on this, vdr log is not really verbose for vnsi.
I checked the raw mux, and there's only 4 audio tracks referenced in the PMT, so I don't understand why this occurs.

Teletext subtitles are not detected by xbmc either. I can see them in xbmc with streamdev vtp:// video source, but not by using pvr+vnsi.
DVB subtitles are ok.

Perhaps this is related...

I'm ready to provide all the missing information if needed.

Regards.
Reply
#2
could you try if the patches sent in https://github.com/opdenkamp/xbmc/pull/8 solve this problem?
opdenkamp / dushmaniac

xbmc-pvr [Eden-PVR builds] [now included in mainline XBMC, so no more source link here :)]
personal website: [link]

Found a problem with PVR? Report it on Trac, under "PVR - core components". Please attach the full debug log.

If you like my work, please consider donating to me and/or Team XBMC.
Reply
#3
I've just tryed, but no improvement, still 9 or 11 audio tracks appearing on many channels instead of 2 or 4.
Updated vnsi too with yesterday set of patches you've committed.

Anyway this looks normal, those patches don't really seems to be really related to my issue. Smile


I'm not on ATSC, but on europpean DVB-C cable for info.

Cheers.

edit: What's strange, is on vdr side, it identifies only the 4 audio pid correctly, nothing else:
[core.pids] 0.1: pids after add VIDEO=00a0 AUDIO=0050 AUDIO=0051 DOLBY=002e DOLBY=0030

Do you think it could parse Teletext pids as aC3 ? As teletext subs are not seen by xbmc with vnsi. This could be a clue.


Any way to capture the ts data sent from vnsi to xbmc ? I'd like to analyze the mux & check the pids.
Reply
#4
Yeah, some interesting logs from xbmc when testing the same channel with vtp:// & streamdev.

What is identified as AC3 streams by xbmc vnsi client seems to be data pids:

[HTML]17:18:02 T:2447326064 M:978055168 INFO: ffmpeg[91DF3B70]: Duration: N/A, start: 30643.972256, bitrate: 16280 kb/s
17:18:02 T:2447326064 M:978055168 INFO: ffmpeg[91DF3B70]: Program 8201
17:18:02 T:2447326064 M:978055168 INFO: ffmpeg[91DF3B70]: Stream #0.0[0x20](fra): Subtitle: [6][0][0][0] / 0x0006
17:18:02 T:2447326064 M:978055168 INFO: ffmpeg[91DF3B70]: Stream #0.1[0x21]: Data: [192][0][0][0] / 0x00C0
17:18:02 T:2447326064 M:978055168 INFO: ffmpeg[91DF3B70]: Stream #0.2[0x22]: Data: [193][0][0][0] / 0x00C1
17:18:02 T:2447326064 M:978055168 INFO: ffmpeg[91DF3B70]: Stream #0.3[0x2e](fra): Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s
17:18:02 T:2447326064 M:978055168 INFO: ffmpeg[91DF3B70]: Stream #0.4[0x30](eng): Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s
17:18:02 T:2447326064 M:978055168 INFO: ffmpeg[91DF3B70]: Stream #0.5[0x50](fra): Audio: mp2, 48000 Hz, 2 channels, s16, 256 kb/s
17:18:02 T:2447326064 M:978055168 INFO: ffmpeg[91DF3B70]: Stream #0.6[0x51](eng): Audio: mp2, 48000 Hz, 2 channels, s16, 256 kb/s
17:18:02 T:2447326064 M:978055168 INFO: ffmpeg[91DF3B70]: Stream #0.7[0x86]: Data: [192][0][0][0] / 0x00C0
17:18:02 T:2447326064 M:978055168 INFO: ffmpeg[91DF3B70]: Stream #0.8[0xa0]: Video: mpeg2video, yuv420p, 720x576 [PAR 64:45 DAR 16:9], 15000 kb/s, 95 fps, 25 tbr, 90k tbn, 50 tbc
17:18:02 T:2447326064 M:978055168 INFO: ffmpeg[91DF3B70]: Stream #0.9[0xe3]: Data: [193][0][0][0] / 0x00C1
17:18:02 T:2447326064 M:978055168 INFO: ffmpeg[91DF3B70]: Stream #0.10[0x10f]: Data: [193][0][0][0] / 0x00C1
17:18:02 T:2447326064 M:978055168 INFO: ffmpeg[91DF3B70]: Stream #0.11[0x4e5]: Data: [193][0][0][0] / 0x00C1
17:18:02 T:2447326064 M:978055168 INFO: ffmpeg[91DF3B70]: Stream #0.12[0x4e7]: Data: [193][0][0][0] / 0x00C1[/HTML]
Reply
#5
I've found the debug parameter on vnsi plugin Makefile, missed this one before.

It seems, when the PID descriptor is not present for a found pid in the mux, vnsi assume wrongly it's AC3

Here are the vnsi plugin log:

Quote:VERBOSE GetPid - cStreamdevPatFilter PMT scanner: adding PID 32 (ISO/IEC 13818-1 Private PES data) Teletext

VERBOSE GetPid - Adding pid 42 (type 0xc1) RegDesc not found -> assume AC-3

VERBOSE GetPid - cStreamdevPatFilter PMT scanner: NOT adding PID 46 (ISO/IEC 13818-1 Private PES data) UNKNOWN (9)

VERBOSE GetPid - cStreamdevPatFilter PMT scanner: adding PID 46 (ISO/IEC 13818-1 Private PES data) AC3 ()

VERBOSE GetPid - cStreamdevPatFilter PMT scanner: NOT adding PID 48 (ISO/IEC 13818-1 Private PES data) UNKNOWN (9 )

VERBOSE GetPid - Adding pid 57 (type 0xc1) RegDesc not found -> assume AC-3

VERBOSE GetPid - cStreamdevPatFilter PMT scanner adding PID 80 (ISO/IEC 13818-3 Audio) (fra)

VERBOSE GetPid - cStreamdevPatFilter PMT scanner adding PID 81 (ISO/IEC 13818-3 Audio) (eng)

VERBOSE GetPid - cStreamdevPatFilter PMT scanner adding PID 160 (ISO/IEC 13818-2 Video)


The problem is here in receiver.c ( line 320 ) :

Quote: if (!found)
{
LOGCONSOLE("Adding pid %d (type 0x%x) RegDesc not found -> assume AC-3\n", stream.getPid(), stream.getStreamType());
*type = stAC3;
return stream.getPid();
}

Commenting this solves the problem:

//*type = stAC3;
//return stream.getPid();
Reply
#6
@Dushmaniac , I've submitted a pull request that solve this problem.

Last thing not working here is teletext subtitles on xbmc.

No subtitle tracks are available on xbmc audio menu. Channels have 2 subtitles on 888 and 889 pages.
But if i hit Teltext button on the menu, and manually select page 888, i can display them ( not really suitable as it takes 40% of the screen, and the xbmc menu on the top stays displayed. )

XBMC seems to see it according to this log:


DEBUG: CDVDDemuxPVRClient::UpdateStreams(): update stream 5:5 with codec_id 94215

( 94215 are DVB Teletext subtitle ) .

How XBMC is suppose to find the correct teletext page to parse ?
I'd like to give a look in the code, if you can give me a direction ( on what I can do with my poor non dev skill Wink )
Reply
#7
I'll have a look at your pull request later.

about teletext: guess CDemuxStreamTeletext is a good starting point to start looking.
opdenkamp / dushmaniac

xbmc-pvr [Eden-PVR builds] [now included in mainline XBMC, so no more source link here :)]
personal website: [link]

Found a problem with PVR? Report it on Trac, under "PVR - core components". Please attach the full debug log.

If you like my work, please consider donating to me and/or Team XBMC.
Reply

Logout Mark Read Team Forum Stats Members Help
multiple fake AC3 channels with vnsi saw by xbmc.0