Opened 13 years ago

Closed 12 years ago

#3153 closed defect (fixed)

1 of 10 channels without audio, the rest work.

Reported by: spikeygg@… Owned by: danielk
Priority: minor Milestone: unknown
Component: dvb Version: 0.20
Severity: medium Keywords:
Cc: Ticket locked: no

Description

One of my ten channels has no audio stream (recordings and liveTV).

When I try to watch the problem station using myth, the backend complains:

2007-02-24 00:43:23.380 Started PESPacket, but !payloadStart()
2007-02-24 00:43:23.410 Started PESPacket, but !payloadStart()
2007-02-24 00:43:23.453 Started PESPacket, but !payloadStart()

This is a section from my frontend log when attempting to watch the station in liveTV:

2007-02-10 11:19:49.133 TV: Attempting to change from None to WatchingLiveTV
2007-02-10 11:19:49.136 Using protocol version 32
2007-02-10 11:19:49.488 NVP: Disabling Audio, params(-1,2,44100)
2007-02-10 11:19: 49.491 VideoOutputXv: XvMCTex: Init failed
2007-02-10 11:19:49.492 VideoOutputXv: XVideo Adaptor Name: 'NV17 Video Overlay'
2007-02-10 11:19:50.205 TV: Changing from None to WatchingLiveTV
2007-02-10 11:19: 50.213 Realtime priority would require SUID as root.
2007-02-10 11:19:50.370 Video timing method: SGI OpenGL
2007-02-10 11:19:53.598 NVP: Prebuffer wait timed out 10 times.
2007-02-10 11:19:54.756 VideoOutputXv: XvMCTex: Init failed
2007-02-10 11:19:54.761 VideoOutputXv: XVideo Adaptor Name: 'NV17 Video Overlay'
2007-02-10 11:19:55.412 AFD: Opened codec 0x27c23b0, id(MPEG2VIDEO) type(Video)
2007-02-10 11:19:55.413 AFD: Opened codec 0x27dfca0, id(AC3) type(Audio)
2007-02-10 11:19:55.413 AFD: Audio Track #1 is A/V stream #1 and has 0 channels in the English language(6647399).
2007-02-10 11:19:55.415 AFD: Opened codec 0x27f8560, id(MPEG2VIDEO) type(Video)
2007-02-10 11:19: 55.416 AFD: Opened codec 0xd26470, id(MPEG2VIDEO) type(Video)
2007-02-10 11:19:55.422 AFD: Selected track 1: English AC3 ?ch (A/V Stream #1)
2007-02-10 11:19:55.422 AFD: Initializing audio parms from audio track #1
2007-02-10 11:19:55.423 AFD: Audio format changed
                        from id(NONE)    -1Hz -1ch   0bps    ; id(NONE)    -1Hz -1ch   0bps
                        to   id( AC3)     0Hz  0ch   0bps    ; id( AC3)     0Hz  0ch   0bps
2007-02-10 11:19:55.423 NVP: Disabling Audio, params(0,0,0)
2007-02-10 11:19:56.755 NVP: prebuffering pause
2007-02-10 11:19:57.165 TV: Attempting to change from WatchingLiveTV to None
2007-02-10 11:19:57.652 TV: Changing from WatchingLiveTV to None

By trial and error I determined that:

Using revision 12438 and watching LiveTV tuned to channel 7.1 the audio works!
Using revision 12439 and watching LiveTV tuned to channel 7.1 and the audio is broken.

Example stream from broken channel here: http://www.spartanframeworks.com/Spikey/temp.ts

Using azap and mplayer to play the station works fine.

Change History (5)

comment:1 in reply to:  description Changed 12 years ago by james@…

Exact problem I am having. Looks like a dup of #3612.

  • James

comment:2 Changed 12 years ago by james@…

I was able to fix my ABC-HD channel recording without audio by just reversing the changes in 12439 in my latest copy of svn head. I not get audio from the recordings. I did see one item that stuck out in the changes that could be my problem and would need feedback from spikey to see if it is similar to his. I am not an expert, but looking at the source code, one of the new additions was for dvb time information from the stream. There is a define in libs/libmythtv/mpeg/mpegtables.h (revision 12439): @@ -182,7 +182,7 @@

DVB_SDT_PID = 0x0011, DVB_EIT_PID = 0x0012, DVB_RST_PID = 0x0013,

+ DVB_TDT_PID = 0x0014,

The DVB_TDT_PID (0x14) happens to be the exact PID id my channel that is not working is using for the Audio. Is this related to the problem? Is it filtering out the audio because it thinks it is a timecode PID? Here is a snip of my recording log showing the pids for video and audio on this channel:

Stream #0 pid(0x11) type(video-mpeg2 0x2)

Video Descriptor (0x2) length(3) Unknown(6) Descriptor (0x6) length(1)

Stream #1 pid(0x14) type(audio-ac3 0x81)

Registration Descriptor: 'AC-3' ATSC audio stream A/52 Audio Stream Descriptor full_srv(1) sample_rate(48kbps) bit_rate(=384kbps, 14)

bsid(8) bs_mode(0) channels(2/0) Dolby(Not Dolby surround encoded) mainID(0)

ISO-639 Language: code(eng) canonical(eng) eng(English) Unknown(6) Descriptor (0x6) length(1)

comment:3 Changed 12 years ago by danielk

can you try replacing this:

    add_pid.push_back(DVB_TDT_PID);
    add_stream_type.push_back(StreamID::PrivSec);
    _stream_data->AddListeningPID(DVB_TDT_PID);

with this:

    if (dvbchannel && (dvbchannel->GetSIStandard() == "dvb"))
    {
         add_pid.push_back(DVB_TDT_PID);
         add_stream_type.push_back(StreamID::PrivSec);
         _stream_data->AddListeningPID(DVB_TDT_PID);
    }

This is what we do in the mythtv-multirec branch, now that I look at this it is a pretty serious bug for recordings in non-DVB standard countries.

comment:4 Changed 12 years ago by james@…

Recompiled svn with above changes to dvbrecorder.cpp::AdjustFilters?() and I can get audio from the channel that was broken before. Changes appear to work. Fixed my problem with ABC-HD.

Thanks, James

comment:5 Changed 12 years ago by danielk

Resolution: fixed
Status: newclosed

(In [13751]) Fixes #3153. Refs #2703. Only listen for DVB TDT when the table standard is 'dvb' in DVBRecorder.

In [12439] I added code to unconditionally listen for the TDT table to the DVBRecorder, but this is incorrect. While it is recommended that ATSC streams avoid PID's that have special meaning in the DVB world this is not required and some broadcasters use it. In the case of #3153, ABC was using the DVB TDT pid for the audio stream.

I had already made this change in the multirec branch, but there it was to avoid this as theoretical problem. Since it's an actual problem for a MythTV user I've ported this over to head and James tested the fix.

Note: See TracTickets for help on using tickets.