The GStreamer Mastery Test

Have you even been sitting there using your GNU/Linux operating system, drifting away to your favorite music, and wondered, "What is the underlying mechanism that decodes my MP3/Ogg/FLAC music files?" Well, if you actually went and investigated, chances are you stumbled upon either GStreamer or xine, the two main media frameworks for modern GNU/Linux operating systems. This test is about GStreamer, although I have the utmost respect for the xine project.
This test will evaluate (1) How much general/intuitive knowledge you have about audio/video playback frameworks; (2) How much specific, programmatic knowledge you have about GStreamer; and (3) How normal are you (where normalcy is defined by a complete lack of GStreamer knowledge). This is my first real test, so enjoy! We'll start out with a very easy, unrelated question, and then move into murkier, more arcane territory...

1

How do you feel?

I do not understand the question.

The answer above turns me on.

I feel fine, thanks!

Meh/I'm awful/I'm bored/some other emotion.

2

How many sound cards AND speaker systems/pairs of headphones do you own?

What is the name of the part of a sound framework that manages many functions operating on the sound (increase its volume, change its pitch, adjust its sample format, redirect it to a sound card/disk, etc.) which are presented in a programmatic or user-controllable way?

A quaternion-valued symmetric manifold array.

A pipeline.

An oscilloscope.

A bunch of functions?

4

I have a sound card which accepts audio at a sample rate between 8000 Hz and 48000 Hz. I want to play a sound that is stored at a sample rate of 96000 Hz. Obviously, this is not possible without some sort of adjustment. What GStreamer base element would I use to allow this?

osssink

audioconvert

audioresample

idontknowsink

5

Why is mapping the sound card's dedicated "hardware buffer" into virtual memory (known as mmap or memory mapping) such a useful/important technique in sound frameworks?

...How else would it get from the sound card to my speakers?

To reduce the amount of work the sound hardware has to do.

To improve the reliability of media frameworks (keep them from crashing).

To reduce the latency of the sound, minimize drop-outs (clicks), and reduce memory usage.

6

True or False: If I use a Ghost Pad as the right-most sink pad in a Bin named "foo", I can connect foo's sink pad to *any* element's source pad, as long as I add the correct children inside foo.