FFmpeg  4.0
Todo List
Global av_samples_alloc (uint8_t **audio_data, int *linesize, int nb_channels, int nb_samples, enum AVSampleFormat sample_fmt, int align)
return the size of the allocated buffer in case of success at the next bump
Global av_samples_fill_arrays (uint8_t **audio_data, int *linesize, const uint8_t *buf, int nb_channels, int nb_samples, enum AVSampleFormat sample_fmt, int align)
return minimum size in bytes required for the buffer in case of success at the next bump
Global avcodec_fill_audio_frame (AVFrame *frame, int nb_channels, enum AVSampleFormat sample_fmt, const uint8_t *buf, int buf_size, int align)
return the size in bytes required to store the samples in case of success, at the next libavutil bump
Global avformat_find_stream_info (AVFormatContext *ic, AVDictionary **options)
Let the user decide somehow what information is needed so that we do not waste time getting stuff the user does not need.
Global AVOption::help
What about other languages?
Global bitplane_decoding (uint8_t *data, int *raw_flag, VC1Context *v)
FIXME: Optimize
Global decode_colskip (uint8_t *plane, int width, int height, int stride, GetBitContext *gb)
FIXME: Optimize
Global eval_lpc_spectrum (const float *lsp, float cos_val, int order)
reuse code from Vorbis decoder: vorbis_floor0_decode
File f_ebur128.c

implement start/stop/reset through filter command injection

support other frequencies to avoid resampling

Global ff_rv34_get_start_offset (GetBitContext *gb, int blocks)
Maybe replace with ff_h263_decode_mba() ?
Global ff_rv34_get_start_offset (GetBitContext *gb, int blocks)
Maybe replace with ff_h263_decode_mba() ?
File jacosubdec.c
Support P[ALETTE] directive.
File libmodplug.c
better probing than extensions matching
Global MAX_MIPMAPS
switch to dualinput
Global mode
switch to dualinput
Class OWDenoiseContext

try to change to int

try lifting based implementation

optimize optimize optimize

hard thresholding

use QP to decide filter strength

wavelet normalization / least squares optimal signal vs.

Global parse_presentation_segment (AVCodecContext *avctx, const uint8_t *buf, int buf_size, int64_t pts)
TODO: Implement cropping
Global R
  • use integers so it can be made bitexact and a FATE test can be added
Class RTSPState
Use AVIOContext instead of URLContext
Global rv34_dquant_tab [2][32]
Use with ff_modified_quant_tab from h263data.h.
Global rv34_mb_bits_sizes [6]
This is the same as ff_mba_length, maybe use it instead.
Global rv34_mb_max_sizes [6]
This is the same as ff_mba_max, maybe use it instead.
File src_movie.c

use direct rendering (no allocation of a new frame)

support a PTS correction mechanism

File vaf_spectrumsynth.c
support float pixel format
Module VC-1 VLC tables and defines
TODO move this into the context
Module VC-1 VLC tables and defines
TODO move this into the context
Global vc1_decode_frame (AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt)
TODO: Handle VC-1 IDUs (Transport level?)
Global vc1_decode_init (AVCodecContext *avctx)

TODO: Handle VC-1 IDUs (Transport level?)

TODO: Decipher remaining bits in extra_data

Class VC1Context
Change size wherever another size is more efficient Many members are only used for Advanced Profile
File webvttdec.c
need to support extended markups and cue settings
Class weighted_avg
  • SIMD for compute_safe_ssd_integral_image
  • SIMD for final weighted averaging
  • better automatic defaults? see "Parameters" @ http://www.ipol.im/pub/art/2011/bcm_nlm/
  • temporal support (probably doesn't need any displacement according to "Denoising image sequences does not require motion estimation")
  • Bayer pixel format support for at least raw photos? (DNG support would be handy here)
  • FATE test (probably needs visual threshold test mechanism due to the use of floats)
Global wma_lsp_to_curve (WMACodecContext *s, float *out, float *val_max_ptr, int n, float *lsp)
optimize it further with SSE/3Dnow