Fix multichannel downmix pause bug on video player

Pausing a video player will cause the track audio mixer to be
 disabled, which causes the downmixer to be deleted. When reenabled,
 the track channel mask hasn't changed but the downmixer is there
 anymore.
Fixed by:
- instanciating a downmixer when the AudioMixer track
 gets initialized (in getTrackName(), now taking a channel mask
 as input), and deleted when in deleteTrackName().
- when the channel changes on a track, check whether it
 needs a downmixer or not. Preparing a track for downmix
 automatically removes the old downmixer if there was one.

Also: initialize the track downmixerBufferProvider field
 when AudioMixer is instanciated, so we can safely call
 delete on it in AudioMixer's destructor, in case
 deleteTrackName() wasn't called before the mixer was
 destroyed.

Change-Id: I589b0781cda5b3c82f85b561c52b08546cac21f8
diff --git a/services/audioflinger/FastMixer.cpp b/services/audioflinger/FastMixer.cpp
index 1543152..14954f7 100644
--- a/services/audioflinger/FastMixer.cpp
+++ b/services/audioflinger/FastMixer.cpp
@@ -243,7 +243,8 @@
                     AudioBufferProvider *bufferProvider = fastTrack->mBufferProvider;
                     ALOG_ASSERT(bufferProvider != NULL && fastTrackNames[i] == -1);
                     if (mixer != NULL) {
-                        name = mixer->getTrackName();
+                        // calling getTrackName with default channel mask
+                        name = mixer->getTrackName(AUDIO_CHANNEL_OUT_STEREO);
                         ALOG_ASSERT(name >= 0);
                         fastTrackNames[i] = name;
                         mixer->setBufferProvider(name, bufferProvider);