andrewlewis 78ff4af6a7 Clean up AudioProcessor implementations
- Ensure that no memory is used by audio processors that are always inactive, by
  only allocating in flush() if active. If data was already allocated but a
  processor becomes inactive we assume that the allocation may be needed in
  future so do not remove it (e.g., in the case of ResamplingAudioProcessor).
- Make SilenceSkippingAudioProcessor set up its buffers in flush(), and clarify
  that it is always necessary to call flush() if configure() returns true.
- Make reset() reset all state for all processors.
- Use @Nullable state or empty arrays for inactive audio processor buffers.
- Miscellaneous style/consistency cleanup.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=190895783
2018-03-29 13:47:19 +01:00
..

ExoPlayer GVR extension

The GVR extension wraps the Google VR SDK for Android. It provides a GvrAudioProcessor, which uses GvrAudioSurround to provide binaural rendering of surround sound and ambisonic soundfields.

Getting the extension

The easiest way to use the extension is to add it as a gradle dependency:

implementation 'com.google.android.exoplayer:extension-gvr:2.X.X'

where 2.X.X is the version, which must match the version of the ExoPlayer library being used.

Alternatively, you can clone the ExoPlayer repository and depend on the module locally. Instructions for doing this can be found in ExoPlayer's top level README.

Using the extension

  • If using DefaultRenderersFactory, override DefaultRenderersFactory.buildAudioProcessors to return a GvrAudioProcessor.
  • If constructing renderers directly, pass a GvrAudioProcessor to MediaCodecAudioRenderer's constructor.
  • Javadoc: Classes matching com.google.android.exoplayer2.ext.gvr.* belong to this module.