Rate Converter Plugin Using Freescale ASRC Resampler
====================================================

The plugin in asrc subdirectory is an external rate converter using
the Freescale ASRC hardware resampler. You can use this rate converter
plugin by defining a rate PCM with "converter" 
parameter, such as:

	pcm.my_rate {
		type rate
		slave.pcm "hw"
		converter "asrcrate"
	}

The plug plugin has also a similar field, "rate_converter".

Or, more easily, define a global variable "defaults.pcm.rate_converter",
which is used as the default converter type by plug and rate plugins:

	defaults.pcm.rate_converter "asrcrate"

Write the above in your ~/.asoundrc or /etc/asound.conf, such as

defaults.pcm.rate_converter "asrcrate"

pcm.dmix_44100 {
    type dmix
    ipc_key 5678293
    ipc_key_add_uid yes
    slave{
        pcm "hw:0,0"
        period_time 10000
        format S16_LE
        rate 44100
    }
}

pcm.asrc {
    type plug
    route_policy "average"
    slave.pcm "dmix_44100"
}

The following converter types are available:

  - asrcrate        Use freescale ASRC hardware

Restrictions:

The ASRC hardware can at most support 3 instances and 10 channels
simultanously. If you want to make use of asrc plugins, make sure
you won't create more than 3 asrc plugin instances, and total number
of converting channels is less than or equal to 10. For example, you
can run 3 asrc converters with channels 2, 2, 6, while you can't run
2 asrc converters with channels 6, 6.

ASRC hardware can only support some fixed sample rates, don't make use it if you don't know which rates are in your cases.
Input: 8000 16000 22050 32000 44100 48000 64000 88200 96000 176400 192000
Output: 32000 44100 48000 64000 88200 96000 176400 192000

