[mythtv-commits] Ticket #10086: 2->6 channel upmix results in buffer underruns
MythTV
noreply at mythtv.org
Tue Oct 11 02:43:15 UTC 2011
#10086: 2->6 channel upmix results in buffer underruns
---------------------------------------+-----------------------------------
Reporter: jpoet | Owner: jyavenard
Type: Bug Report - General | Status: new
Priority: minor | Milestone: unknown
Component: MythTV - Audio Output | Version: Unspecified
Severity: medium | Keywords: audio upmixer
Ticket locked: 0 | underrun
---------------------------------------+-----------------------------------
Watching a show with DD2.0 and timestretch enabled results in a log full
of
{{{
AudioOutputBase audio/audiooutputalsa.cpp:546 (WriteAudio) - ALSA:
WriteAudio: buffer underrun
}}}
Shows with native DD5.1 do not have this problem.
Turning off the 2.0 -> 5.1 upmixer fixes the problem.
I am ''guessing'' the problem is with the ALSA parameters being chosen,
but I don't know what needs tweaked.
With a 2.0 -> 5.1 upmixer enabled, I see
{{{
CoreContext audio/audiooutputbase.cpp:744 (Reconfigure) - AO: Opening
audio device 'hdmi:CARD=NVidia,DEV=3' ch 6(2) sr 48000 sf signed 32 bit
reenc 1
CoreContext audio/audiooutputalsa.cpp:139 (TryOpenDevice) - ALSA:
OpenDevice hdmi:CARD=NVidia,DEV=3
CoreContext audio/audiooutputalsa.cpp:634 (SetParameters) - ALSA:
SetParameters(format=10, channels=6, rate=48000, buffer_time=500000,
period_time=4)
CoreContext audio/audiooutputalsa.cpp:692 (SetParameters) - ALSA: Buffer
size range from 32 to 1398096
CoreContext audio/audiooutputalsa.cpp:695 (SetParameters) - ALSA: Period
size range from 16 to 699040
CoreContext audio/audiooutputalsa.cpp:712 (SetParameters) - ALSA: Buffer
time = 500000 us
CoreContext audio/audiooutputalsa.cpp:718 (SetParameters) - ALSA: Period
time = 4 periods
CoreContext audio/audiooutputalsa.cpp:727 (SetParameters) - ALSA: Buffer
size = 24000 | Period size = 6000
CoreContext audio/audiooutputbase.cpp:761 (Reconfigure) - AO: Audio
fragment size: 72000
}}}
With 2.0 audio, but the upmixer disabled, I see:
{{{
CoreContext audio/audiooutputbase.cpp:744 (Reconfigure) - AO: Opening
audio device 'hdmi:CARD=NVidia,DEV=3' ch 2(2) sr 48000 sf signed 16 bit
reenc 1
CoreContext audio/audiooutputalsa.cpp:139 (TryOpenDevice) - ALSA:
OpenDevice hdmi:CARD=NVidia,DEV=3
CoreContext audio/audiooutputalsa.cpp:634 (SetParameters) - ALSA:
SetParameters(format=2, channels=2, rate=48000, buffer_time=500000,
period_time=4)
CoreContext audio/audiooutputalsa.cpp:692 (SetParameters) - ALSA: Buffer
size range from 64 to 8388608
CoreContext audio/audiooutputalsa.cpp:695 (SetParameters) - ALSA: Period
size range from 32 to 4194304
CoreContext audio/audiooutputalsa.cpp:712 (SetParameters) - ALSA: Buffer
time = 500000 us
CoreContext audio/audiooutputalsa.cpp:718 (SetParameters) - ALSA: Period
time = 5 periods
CoreContext audio/audiooutputalsa.cpp:727 (SetParameters) - ALSA: Buffer
size = 24000 | Period size = 4800
CoreContext audio/audiooutputbase.cpp:761 (Reconfigure) - AO: Audio
fragment size: 9600
}}}
With native DD5.1, I see:
{{{
CoreContext audio/audiooutputbase.cpp:744 (Reconfigure) - AO: Opening
audio device 'hdmi:CARD=NVidia,DEV=3' ch 6(6) sr 48000 sf signed 16 bit
reenc 1
CoreContext audio/audiooutputalsa.cpp:139 (TryOpenDevice) - ALSA:
OpenDevice hdmi:CARD=NVidia,DEV=3
CoreContext audio/audiooutputalsa.cpp:634 (SetParameters) - ALSA:
SetParameters(format=2, channels=6, rate=48000, buffer_time=500000,
period_time=4)
CoreContext audio/audiooutputalsa.cpp:692 (SetParameters) - ALSA: Buffer
size range from 64 to 2796192
CoreContext audio/audiooutputalsa.cpp:695 (SetParameters) - ALSA: Period
size range from 32 to 1398080
CoreContext audio/audiooutputalsa.cpp:712 (SetParameters) - ALSA: Buffer
time = 500000 us
CoreContext audio/audiooutputalsa.cpp:718 (SetParameters) - ALSA: Period
time = 5 periods
CoreContext audio/audiooutputalsa.cpp:727 (SetParameters) - ALSA: Buffer
size = 24000 | Period size = 4800
CoreContext audio/audiooutputbase.cpp:761 (Reconfigure) - AO: Audio
fragment size: 28800
}}}
Another thing I noticed -- When the upmixer is turned off, or the show is
native DD5.1, it looks like timestretch is invoking a "Reconfigure", which
I don't see when upmix is enabled.
I am attaching three logs -- one with upmixer enabled, another with it
disabled, and one for a native DD5.1 show.
--
Ticket URL: <http://code.mythtv.org/trac/ticket/10086>
MythTV <http://code.mythtv.org/trac>
MythTV Media Center
More information about the mythtv-commits
mailing list