8e0ab6e4dc34557f152e1d16e6b93f3d149f550a
[ffmpeg.git] / doc / TODO
1 ffmpeg TODO list:
2 ----------------
3
4 Fabrice's TODO list: (unordered)
5 -------------------
6 Short term:
7
8 - seeking API and example in ffplay
9 - use AVFMTCTX_DISCARD_PKT in ffplay so that DV has a chance to work
10 - add RTSP regression test (both client and server)
11 - make ffserver allocate AVFormatContext
12 - clean up (incompatible change, for 0.5.0):
13     * AVStream -> AVComponent
14     * AVFormatContext -> AVInputStream/AVOutputStream
15     * suppress rate_emu from AVCodecContext
16 - add new float/integer audio filterting and conversion : suppress
17   CODEC_ID_PCM_xxc and use CODEC_ID_RAWAUDIO.
18 - fix telecine and frame rate conversion
19
20 Long term (ask me if you want to help):
21
22 - commit new imgconvert API and new PIX_FMT_xxx alpha formats
23 - commit new LGPL'ed float and integer-only AC3 decoder
24 - add WMA integer-only decoder
25 - add new MPEG4-AAC audio decoder (both integer-only and float version)
26
27 Michael's TODO list: (unordered) (if anyone wanna help with sth, just ask)
28 -------------------
29 - optimize H264 CABAC
30 - more optimizations
31 - simper rate control
32
33 Francois' TODO list: (unordered, without any timeframe)
34 -------------------
35 - test MACE decoder against the openquicktime one as suggested by A'rpi
36 - BeOS audio input grabbing backend
37 - BeOS video input grabbing backend
38 - have a REAL BeOS errno fix (return MKERROR(EXXX);), not a hack
39 - publish my BeOS libposix on BeBits so I can officially support ffserver :)
40 - check the whole code for thread-safety (global and init stuff)
41
42 Philip'a TODO list: (alphabetically ordered) (please help)
43 ------------------
44 - Add a multi-ffm filetype so that feeds can be recorded into multiple files rather
45   than one big file.
46 - Authenticated users support -- where the authentication is in the URL
47 - Change ASF files so that the embedded timestamp in the frames is right rather
48   than being an offset from the start of the stream
49 - Make ffm files more resilient to changes in the codec structures so that you
50   can play old ffm files.
51
52 Baptiste's TODO list:
53 -----------------
54 - mov edit list support (AVEditList)
55 - support quicktime "None" fourcc, and corresponding pixel formats
56 - YUV 10 bit per component support "2vuy"
57 - mxf muxer
58 - mpeg2 non linear quantizer
59
60 unassigned TODO: (unordered)
61 ---------------
62 - use AVFrame for audio codecs too
63 - rework aviobuf.c buffering strategy and fix url_fskip
64 - generate optimal huffman tables for mjpeg encoding
65 - fix ffserver regression tests
66 - support xvids motion estimation
67 - support x264s motion estimation
68 - support x264s rate control
69 - SNOW: non translational motion compensation
70 - SNOW: more optimal quantization
71 - SNOW: 4x4 block support
72 - SNOW: 1/8 pel motion compensation support
73 - SNOW: iterative motion estimation based on subsampled images
74 - FLAC: lossy encoding (viterbi and naive scalar quantization)
75 - libavfilter
76 - JPEG2000 decoder & encoder
77 - MPEG4 GMC encoding support
78 - macroblock based pixel format (better cache locality, somewhat complex, one paper claimed it faster for high res)
79 - finish NUT implementation
80 - seeking regression test
81 - regression tests for codecs which dont have an encoder (I+P frame bitstream in svn)
82 - add support for using mplayers video filters to ffmpeg
83 - reverse engeneer RV30/RV40
84 - finish implementation of WMV2 j-picture
85 - H264 encoder
86 - per MB ratecontrol (so VCD and such do work better)
87 - replace/rewrite libavcodec/fdctref.c
88 - write a script which iteratively changes all functions between always_inline and noinline and benchmarks the result to find the best set of inlined functions
89 - set up roundup bugtracker somewhere with (newBug, reproduced, analyzed, fixed, worksForMe, duplicate, wontFix, invalid, needMoreInfo, newPatch, ok, applied, rejected, needChanges, newRequest, implemented, wontImplement, invalidReq) states and a checked integer
90 - convert all the non SIMD asm into small asm vs. C testcases and submit them to the gcc devels so they can improve gcc
91 - generic audio mixing API
92 - extract PES packetizer from PS muxer and use it for new TS muxer
93 - implement automatic AVBistreamFilter activation