FFmpeg maintainers
==================

Below is a list of the people maintaining different parts of the
FFmpeg code.


Project Leader
==============

Michael Niedermayer
  final design decisions


Applications
============

ffmpeg:
  ffmpeg.c                              Michael Niedermayer

  Video Hooks:
    vhook
    vhook/watermark.c                   Marcus Engene
    vhook/ppm.c
    vhook/drawtext.c
    vhook/fish.c
    vhook/null.c
    vhook/imlib2.c

ffplay:
  ffplay.c                              Michael Niedermayer

ffserver:
  ffserver.c, ffserver.h                Baptiste Coudurier

Commandline utility code:
  cmdutils.c, cmdutils.h                Michael Niedermayer

QuickTime faststart:
  qt-faststart.c                        Mike Melanson


Miscellaneous Areas
===================

documentation                           Mike Melanson, Diego Biurrun
website                                 Robert Swain
build system (configure,Makefiles)      Diego Biurrun, Mans Rullgard
project server                          Diego Biurrun, Mans Rullgard
mailinglists                            Michael Niedermayer, Baptiste Coudurier
presets                                 Robert Swain
release management                      Diego Biurrun, Reinhard Tartler


libavutil
=========

External Interfaces:
  libavutil/avutil.h                    Michael Niedermayer
Internal Interfaces:
  libavutil/common.h                    Michael Niedermayer

Other:
  intfloat*                             Michael Niedermayer
  rational.c, rational.h                Michael Niedermayer
  mathematics.c, mathematics.h          Michael Niedermayer
  integer.c, integer.h                  Michael Niedermayer
  bswap.h


libavcodec
==========

Generic Parts:
  External Interfaces:
    avcodec.h                           Michael Niedermayer
  utility code:
    utils.c                             Michael Niedermayer
    mem.c                               Michael Niedermayer
    opt.c, opt.h                        Michael Niedermayer
  arithmetic expression evaluator:
    eval.c                              Michael Niedermayer
  audio and video frame extraction:
    parser.c                            Michael Niedermayer
  bitstream reading:
    bitstream.c, bitstream.h            Michael Niedermayer
  CABAC:
    cabac.h, cabac.c                    Michael Niedermayer
  DSP utilities:
    dsputils.c, dsputils.h              Michael Niedermayer
  entropy coding:
    rangecoder.c, rangecoder.h          Michael Niedermayer
    lzw.*                               Michael Niedermayer
  floating point AAN DCT:
    faandct.c, faandct.h                Michael Niedermayer
  Golomb coding:
    golomb.c, golomb.h                  Michael Niedermayer
  LPC:
    lpc.c, lpc.h                        Justin Ruggles
  motion estimation:
    motion*                             Michael Niedermayer
  rate control:
    ratecontrol.c                       Michael Niedermayer
    libxvid_rc.c                        Michael Niedermayer
  simple IDCT:
    simple_idct.c, simple_idct.h        Michael Niedermayer
  postprocessing:
    libpostproc/*                       Michael Niedermayer
  vdpau:
    vdpau*                              Carl Eugen Hoyos

Codecs:
  4xm.c                                 Michael Niedermayer
  8bps.c                                Roberto Togni
  8svx.c                                Jaikrishnan Menon
  aasc.c                                Kostya Shishkov
  aac.[ch], aactab.[ch], aacdectab.h    Robert Swain
  ac3*                                  Justin Ruggles
  alacenc.c                             Jaikrishnan Menon
  apedec.c                              Kostya Shishkov
  asv*                                  Michael Niedermayer
  atrac3*                               Benjamin Larsson
  bmp.c                                 Mans Rullgard, Kostya Shishkov
  cavs*                                 Stefan Gehrer
  cinepak.c                             Roberto Togni
  cljr                                  Alex Beregszaszi
  cook.c, cookdata.h                    Benjamin Larsson
  cscd.c                                Reimar Doeffinger
  dca.c                                 Kostya Shishkov, Benjamin Larsson
  dnxhd*                                Baptiste Coudurier
  dpcm.c                                Mike Melanson
  dxa.c                                 Kostya Shishkov
  dv.c                                  Roman Shaposhnik
  eacmv*, eaidct*, eat*                 Peter Ross
  ffv1.c                                Michael Niedermayer
  flacdec.c                             Alex Beregszaszi, Justin Ruggles
  flacenc.c                             Justin Ruggles
  flashsv*                              Benjamin Larsson
  flicvideo.c                           Mike Melanson
  g726.c                                Roman Shaposhnik
  gifdec.c                              Baptiste Coudurier
  h264*                                 Loren Merritt, Michael Niedermayer
  h261*                                 Michael Niedermayer
  h263*                                 Michael Niedermayer
  huffyuv.c                             Michael Niedermayer
  idcinvideo.c                          Mike Melanson
  imc*                                  Benjamin Larsson
  indeo2*                               Kostya Shishkov
  interplayvideo.c                      Mike Melanson
  jpeg_ls.c                             Kostya Shishkov
  kmvc.c                                Kostya Shishkov
  lcl*.c                                Roberto Togni
  libgsm.c                              Michel Bardiaux
  libopenjpeg.c                         Jaikrishnan Menon
  libx264.c                             Mans Rullgard, Jason Garrett-Glaser
  loco.c                                Kostya Shishkov
  lzo.h, lzo.c                          Reimar Doeffinger
  mdec.c                                Michael Niedermayer
  mimic.c                               Ramiro Polla
  mjpeg.c                               Michael Niedermayer
  mmvideo.c                             Peter Ross
  mpc*                                  Kostya Shishkov
  mpeg12.c, mpeg12data.h                Michael Niedermayer
  mpegvideo.c, mpegvideo.h              Michael Niedermayer
  msmpeg4.c, msmpeg4data.h              Michael Niedermayer
  msrle.c                               Mike Melanson
  msvideo1.c                            Mike Melanson
  nellymoserdec.c                       Benjamin Larsson
  nuv.c                                 Reimar Doeffinger
  pcx.c                                 Ivo van Poorten
  ptx.c                                 Ivo van Poorten
  qcelp*                                Reynaldo H. Verdejo Pinochet
  qdm2.c, qdm2data.h                    Roberto Togni, Benjamin Larsson
  qdrw.c                                Kostya Shishkov
  qpeg.c                                Kostya Shishkov
  qtrle.c                               Mike Melanson
  ra144.c, ra144.h, ra288.c, ra288.h    Roberto Togni
  resample2.c                           Michael Niedermayer
  rl2.c                                 Sascha Sommer
  rpza.c                                Roberto Togni
  rtjpeg.c, rtjpeg.h                    Reimar Doeffinger
  rv10.c                                Michael Niedermayer
  rv3*                                  Kostya Shishkov
  rv4*                                  Kostya Shishkov
  s3tc*                                 Ivo van Poorten
  smc.c                                 Mike Melanson
  snow.c                                Michael Niedermayer, Loren Merritt
  sonic.c                               Alex Beregszaszi
  sunrast.c                             Ivo van Poorten
  svq3.c                                Michael Niedermayer
  targa.c                               Kostya Shishkov
  tiff.c                                Kostya Shishkov
  truemotion1*                          Mike Melanson
  truemotion2*                          Kostya Shishkov
  truespeech.c                          Kostya Shishkov
  tscc.c                                Kostya Shishkov
  tta.c                                 Alex Beregszaszi
  txd.c                                 Ivo van Poorten
  ulti*                                 Kostya Shishkov
  vb.c                                  Kostya Shishkov
  vc1*                                  Kostya Shishkov
  vcr1.c                                Michael Niedermayer
  vmnc.c                                Kostya Shishkov
  vorbis_enc.c                          Oded Shimon
  vorbis_dec.c                          Denes Balatoni
  vp3*                                  Mike Melanson
  vp5                                   Aurelien Jacobs
  vp6                                   Aurelien Jacobs
  vqavideo.c                            Mike Melanson
  wavpack.c                             Kostya Shishkov
  wmv2.c                                Michael Niedermayer
  wnv1.c                                Kostya Shishkov
  xan.c                                 Mike Melanson
  xl.c                                  Kostya Shishkov
  xvmc.c                                Ivan Kalvachev
  zmbv*                                 Kostya Shishkov


libavdevice
===========
  External Interface:
    libavdevice/avdevice.h


  libdc1394.c                           Roman Shaposhnik
  v4l2.c                                Luca Abeni
  vfwcap.c                              Ramiro Polla


libavformat
===========

Generic parts:
  External Interface:
    libavformat/avformat.h              Michael Niedermayer
  Utility Code:
    libavformat/utils.c                 Michael Niedermayer


Muxers/Demuxers:
  4xm.c                                 Mike Melanson
  adtsenc.c                             Robert Swain
  aiff.c                                Baptiste Coudurier
  ape.c                                 Kostya Shishkov
  avi*                                  Michael Niedermayer
  crc.c                                 Michael Niedermayer
  daud.c                                Reimar Doeffinger
  dv.c                                  Roman Shaposhnik
  dxa.c                                 Kostya Shishkov
  ffm*                                  Baptiste Coudurier
  flac*                                 Justin Ruggles
  flic.c                                Mike Melanson
  flvdec.c, flvenc.c                    Michael Niedermayer
  gxf.c                                 Reimar Doeffinger
  gxfenc.c                              Baptiste Coudurier
  idcin.c                               Mike Melanson
  idroq.c                               Mike Melanson
  iff.c                                 Jaikrishnan Menon
  ipmovie.c                             Mike Melanson
  img2.c                                Michael Niedermayer
  iss.c                                 Stefan Gehrer
  libnut.c                              Oded Shimon
  lmlm4.c                               Ivo van Poorten
  matroska.c                            Aurelien Jacobs
  matroskaenc.c                         David Conrad
  mm.c                                  Peter Ross
  mov.c                                 Michael Niedermayer, Baptiste Coudurier
  movenc.c                              Michael Niedermayer, Baptiste Coudurier
  mpc.c                                 Kostya Shishkov
  mpeg.c                                Michael Niedermayer
  mpegenc.c                             Michael Niedermayer
  mpegts*                               Mans Rullgard
  msnwc_tcp.c                           Ramiro Polla
  mtv.c                                 Reynaldo H. Verdejo Pinochet
  mxf*                                  Baptiste Coudurier
  nsvdec.c                              Francois Revol
  nut.c                                 Michael Niedermayer
  nuv.c                                 Reimar Doeffinger
  oggdec.c, oggdec.h                    Mans Rullgard
  oggenc.c                              Baptiste Coudurier
  oggparsevorbis.c                      Mans Rullgard
  oggparseogm.c                         Mans Rullgard
  psxstr.c                              Mike Melanson
  pva.c                                 Ivo van Poorten
  r3d.c                                 Baptiste Coudurier
  raw.c                                 Michael Niedermayer
  rl2.c                                 Sascha Sommer
  rm.c                                  Roberto Togni
  rtp.c, rtpenc.c                       Luca Abeni
  rtp_mpv.*, rtp_aac.*                  Luca Abeni
  rtsp.c                                Luca Barbato
  sdp.c                                 Luca Abeni
  segafilm.c                            Mike Melanson
  siff.c                                Kostya Shishkov
  swf.c                                 Baptiste Coudurier
  tta.c                                 Alex Beregszaszi
  txd.c                                 Ivo van Poorten
  voc.c                                 Aurelien Jacobs
  wav.c                                 Michael Niedermayer
  wc3movie.c                            Mike Melanson
  westwood.c                            Mike Melanson
  wv.c                                  Kostya Shishkov

Protocols:
  udp.c                                 Luca Abeni


Operating systems / CPU architectures
=====================================

Alpha                                   Mans Rullgard, Falk Hueffner
ARM                                     Mans Rullgard
BeOS                                    Francois Revol
Mac OS X / PowerPC                      Romain Dolbeau, Guillaume Poirier
Amiga / PowerPC                         Colin Ward
Linux / PowerPC                         Luca Barbato
Windows MinGW                           Alex Beregszaszi, Ramiro Polla
Windows Cygwin                          Victor Paesa
ADI/Blackfin DSP                        Marc Hoffman
Sparc                                   Roman Shaposhnik
x86                                     Michael Niedermayer


GnuPG Fingerprints of maintainers and others who have svn write access
======================================================================

Benoit Fouet                  B22A 4F4F 43EF 636B BB66 FCDC 0023 AE1E 2985 49C8
Diego Biurrun                 8227 1E31 B6D9 4994 7427 E220 9CAE D6CC 4757 FCC5
Loren Merritt                 ABD9 08F4 C920 3F65 D8BE 35D7 1540 DAA7 060F 56DE
Michael Niedermayer           9FF2 128B 147E F673 0BAD F133 611E C787 040B 0FAB
Peter Ross                    A907 E02F A6E5 0CD2 34CD 20D2 6760 79C5 AC40 DD6B
Reimar Döffinger              C61D 16E5 9E2C D10C 8958 38A4 0899 A2B9 06D4 D9C7
Reinhard Tartler              9300 5DC2 7E87 6C37 ED7B CA9A 9808 3544 9453 48A4
Reynaldo H. Verdejo Pinochet  6E27 CD34 170C C78E 4D4F 5F40 C18E 077F 3114 452A
Sascha Sommer                 38A0 F88B 868E 9D3A 97D4 D6A0 E823 706F 1E07 0D3C
