[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