/*!\mainpage WebM Codec SDK

  \section main_contents Page Contents
  - \ref main_intro
  - \ref main_startpoints
  - \ref main_support

  \section main_intro Introduction
  Welcome to the WebM Codec SDK. This SDK allows you to integrate your
  applications with the VP8 and VP9 video codecs, high quality, royalty free,
  open source codecs deployed on billions of computers and devices worldwide.

  This distribution of the WebM Codec SDK includes the following support:

  \if vp8_encoder
  - \ref vp8_encoder
  \endif
  \if vp8_decoder
  - \ref vp8_decoder
  \endif


  \section main_startpoints Starting Points
  - Consult the \ref changelog for a complete list of improvements in this
    release.
  - The \ref readme contains instructions on recompiling the sample applications.
  - Read the \ref usage "usage" for a narrative on codec usage.
  - Read the \ref samples "sample code" for examples of how to interact with the
    codec.
  - \ref codec reference
  \if encoder
  - \ref encoder reference
  \endif
  \if decoder
  - \ref decoder reference
  \endif

  \section main_support Support Options & FAQ
  The WebM project is an open source project supported by its community. For
  questions about this SDK, please mail the apps-devel@webmproject.org list.
  To contribute, see http://www.webmproject.org/code/contribute and mail
  codec-devel@webmproject.org.
*/

/*!\page changelog CHANGELOG
   \verbinclude CHANGELOG
*/

/*!\page readme README
   \verbinclude README
*/

/*!\defgroup codecs Supported Codecs */
