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

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

Please try to keep entries where you are the maintainer upto date!

Names in () mean that the maintainer currently has no time to maintain the code.
A CC after the name means that the maintainer prefers to be CC-ed on patches
and related discussions.


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

  final design decisions


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

ffmpeg:
  ffmpeg.c                              Michael Niedermayer

ffplay:
  ffplay.c                              Marton Balint

ffprobe:
  ffprobe.c                             Stefano Sabatini

ffserver:
  ffserver.c, ffserver.h                Baptiste Coudurier

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

QuickTime faststart:
  tools/qt-faststart.c                  Baptiste Coudurier


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

documentation                           Mike Melanson
website                                 Robert Swain, Lou Logan
build system (configure,Makefiles)      Diego Biurrun, Mans Rullgard
project server                          Árpád Gereöffy, Michael Niedermayer, Reimar Döffinger
mailinglists                            Michael Niedermayer, Baptiste Coudurier, Lou Logan
presets                                 Robert Swain
metadata subsystem                      Aurelien Jacobs
release management                      Michael Niedermayer


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
  codec names:
    codec_names.sh                      Nicolas George
  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
  table generation:
    tableprint.c, tableprint.h          Reimar Doeffinger

Codecs:
  4xm.c                                 Michael Niedermayer
  8bps.c                                Roberto Togni
  8svx.c                                Jaikrishnan Menon
  aasc.c                                Kostya Shishkov
  ac3*                                  Justin Ruggles
  alacenc.c                             Jaikrishnan Menon
  alsdec.c                              Thilo Borgmann
  apedec.c                              Kostya Shishkov
  ass*                                  Aurelien Jacobs
  asv*                                  Michael Niedermayer
  atrac3*                               Benjamin Larsson
  bgmc.c, bgmc.h                        Thilo Borgmann
  bink.c                                Kostya Shishkov
  binkaudio.c                           Peter Ross
  bmp.c                                 Mans Rullgard, Kostya Shishkov
  cavs*                                 Stefan Gehrer
  celp_filters.*                        Vitor Sessak
  cinepak.c                             Roberto Togni
  cljr                                  Alex Beregszaszi
  cook.c, cookdata.h                    Benjamin Larsson
  crystalhd.c                           Philip Langdale
  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
  ffwavesynth.c                         Nicolas George
  flac*                                 Justin Ruggles
  flashsv*                              Benjamin Larsson
  flicvideo.c                           Mike Melanson
  g722.c                                Martin Storsjo
  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
  indeo5*                               Kostya Shishkov
  interplayvideo.c                      Mike Melanson
  ivi*                                  Kostya Shishkov
  jpeg_ls.c                             Kostya Shishkov
  jvdec.c                               Peter Ross
  kmvc.c                                Kostya Shishkov
  lcl*.c                                Roberto Togni, Reimar Doeffinger
  libcelt_dec.c                         Nicolas George
  libgsm.c                              Michel Bardiaux
  libdirac*                             David Conrad
  libopenjpeg.c                         Jaikrishnan Menon
  libopenjpegenc.c                      Michael Bradshaw
  libschroedinger*                      David Conrad
  libspeexdec.c                         Justin Ruggles
  libtheoraenc.c                        David Conrad
  libvorbis.c                           David Conrad
  libxavs.c                             Stefan Gehrer
  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
  mlp*                                  Ramiro Polla
  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
  pgssubdec.c                           Reimar Doeffinger
  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
  smacker.c                             Kostya Shishkov
  smc.c                                 Mike Melanson
  snow.c                                Michael Niedermayer, Loren Merritt
  sonic.c                               Alex Beregszaszi
  srt*                                  Aurelien Jacobs
  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, Jaikrishnan Menon
  txd.c                                 Ivo van Poorten
  ulti*                                 Kostya Shishkov
  v410*.c                               Derek Buitenhuis
  vb.c                                  Kostya Shishkov
  vble.c                                Derek Buitenhuis
  vc1*                                  Kostya Shishkov
  vcr1.c                                Michael Niedermayer
  vmnc.c                                Kostya Shishkov
  vorbis_enc.c                          Oded Shimon
  vorbis_dec.c                          Denes Balatoni, David Conrad
  vp3*                                  Mike Melanson
  vp5                                   Aurelien Jacobs
  vp6                                   Aurelien Jacobs
  vp8                                   David Conrad, Jason Garrett-Glaser, Ronald Bultje
  vqavideo.c                            Mike Melanson
  wavpack.c                             Kostya Shishkov
  wmaprodec.c                           Sascha Sommer
  wmavoice.c                            Ronald S. Bultje
  wmv2.c                                Michael Niedermayer
  wnv1.c                                Kostya Shishkov
  xan.c                                 Mike Melanson
  xl.c                                  Kostya Shishkov
  xvmc.c                                Ivan Kalvachev
  zmbv*                                 Kostya Shishkov

Hardware acceleration:
  crystalhd.c                           Philip Langdale
  dxva2*                                Laurent Aimar
  libstagefright.cpp                    Mohamed Naufal
  vaapi*                                Gwenole Beauchesne
  vda*                                  Sebastien Zwickert
  vdpau*                                Carl Eugen Hoyos


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


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


libavfilter
===========

Video filters:
  graphdump.c                           Nicolas George
  af_amerge.c                           Nicolas George
  af_astreamsync.c                      Nicolas George
  af_pan.c                              Nicolas George
  vsrc_mandelbrot.c                     Michael Niedermayer
  vf_yadif.c                            Michael Niedermayer


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
  ass*                                  Aurelien Jacobs
  avi*                                  Michael Niedermayer
  bink.c                                Peter Ross
  caf*                                  Peter Ross
  crc.c                                 Michael Niedermayer
  daud.c                                Reimar Doeffinger
  dv.c                                  Roman Shaposhnik
  dxa.c                                 Kostya Shishkov
  electronicarts.c                      Peter Ross
  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
  idroqdec.c                            Mike Melanson
  iff.c                                 Jaikrishnan Menon
  ipmovie.c                             Mike Melanson
  img2.c                                Michael Niedermayer
  iss.c                                 Stefan Gehrer
  jvdec.c                               Peter Ross
  libmodplug.c                          Clément Bœsch
  libnut.c                              Oded Shimon
  lmlm4.c                               Ivo van Poorten
  lxfdec.c                              Tomas Härdin
  matroska.c                            Aurelien Jacobs
  matroskadec.c                         Aurelien Jacobs
  matroskaenc.c                         David Conrad
  metadata*                             Aurelien Jacobs
  microdvd*                             Aurelien Jacobs
  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*                               Baptiste Coudurier
  msnwc_tcp.c                           Ramiro Polla
  mtv.c                                 Reynaldo H. Verdejo Pinochet
  mxf*                                  Baptiste Coudurier
  mxfdec.c                              Tomas Härdin
  nsvdec.c                              Francois Revol
  nut.c                                 Michael Niedermayer
  nuv.c                                 Reimar Doeffinger
  oggdec.c, oggdec.h                    David Conrad
  oggenc.c                              Baptiste Coudurier
  oggparse*.c                           David Conrad
  oma.c                                 Maxim Poliakovski
  psxstr.c                              Mike Melanson
  pva.c                                 Ivo van Poorten
  r3d.c                                 Baptiste Coudurier
  raw.c                                 Michael Niedermayer
  rdt.c                                 Ronald S. Bultje
  rl2.c                                 Sascha Sommer
  rmdec.c, rmenc.c                      Ronald S. Bultje, Kostya Shishkov
  rtmp*                                 Kostya Shishkov
  rtp.c, rtpenc.c                       Martin Storsjo
  rtpdec_asf.*                          Ronald S. Bultje
  rtpenc_mpv.*, rtpenc_aac.*            Martin Storsjo
  rtsp.c                                Luca Barbato
  sbgdec.c                              Nicolas George
  sdp.c                                 Martin Storsjo
  segafilm.c                            Mike Melanson
  siff.c                                Kostya Shishkov
  smacker.c                             Kostya Shishkov
  srtdec.c                              Aurelien Jacobs
  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
  wtv.c                                 Peter Ross
  wv.c                                  Kostya Shishkov

Protocols:
  http.c                                Ronald S. Bultje
  mms*.c                                Ronald S. Bultje
  udp.c                                 Luca Abeni


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

Alpha                                   Mans Rullgard, Falk Hueffner
ARM                                     Mans Rullgard
AVR32                                   Mans Rullgard
MIPS                                    Mans Rullgard
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


Releases
========

0.9                                     Michael Niedermayer



GnuPG Fingerprints of maintainers and contributors
==================================================

Anssi Hannula                 1A92 FF42 2DD9 8D2E 8AF7 65A9 4278 C520 513D F3CB
Anton Khirnov                 6D0C 6625 56F8 65D1 E5F5 814B B50A 1241 C067 07AB
Attila Kinali                 11F0 F9A6 A1D2 11F6 C745 D10C 6520 BCDD F2DF E765
Baptiste Coudurier            8D77 134D 20CC 9220 201F C5DB 0AC9 325C 5C1A BAAA
Ben Littler                   3EE3 3723 E560 3214 A8CD 4DEB 2CDB FCE7 768C 8D2C
Benoit Fouet                  B22A 4F4F 43EF 636B BB66 FCDC 0023 AE1E 2985 49C8
Daniel Verkamp                78A6 07ED 782C 653E C628 B8B9 F0EB 8DD8 2F0E 21C7
Diego Biurrun                 8227 1E31 B6D9 4994 7427 E220 9CAE D6CC 4757 FCC5
Gwenole Beauchesne            2E63 B3A6 3E44 37E2 017D 2704 53C7 6266 B153 99C4
Jaikrishnan Menon             61A1 F09F 01C9 2D45 78E1 C862 25DC 8831 AF70 D368
Justin Ruggles                3136 ECC0 C10D 6C04 5F43 CA29 FCBE CD2A 3787 1EBF
Loren Merritt                 ABD9 08F4 C920 3F65 D8BE 35D7 1540 DAA7 060F 56DE
Lou Logan                     7D68 DC73 CBEF EABB 671A B6CF 621C 2E28 82F8 DC3A
Luca Barbato                  6677 4209 213C 8843 5B67 29E7 E84C 78C2 84E9 0E34
Michael Niedermayer           9FF2 128B 147E F673 0BAD F133 611E C787 040B 0FAB
Nicolas George                24CE 01CE 9ACC 5CEB 74D8 8D9D B063 D997 36E5 4C93
Panagiotis Issaris            6571 13A3 33D9 3726 F728 AA98 F643 B12E ECF3 E029
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
Robert Swain                  EE7A 56EA 4A81 A7B5 2001 A521 67FA 362D A2FC 3E71
Sascha Sommer                 38A0 F88B 868E 9D3A 97D4 D6A0 E823 706F 1E07 0D3C
Stefano Sabatini              9A43 10F8 D32C D33C 48E7 C52C 5DF2 8E4D B2EE 066B
Tomas Härdin                  D133 29CA 4EEC 9DB4 7076 F697 B04B 7403 3313 41FD
