pulseaudio

Test Plan

This test plan is not supposed to be complete; use it to guide your manual testing so they dont miss big functional areas that are part in the component; also this should be used as guideline to inspire the exploratory testing which should be adapted smartly based on the real content of a MP

  • Install latest (devel-proposed) image on phone
  • Install freshly build pulseaudio packages that are needed for landing and reboot
  • Testing basic audio support:
    • Check that there's a default card provided by the droid module:

      • phablet@ubuntu-phablet:~$ pactl list cards
        Card #0
                Name: droid_card.primary
                Driver: module-droid-card.c
                Owner Module: 7
                Properties:
                        droid.hw_module = "primary"
                        device.icon_name = "audio-card"
                Profiles:
                        primary-primary: primary output and primary input. (sinks: 1, sources: 1, priority. 300)
                        voicecall: Call mode (sinks: 0, sources: 0, priority. 0)
                        communication: Communication mode (sinks: 0, sources: 0, priority. 0)
                        ringtone: Ringtone mode (sinks: 0, sources: 0, priority. 0)
                        off: Off (sinks: 0, sources: 0, priority. 0)
                Active Profile: primary-primary
                Ports:
                        output-earpiece: Output to earpiece (priority: 200, latency offset: 0 usec)
                                Part of profile(s): primary-primary
                        output-speaker: Output to speaker (priority: 300, latency offset: 0 usec)
                                Part of profile(s): primary-primary
                        output-wired_headset: Output to wired headset (priority: 400, latency offset: 0 usec, not available)
                                Part of profile(s): primary-primary
                        output-wired_headphone: Output to wired headphone (priority: 400, latency offset: 0 usec, not available)
                                Part of profile(s): primary-primary
                        output-bluetooth_sco: Output to bluetooth sco (priority: 100, latency offset: 0 usec)
                                Part of profile(s): primary-primary
                        output-sco_headset: Output to sco headset (priority: 100, latency offset: 0 usec)
                                Part of profile(s): primary-primary
                        output-sco_carkit: Output to sco carkit (priority: 100, latency offset: 0 usec)
                                Part of profile(s): primary-primary
                        output-aux_digital: Output to aux digital (priority: 100, latency offset: 0 usec)
                                Part of profile(s): primary-primary
                        output-analog_dock_headset: Output to analog dock headset (priority: 100, latency offset: 0 usec)
                                Part of profile(s): primary-primary
                        output-digital_dock_headset: Output to digital dock headset (priority: 100, latency offset: 0 usec)
                                Part of profile(s): primary-primary
                        output-fm_tx: Output to fm tx (priority: 100, latency offset: 0 usec)
                                Part of profile(s): primary-primary
                        output-speaker+wired_headphone: Output to speaker+wired headphone (priority: 100, latency offset: 0 usec)
                                Part of profile(s): primary-primary
                        output-parking: Parking port (priority: 50, latency offset: 0 usec)
                                Part of profile(s): primary-primary
                        input-communication: Input from communication (priority: 100, latency offset: 0 usec)
                                Part of profile(s): primary-primary
                        input-ambient: Input from ambient (priority: 100, latency offset: 0 usec)
                                Part of profile(s): primary-primary
                        input-builtin_mic: Input from builtin mic (priority: 300, latency offset: 0 usec)
                                Part of profile(s): primary-primary
                        input-bluetooth_sco_headset: Input from bluetooth sco headset (priority: 100, latency offset: 0 usec)
                                Part of profile(s): primary-primary
                        input-wired_headset: Input from wired headset (priority: 400, latency offset: 0 usec, not available)
                                Part of profile(s): primary-primary
                        input-aux_digital: Input from aux digital (priority: 100, latency offset: 0 usec)
                                Part of profile(s): primary-primary
                        input-voice_call: Input from voice call (priority: 100, latency offset: 0 usec)
                                Part of profile(s): primary-primary
                        input-back_mic: Input from back mic (priority: 100, latency offset: 0 usec)
                                Part of profile(s): primary-primary
                        input-fm: Input from fm (priority: 100, latency offset: 0 usec)
                                Part of profile(s): primary-primary
                        input-matv: Input from matv (priority: 100, latency offset: 0 usec)
                                Part of profile(s): primary-primary
                        input-parking: Parking port (priority: 50, latency offset: 0 usec)
                                Part of profile(s): primary-primary
    • Import audio/video files into your phone, and try playing them using the music-app/mediaplayer-app
    • Testing basic audio recording with parecord and paplay:

      • phablet@ubuntu-phablet:~$ parecord /tmp/foobar.wav # hit control+c to stop recording
        phablet@ubuntu-phablet:~$ paplay /tmp/foobar.wav 
  • Audio roles:
    • Check that the sink-input used by media-hub when playing via music-app/mediaplayer-app has the multimedia media role:

      • phablet@ubuntu-phablet:~$ pactl list sink-inputs
        Sink Input #2
                Driver: protocol-native.c
                Owner Module: 10
                Client: 4
                Sink: 1
                Sample Specification: s16le 2ch 44100Hz
                Channel Map: front-left,front-right
                Format: pcm, format.sample_format = "\"s16le\""  format.channels = "2"  format.rate = "44100"  format.channel_map = "\"front-left,front-right\""
                Corked: yes
                Mute: no
                Volume: 0: 100% 1: 100%
                        0: 0.00 dB 1: 0.00 dB
                        balance 0.00
                Buffer Latency: 144399 usec
                Sink Latency: 92000 usec
                Resample method: n/a
                Properties:
                        media.role = "multimedia"
                        media.name = "'H.' by 'Tool'"
                        application.name = "media-hub-server"
                        native-protocol.peer = "UNIX socket client"
                        native-protocol.version = "28"
                        application.process.id = "2167"
                        application.process.user = "phablet"
                        application.process.host = "ubuntu-phablet"
                        application.process.binary = "media-hub-server"
                        application.language = "C"
                        application.process.machine_id = "e67af3a3186f485bb00521f8324bc635"
                        application.process.session_id = "c1"
                        module-stream-restore.id = "sink-input-by-media-role:multimedia"
                        media.title = "H."
                        media.artist = "Tool"
        
        Sink Input #14
                Driver: protocol-native.c
                Owner Module: 10
                Client: 4
                Sink: 1
                Sample Specification: s16le 2ch 44100Hz
                Channel Map: front-left,front-right
                Format: pcm, format.sample_format = "\"s16le\""  format.channels = "2"  format.rate = "44100"  format.channel_map = "\"front-left,front-right\""
                Corked: no
                Mute: no
                Volume: 0: 100% 1: 100%
                        0: 0.00 dB 1: 0.00 dB
                        balance 0.00
                Buffer Latency: 130249 usec
                Sink Latency: 92000 usec
                Resample method: n/a
                Properties:
                        media.role = "multimedia"
                        media.name = "'H.' by 'Tool'"
                        application.name = "media-hub-server"
                        native-protocol.peer = "UNIX socket client"
                        native-protocol.version = "28"
                        application.process.id = "2167"
                        application.process.user = "phablet"
                        application.process.host = "ubuntu-phablet"
                        application.process.binary = "media-hub-server"
                        application.language = "C"
                        application.process.machine_id = "e67af3a3186f485bb00521f8324bc635"
                        application.process.session_id = "c1"
                        module-stream-restore.id = "sink-input-by-media-role:multimedia"
                        media.title = "H."
                        media.artist = "Tool"
    • Check that the sink-input used by media-hub when playing ringtone/notification has the alert media role:

      • phablet@ubuntu-phablet:~$ pactl list sink-inputs
        Sink Input #17
                Driver: protocol-native.c
                Owner Module: 10
                Client: 4
                Sink: 1
                Sample Specification: float32le 2ch 44100Hz
                Channel Map: front-left,front-right
                Format: pcm, format.sample_format = "\"float32le\""  format.channels = "2"  format.rate = "44100"  format.channel_map = "\"front-left,front-right\""
                Corked: no
                Mute: no
                Volume: 0: 100% 1: 100%
                        0: 0.00 dB 1: 0.00 dB
                        balance 0.00
                Buffer Latency: 143650 usec
                Sink Latency: 92000 usec
                Resample method: copy
                Properties:
                        media.role = "alert"
                        media.name = "Playback Stream"
                        application.name = "media-hub-server"
                        native-protocol.peer = "UNIX socket client"
                        native-protocol.version = "28"
                        application.process.id = "2167"
                        application.process.user = "phablet"
                        application.process.host = "ubuntu-phablet"
                        application.process.binary = "media-hub-server"
                        application.language = "C"
                        application.process.machine_id = "e67af3a3186f485bb00521f8324bc635"
                        application.process.session_id = "c1"
                        module-stream-restore.id = "sink-input-by-media-role:alert"
    • Check that the sink-input used by media-hub when playing alarm has the alarm media role:

      • phablet@ubuntu-phablet:~$ pactl list sink-inputs
        Sink Input #19
                Driver: protocol-native.c
                Owner Module: 10
                Client: 18
                Sink: 1
                Sample Specification: float32le 2ch 44100Hz
                Channel Map: front-left,front-right
                Format: pcm, format.sample_format = "\"float32le\""  format.channels = "2"  format.rate = "44100"  format.channel_map = "\"front-left,front-right\""
                Corked: no
                Mute: no
                Volume: 0:  79% 1:  79%
                        0: -6.11 dB 1: -6.11 dB
                        balance 0.00
                Buffer Latency: 149455 usec
                Sink Latency: 92000 usec
                Resample method: copy
                Properties:
                        media.role = "alarm"
                        media.name = "Playback Stream"
                        application.name = "indicator-datetime-service"
                        native-protocol.peer = "UNIX socket client"
                        native-protocol.version = "28"
                        application.process.id = "2260"
                        application.process.user = "phablet"
                        application.process.host = "ubuntu-phablet"
                        application.process.binary = "indicator-datetime-service"
                        application.language = "en_US.UTF-8"
                        application.process.machine_id = "e67af3a3186f485bb00521f8324bc635"
                        application.process.session_id = "c1"
                        module-stream-restore.id = "sink-input-by-media-role:alarm"
    • Check that there is sink-input using the phone media role when a call is active:

      • phablet@ubuntu-phablet:~$ pactl list sink-inputs
        Sink Input #21
                Driver: droid-sink.c
                Owner Module: 7
                Client: n/a
                Sink: 1
                Sample Specification: s16le 2ch 44100Hz
                Channel Map: front-left,front-right
                Format: pcm, format.sample_format = "\"s16le\""  format.rate = "44100"  format.channels = "2"  format.channel_map = "\"front-left,front-right\""
                Corked: yes
                Mute: no
                Volume: 0: 100% 1: 100%
                        0: 0.00 dB 1: 0.00 dB
                        balance 0.00
                Buffer Latency: 0 usec
                Sink Latency: 92000 usec
                Resample method: n/a
                Properties:
                        media.name = "Virtual Stream for Voice Volume Control (Droid)"
                        media.role = "phone"
                        module-stream-restore.id = "sink-input-by-media-role:phone"
  • Corking and ducking:
    • Play an audio using the music-app and start a call. The audio from the music-app should be corked while the phone call is active.
    • Play an audio/video using the webbrowser and trigger an alarm. The audio from the webbrowser should be corked while the alarm call is active.
    • Play an audio/video using the webbrowser and trigger a ringtone/notification. The audio from the webbrowser should be reduced (ducking effect) while the ringtone/notification is active.
  • Routing:
    • Play a song with music-app and connect a bluetooth device (with A2DP). The audio from music-app should automatically move to the bluetooth device.
    • While playing a song with a bluetooth device connected, turn the bluetooth device off. The audio from music-app should automatically move to the internal speaker.

Process/Merges/TestPlan/pulseaudio (last edited 2014-10-09 14:58:35 by bade2fc5)