# Package com.google.android.exoplayer2.util

- Interface Summary
  Interface | Description
  --- | ---
  Clock | An interface through which system clocks can be read and `HandlerWrapper`s created.
  Consumer<T> | Represents an operation that accepts a single input argument and returns no result.
  EGLSurfaceTexture.TextureImageListener | Listener to be called when the texture image on `SurfaceTexture` has been updated.
  ErrorMessageProvider<T extends Throwable> | Converts throwables into error codes and user readable error messages.
  HandlerWrapper | An interface to call through to a `Handler`.
  HandlerWrapper.Message | A message obtained from the handler.
  ListenerSet.Event<T> | An event sent to a listener.
  ListenerSet.IterationFinishedEvent<T> | An event sent to a listener when all other events sent during one `Looper` message queue iteration were handled by the listener.
  MediaClock | Tracks the progression of media time.
  NetworkTypeObserver.Listener | A listener for network type changes.
  SntpClient.InitializationCallback | Callback for calls to `SntpClient.initialize(Loader, InitializationCallback)`.

- Class Summary
  Class | Description
  --- | ---
  Assertions | Provides methods for asserting the truth of expressions and properties.
  AtomicFile | A helper class for performing atomic operations on a file by creating a backup file until a write has successfully completed.
  BundleableUtils | Utilities for `Bundleable`.
  BundleUtil | Utilities for `Bundle`.
  CodecSpecificDataUtil | Provides utilities for handling various types of codec-specific data.
  ColorParser | Parser for color expressions found in styling formats, e.g.
  ConditionVariable | An interruptible condition variable.
  CopyOnWriteMultiset<E> | An unordered collection of elements that allows duplicates, but also allows access to a set of unique elements.
  DebugTextViewHelper | A helper class for periodically updating a `TextView` with debug information obtained from a `SimpleExoPlayer`.
  EGLSurfaceTexture | Generates a `SurfaceTexture` using EGL/GLES functions.
  EventLogger | Logs events from `Player` and other core components using `Log`.
  FileTypes | Defines common file type constants and helper methods.
  FlacConstants | Defines constants used by the FLAC extractor.
  FlagSet | A set of integer flags.
  FlagSet.Builder | A builder for `FlagSet` instances.
  GlUtil | GL utilities.
  GlUtil.Attribute | GL attribute, which can be attached to a buffer with `GlUtil.Attribute.setBuffer(float[], int)`.
  GlUtil.Uniform | GL uniform, which can be attached to a sampler using `GlUtil.Uniform.setSamplerTexId(int, int)`.
  IntArrayQueue | Array-based unbounded queue for int primitives with amortized O(1) add and remove.
  LibraryLoader | Configurable loader for native libraries.
  ListenerSet<T> | A set of listeners.
  Log | Wrapper around `Log` which allows to set the log level.
  LongArray | An append-only, auto-growing `long[]`.
  MediaFormatUtil | Helper class containing utility methods for managing `MediaFormat` instances.
  MimeTypes | Defines common MIME types and helper methods.
  NalUnitUtil | Utility methods for handling H.264/AVC and H.265/HEVC NAL units.
  NalUnitUtil.PpsData | Holds data parsed from a picture parameter set NAL unit.
  NalUnitUtil.SpsData | Holds data parsed from a sequence parameter set NAL unit.
  NetworkTypeObserver | Observer for network type changes.
  NetworkTypeObserver.Config | Configuration for `NetworkTypeObserver`.
  NotificationUtil | Utility methods for displaying `Notifications`.
  ParsableBitArray | Wraps a byte array, providing methods that allow it to be read as a bitstream.
  ParsableByteArray | Wraps a byte array, providing a set of methods for parsing data from it.
  ParsableNalUnitBitArray | Wraps a byte array, providing methods that allow it to be read as a NAL unit bitstream.
  PriorityTaskManager | Allows tasks with associated priorities to control how they proceed relative to one another.
  RepeatModeUtil | Util class for repeat mode handling.
  ReusableBufferedOutputStream | This is a subclass of `BufferedOutputStream` with a `ReusableBufferedOutputStream.reset(OutputStream)` method that allows an instance to be re-used with another underlying output stream.
  RunnableFutureTask<R,​E extends Exception> | A `RunnableFuture` that supports additional uninterruptible operations to query whether execution has started and finished.
  SlidingPercentile | Calculate any percentile over a sliding window of weighted values.
  SntpClient | Static utility to retrieve the device time offset using SNTP.
  StandaloneMediaClock | A `MediaClock` whose position advances with real time based on the playback parameters when started.
  SystemClock | The standard implementation of `Clock`, an instance of which is available via `Clock.DEFAULT`.
  TimedValueQueue<V> | A utility class to keep a queue of values with timestamps.
  TimestampAdjuster | Adjusts and offsets sample timestamps.
  TraceUtil | Calls through to `Trace` methods on supported API levels.
  UriUtil | Utility methods for manipulating URIs.
  Util | Miscellaneous utility methods.
  XmlPullParserUtil | `XmlPullParser` utility methods.

- Exception Summary
  Exception | Description
  --- | ---
  EGLSurfaceTexture.GlException | A runtime exception to be thrown if some EGL operations failed.
  PriorityTaskManager.PriorityTooLowException | Thrown when task attempts to proceed when another registered task has a higher priority.

- Annotation Types Summary
  Annotation Type | Description
  --- | ---
  EGLSurfaceTexture.SecureMode | Secure mode to be used by the EGL surface and context.
  FileTypes.Type | File types.
  NonNullApi | Annotation to declare all type usages in the annotated instance as `Nonnull`, unless explicitly marked with a nullable annotation.
  NotificationUtil.Importance | Notification channel importance levels.
  RepeatModeUtil.RepeatToggleModes | Set of repeat toggle modes.
  UnknownNull | Annotation for specifying unknown nullness.