[mythtv] [PATCH] Big DVB Patch V3.5 - MPEG TS

Taylor Jacob rtjacob at earthlink.net
Tue Jan 11 09:33:18 EST 2005


> -          siparser.cpp and dvbrecorder.cpp now insert *all* descriptors
> from the PMT, not just the first

I agree this needs to be done at some point.

> -          mpegts.c looks for AC3 data in the private stream, and then
> treats it as AC3 data

OK.. After staring at your patch I finally understand what is going on here.. I
am not going to apply this because it hacks up the ffmpeg code and that would
probbably make it harder for Issac to merge in.. The problem is that your AC3
data comes as PrivateData type 0x06 in the PMT with an AC3 descriptor.. This is
getting re-written just the same in the stripped TS that we save.. What needs to
happen is that anything AC3 needs to be written as stream type 0x81 in the PMT..
This is of course a private stream type, but FFMPeg only expects AC3 there.. All
of the DVB-S services in North America use 0x81 for AC3, as as as ATSC.. Hence
me never seeing a problem here..

You can look at the CreatePMT() in dvbrecorder.cpp code and its possible
changing the one line where (*es).Orig_Type is written to the PMT to something
like this.

if ((*es).Type == ES_TYPE_AUDIO_AC3)
    pmt[p++] = 0x81;
else
    pmt[p++] = (*es).Orig_Type;

Give this a shot and let me know if this solves your issues..

I personally don't like always using the 0x81 descriptor for AC3 audio since its
a private type, but it seems to be pretty standardly accepted.  Mplayer and Xine
are ok with it, as well as ffmpeg, plus this doesn't change ffmpeg which is
probbably a plus.

I am not going to put this snippet into my codebase unless Jesper wants it in,
and you let me know it works..

Taylor


More information about the mythtv-dev mailing list