[mythtv] [mythtv-commits] Ticket #1104: multi channel audiosupport
Mark Spieth
mark at dclabs.com.au
Mon Nov 5 23:37:01 UTC 2007
>> #1104: multi channel audio support
>> -------------------------+-------------------------------------------
>> Reporter: Mark Spieth | Owner: ijr
>> Type: enhancement | Status: new
>> Priority: minor | Milestone: 0.21
>> Component: mythtv | Version: head
>> Severity: medium | Resolution:
>> Mlocked: 0 |
>> -------------------------+-------------------------------------------
>
> Hi Mark,
>
> I had quick look at mythtv_ac3.29.patch and noticed a few things:
>
> -the #if MAXCHANNELSELECT in avformatdecoder is ugly and seems to be
> unneeded
I think it is needed. what it does is allow maxchannels generated by the
audio decoder to be tested and used further downstream where the number of
channels available configures the output device.
It lets the codec do max channels that the play can cope with. this can be
different in mythcommflag vs alsa.
I cheated and reused the cdp field for how many channels could be provided
by the coded (as opposed to the number of channels asked for) for this
purpose as it is unused by audio codecs. The re-encoder in audiooutput needs
this info too so it matches the decoder.
> -are the changes to libavcodec/ac3dec really necessary? if yes, can you
> try to get them upstream?
only change to ac3 is now in ac3_parser.c to make ac3_sync globally exported
(remove static).
a52dec.c had extensive changes and has been removed so it doesnt matter
anymore. this was mainly for channel ordering to make it the same as ac3dec
and dtsdec. not sure about the channel ordering in the new dtsdec
replacement (dca?).
> -you're duplicating the DTS parsing functions in libmyth
this is true. it needs to be defined in libmyth so perhaps avf can use it
from there. there may even be code to do the same thing in lavc now but
after a quick look dca doesnt seem to have a sync.
funnily enough I was doing some tests on the latest patch only a couple of
hours before you committed :-)
also I noticed that with libfaad and libfaac enabled, things dont link
properly for me.
unless Im doing something terribly wrong, I had to put in libavcodec.pro
contains( CONFIG_LIBFAAC, yes ) {
SOURCES *= libfaac.c
LIBS += -lfaac
}
contains( CONFIG_LIBFAAD, yes ) {
SOURCES *= libfaad.c
!contains( CONFIG_LIBFAADBIN, yes ) {
LIBS += -lfaad
}
}
also LIBA52 in this seems superfluous since a52dec is gone.
an OT question about how mpeg timestamp wrap is now handled. I havent
figured it out yet but have removed my hack which resets the start for the
stream. I noticed there is still a remnant in avf which still cancels the
effects for seek of start offset. did you mean this? (search for lsb3full in
avf.cpp).
unless ic->starttime in utils.c is set correctly this will do bad things.
I can get a patch for utils.c which Ive been using for years if it will
help.
My hack for mpeg timestamps set the start of stream to 0 and did the correct
wrap. This only works for 26.5 hrs on an mpeg stream so is not universally
generic but good enough.
How does the new one work?
cheers
mark
More information about the mythtv-dev
mailing list