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 up to date!

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


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

Michael Niedermayer
  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                           Stefano Sabatini, Mike Melanson, Timothy Gu
build system (configure,Makefiles)      Diego Biurrun, Mans Rullgard
project server                          Árpád Gereöffy, Michael Niedermayer, Reimar Döffinger, Alexander Strasser
presets                                 Robert Swain
metadata subsystem                      Aurelien Jacobs
release management                      Michael Niedermayer


Communication
=============

website                                 Robert Swain, Lou Logan
mailinglists                            Michael Niedermayer, Baptiste Coudurier, Lou Logan
Google+                                 Paul B Mahol, Michael Niedermayer, Alexander Strasser
Twitter                                 Lou Logan
Launchpad                               Timothy Gu


libavutil
=========

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

Other:
  bprint                                Nicolas George
  bswap.h
  des                                   Reimar Doeffinger
  eval.c, eval.h                        Michael Niedermayer
  float_dsp                             Loren Merritt
  hash                                  Reimar Doeffinger
  intfloat*                             Michael Niedermayer
  integer.c, integer.h                  Michael Niedermayer
  lzo                                   Reimar Doeffinger
  mathematics.c, mathematics.h          Michael Niedermayer
  mem.c, mem.h                          Michael Niedermayer
  opencl.c, opencl.h                    Wei Gao
  opt.c, opt.h                          Michael Niedermayer
  rational.c, rational.h                Michael Niedermayer
  rc4                                   Reimar Doeffinger
  ripemd.c, ripemd.h                    James Almer
  timecode                              Clément Bœsch


libavcodec
==========

Generic Parts:
  External Interfaces:
    avcodec.h                           Michael Niedermayer
  utility code:
    utils.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
  fixed point FFT:
    fft*                                Zeljko Lukac

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
  cdxl.c                                Paul B Mahol
  celp_filters.*                        Vitor Sessak
  cinepak.c                             Roberto Togni
  cljr                                  Alex Beregszaszi
  cllc.c                                Derek Buitenhuis
  cook.c, cookdata.h                    Benjamin Larsson
  cpia.c                                Stephan Hilb
  crystalhd.c                           Philip Langdale
  cscd.c                                Reimar Doeffinger
  dca.c                                 Kostya Shishkov, Benjamin Larsson
  dnxhd*                                Baptiste Coudurier
  dpcm.c                                Mike Melanson
  dv.c                                  Roman Shaposhnik
  dxa.c                                 Kostya Shishkov
  eacmv*, eaidct*, eat*                 Peter Ross
  exif.c, exif.h                        Thilo Borgmann
  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
  h261*                                 Michael Niedermayer
  h263*                                 Michael Niedermayer
  h264*                                 Loren Merritt, 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
  jacosub*                              Clément Bœsch
  jpeg2000*                             Nicolas Bertrand
  jpeg_ls.c                             Kostya Shishkov
  jvdec.c                               Peter Ross
  kmvc.c                                Kostya Shishkov
  lcl*.c                                Roberto Togni, Reimar Doeffinger
  libcelt_dec.c                         Nicolas George
  libdirac*                             David Conrad
  libgsm.c                              Michel Bardiaux
  libopenjpeg.c                         Jaikrishnan Menon
  libopenjpegenc.c                      Michael Bradshaw
  libschroedinger*                      David Conrad
  libspeexdec.c                         Justin Ruggles
  libtheoraenc.c                        David Conrad
  libutvideo*                           Derek Buitenhuis
  libvorbis.c                           David Conrad
  libx264.c                             Mans Rullgard, Jason Garrett-Glaser
  libxavs.c                             Stefan Gehrer
  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
  mqc*                                  Nicolas Bertrand
  msmpeg4.c, msmpeg4data.h              Michael Niedermayer
  msrle.c                               Mike Melanson
  msvideo1.c                            Mike Melanson
  nellymoserdec.c                       Benjamin Larsson
  nuv.c                                 Reimar Doeffinger
  paf.*                                 Paul B Mahol
  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
  smvjpegdec.c                          Ash Hughes
  snow.c                                Michael Niedermayer, Loren Merritt
  sonic.c                               Alex Beregszaszi
  srt*                                  Aurelien Jacobs
  sunrast.c                             Ivo van Poorten
  svq3.c                                Michael Niedermayer
  tak*                                  Paul B Mahol
  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
  ttaenc.c                              Paul B Mahol
  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
  vda_h264_dec.c                        Xidorn Quan
  vima.c                                Paul B Mahol
  vmnc.c                                Kostya Shishkov
  vorbis_dec.c                          Denes Balatoni, David Conrad
  vorbis_enc.c                          Oded Shimon
  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
  xbm*                                  Paul B Mahol
  xface                                 Stefano Sabatini
  xl.c                                  Kostya Shishkov
  xvmc.c                                Ivan Kalvachev
  xwd*                                  Paul B Mahol
  zerocodec.c                           Derek Buitenhuis
  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


  dshow.c                               Roger Pack
  fbdev_enc.c                           Lukasz Marek
  iec61883.c                            Georg Lippitsch
  lavfi                                 Stefano Sabatini
  libdc1394.c                           Roman Shaposhnik
  pulse_audio_enc.c                     Lukasz Marek
  sdl                                   Stefano Sabatini
  v4l2.c                                Luca Abeni
  vfwcap.c                              Ramiro Polla

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

Generic parts:
  graphdump.c                           Nicolas George

Filters:
  af_adelay.c                           Paul B Mahol
  af_aecho.c                            Paul B Mahol
  af_afade.c                            Paul B Mahol
  af_amerge.c                           Nicolas George
  af_aphaser.c                          Paul B Mahol
  af_aresample.c                        Michael Niedermayer
  af_astats.c                           Paul B Mahol
  af_astreamsync.c                      Nicolas George
  af_atempo.c                           Pavel Koshevoy
  af_biquads.c                          Paul B Mahol
  af_compand.c                          Paul B Mahol
  af_ladspa.c                           Paul B Mahol
  af_pan.c                              Nicolas George
  avf_avectorscope.c                    Paul B Mahol
  vf_blend.c                            Paul B Mahol
  vf_colorbalance.c                     Paul B Mahol
  vf_delogo.c                           Jean Delvare (CC <khali@linux-fr.org>)
  vf_drawbox.c/drawgrid                 Andrey Utkin
  vf_extractplanes.c                    Paul B Mahol
  vf_histogram.c                        Paul B Mahol
  vf_il.c                               Paul B Mahol
  vf_mergeplanes.c                      Paul B Mahol
  vf_psnr.c                             Paul B Mahol
  vf_scale.c                            Michael Niedermayer
  vf_separatefields.c                   Paul B Mahol
  vf_stereo3d.c                         Paul B Mahol
  vf_telecine.c                         Paul B Mahol
  vf_yadif.c                            Michael Niedermayer

Sources:
  vsrc_mandelbrot.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
  afc.c                                 Paul B Mahol
  aiffdec.c                             Baptiste Coudurier, Matthieu Bouron
  aiffenc.c                             Baptiste Coudurier, Matthieu Bouron
  ape.c                                 Kostya Shishkov
  ass*                                  Aurelien Jacobs
  astdec.c                              Paul B Mahol
  astenc.c                              James Almer
  avi*                                  Michael Niedermayer
  avisynth.c                            AvxSynth Team (avxsynth.testing at gmail dot com)
  avr.c                                 Paul B Mahol
  bink.c                                Peter Ross
  brstm.c                               Paul B Mahol
  caf*                                  Peter Ross
  cdxl.c                                Paul B Mahol
  crc.c                                 Michael Niedermayer
  daud.c                                Reimar Doeffinger
  dtshddec.c                            Paul B Mahol
  dv.c                                  Roman Shaposhnik
  dxa.c                                 Kostya Shishkov
  electronicarts.c                      Peter Ross
  epafdec.c                             Paul B Mahol
  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
  img2*.c                               Michael Niedermayer
  ipmovie.c                             Mike Melanson
  ircam*                                Paul B Mahol
  iss.c                                 Stefan Gehrer
  jacosub*                              Clément Bœsch
  jvdec.c                               Peter Ross
  libmodplug.c                          Clément Bœsch
  libnut.c                              Oded Shimon
  lmlm4.c                               Ivo van Poorten
  lvfdec.c                              Paul B Mahol
  lxfdec.c                              Tomas Härdin
  matroska.c                            Aurelien Jacobs
  matroskadec.c                         Aurelien Jacobs
  matroskaenc.c                         David Conrad
  metadata*                             Aurelien Jacobs
  mgsts.c                               Paul B Mahol
  microdvd*                             Aurelien Jacobs
  mm.c                                  Peter Ross
  mov.c                                 Michael Niedermayer, Baptiste Coudurier
  movenc.c                              Baptiste Coudurier, Matthieu Bouron
  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
  nistspheredec.c                       Paul B Mahol
  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
  paf.c                                 Paul B Mahol
  psxstr.c                              Mike Melanson
  pva.c                                 Ivo van Poorten
  pvfdec.c                              Paul B Mahol
  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
  smjpeg*                               Paul B Mahol
  srtdec.c                              Aurelien Jacobs
  swf.c                                 Baptiste Coudurier
  takdec.c                              Paul B Mahol
  tta.c                                 Alex Beregszaszi
  txd.c                                 Ivo van Poorten
  voc.c                                 Aurelien Jacobs
  wav.c                                 Michael Niedermayer
  wc3movie.c                            Mike Melanson
  webvtt*                               Matthew J Heaney
  westwood.c                            Mike Melanson
  wtv.c                                 Peter Ross
  wv.c                                  Kostya Shishkov
  wvenc.c                               Paul B Mahol

Protocols:
  bluray.c                              Petri Hintukainen
  ftp.c                                 Lukasz Marek
  http.c                                Ronald S. Bultje
  libssh.c                              Lukasz Marek
  mms*.c                                Ronald S. Bultje
  udp.c                                 Luca Abeni


libswresample
=============

Generic parts:
  audioconvert.c                        Michael Niedermayer
  dither.c                              Michael Niedermayer
  rematrix*.c                           Michael Niedermayer
  swresample*.c                         Michael Niedermayer

Resamplers:
  resample*.c                           Michael Niedermayer
  soxr_resample.c                       Rob Sykes


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

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

2.1                                     Michael Niedermayer
2.0                                     Michael Niedermayer

If you want to maintain an older release, please contact us


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

Alexander Strasser            1C96 78B7 83CB 8AA7 9AF5 D1EB A7D8 A57B A876 E58F
Anssi Hannula                 1A92 FF42 2DD9 8D2E 8AF7 65A9 4278 C520 513D F3CB
Anton Khirnov                 6D0C 6625 56F8 65D1 E5F5 814B B50A 1241 C067 07AB
Ash Hughes                    694D 43D2 D180 C7C7 6421 ABD3 A641 D0B7 623D 6029
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
Bœsch Clément                 52D0 3A82 D445 F194 DB8B 2B16 87EE 2CB8 F4B8 FCF9
Daniel Verkamp                78A6 07ED 782C 653E C628 B8B9 F0EB 8DD8 2F0E 21C7
Diego Biurrun                 8227 1E31 B6D9 4994 7427 E220 9CAE D6CC 4757 FCC5
FFmpeg release signing key    FCF9 86EA 15E6 E293 A564 4F10 B432 2F04 D676 58D8
Gwenole Beauchesne            2E63 B3A6 3E44 37E2 017D 2704 53C7 6266 B153 99C4
Jaikrishnan Menon             61A1 F09F 01C9 2D45 78E1 C862 25DC 8831 AF70 D368
Jean Delvare                  7CA6 9F44 60F1 BDC4 1FD2 C858 A552 6B9B B3CD 4E6A
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              0D0B AD6B 5330 BBAD D3D6 6A0C 719C 2839 FC43 2D5F
Stephan Hilb                  4F38 0B3A 5F39 B99B F505 E562 8D5C 5554 4E17 8863
Tomas Härdin                  A79D 4E3D F38F 763F 91F5 8B33 A01E 8AE0 41BB 2551
Wei Gao                       4269 7741 857A 0E60 9EC5 08D2 4744 4EFA 62C1 87B9
