Todo List
Global __attribute__ ((aligned(8)))

try to change to int

try lifting based implementation

optimize optimize optimize

hard tresholding

use QP to decide filter strength

wavelet normalization / least squares optimal signal vs.

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 display_end_segment (AVCodecContext *avctx, void *data, const uint8_t *buf, int buf_size)

TODO: Fix start time, relies on correct PTS, currently too late

segment, which is currently ignored as it clears

the subtitle too early.

TODO: Fix end time, normally cleared by a second display

Global eval_lpc_spectrum (const float *lsp, float cos_val, int order)
reuse code from Vorbis decoder: vorbis_floor0_decode
File f_ebur128.c

True Peak

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 libavcodec/webvttdec.c
need to support extended markups and cue settings
File libavformat/jacosubdec.c
Support P[ALETTE] directive.
File libmodplug.c
better probing than extensions matching
Global parse_picture_segment (AVCodecContext *avctx, const uint8_t *buf, int buf_size)
TODO: Enable support for RLE data over multiple packets
Global parse_presentation_segment (AVCodecContext *avctx, const uint8_t *buf, int buf_size, int64_t pts)
TODO: Implement cropping
Global readAndTranspose16x6 (src, src_stride, r8, r9, r10, r11, r12, r13)
FIXME: see if we can't spare some vec_lvsl() by them factorizing out of unaligned_load()
Global 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

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: Decypher remaining bits in extra_data

Global VC1Context
Change size wherever another size is more efficient Many members are only used for Advanced Profile
Global wma_lsp_to_curve (WMACodecContext *s, float *out, float *val_max_ptr, int n, float *lsp)
optimize it further with SSE/3Dnow