Hi,

Here is the initial version of libavresample.

I have also included some example x86 asm functions for sample format 
conversion and channel mixing. The sample format conversion asm function 
is actually just an RFC though since it is a duplicate of 
ff_float_interleave6() in libavcodec/x86/fmtconvert.asm. I'll have to 
work out which FmtConvert functions will still be useful within 
libavcodec and should be shared (and how best to do that) and which 
functions can just be moved to libavresample (and how/when to do that).

The audio FIFO feature being added to libavutil will also be used in 
avconv in place of the current flat audio FIFO buffer since it will also 
support planar formats.

Near-future plans for improving libavresample include:

Sample Format Conversion:
- Add x86 asm for all flt/s16 combinations for at least 1, 2, and 6 channels
- Implement dithering for s32/flt to s16
- Implement x86 asm for all s32/flt/s16 combinations for at least 1, 2, and 6 
channels

Channel Mixing:
- s32p internal sample format
- Implement x86 asm for common input/output combinations using 1, 2, 4, 6, and 
8 channels
- By-pass mixing with channel reordering when applicable

Resampling:
- Add support for s32p and fltp internal sample formats
- Add support for choosing libsamplerate instead of the native resampler

Misc:
- Channel reordering


The first priority will be optimized sample format conversion, after 
which I plan to finish planar support in libavcodec and avconv and start 
removing in-decoder/encoder interleaving/deinterleaving/conversion, along 
with the request_sample_fmt option.

Patch 3 depends on the channel layout guessing patch I sent previously.

Thanks,
Justin

Justin Ruggles (4):
  avutil: add audio fifo buffer
  Add libavresample
  avconv: use libavresample
  cosmetics: vertical alignment

 Makefile                              |    3 +-
 avconv.c                              |  129 ++++-----
 cmdutils.c                            |   16 +-
 configure                             |    7 +-
 libavresample/Makefile                |   11 +
 libavresample/audio_convert.c         |  344 ++++++++++++++++++++++++
 libavresample/audio_convert.h         |   46 ++++
 libavresample/audio_data.c            |  342 ++++++++++++++++++++++++
 libavresample/audio_data.h            |  167 ++++++++++++
 libavresample/audio_mix.c             |  354 +++++++++++++++++++++++++
 libavresample/audio_mix.h             |   69 +++++
 libavresample/audio_mix_matrix.c      |  353 +++++++++++++++++++++++++
 libavresample/avresample-test.c       |  338 ++++++++++++++++++++++++
 libavresample/avresample.h            |  235 +++++++++++++++++
 libavresample/internal.h              |   75 ++++++
 libavresample/options.c               |   64 +++++
 libavresample/options_table.c         |   45 ++++
 libavresample/resample.c              |  466 +++++++++++++++++++++++++++++++++
 libavresample/resample.h              |   35 +++
 libavresample/utils.c                 |  400 ++++++++++++++++++++++++++++
 libavresample/version.h               |   42 +++
 libavresample/x86/Makefile            |    5 +
 libavresample/x86/audio_convert.asm   |  112 ++++++++
 libavresample/x86/audio_convert_mmx.c |   43 +++
 libavresample/x86/audio_mix.asm       |   73 +++++
 libavresample/x86/audio_mix_mmx.c     |   46 ++++
 libavutil/Makefile                    |    2 +
 libavutil/audio_fifo.c                |  197 ++++++++++++++
 libavutil/audio_fifo.h                |  140 ++++++++++
 29 files changed, 4080 insertions(+), 79 deletions(-)
 create mode 100644 libavresample/Makefile
 create mode 100644 libavresample/audio_convert.c
 create mode 100644 libavresample/audio_convert.h
 create mode 100644 libavresample/audio_data.c
 create mode 100644 libavresample/audio_data.h
 create mode 100644 libavresample/audio_mix.c
 create mode 100644 libavresample/audio_mix.h
 create mode 100644 libavresample/audio_mix_matrix.c
 create mode 100644 libavresample/avresample-test.c
 create mode 100644 libavresample/avresample.h
 create mode 100644 libavresample/internal.h
 create mode 100644 libavresample/options.c
 create mode 100644 libavresample/options_table.c
 create mode 100644 libavresample/resample.c
 create mode 100644 libavresample/resample.h
 create mode 100644 libavresample/utils.c
 create mode 100644 libavresample/version.h
 create mode 100644 libavresample/x86/Makefile
 create mode 100644 libavresample/x86/audio_convert.asm
 create mode 100644 libavresample/x86/audio_convert_mmx.c
 create mode 100644 libavresample/x86/audio_mix.asm
 create mode 100644 libavresample/x86/audio_mix_mmx.c
 create mode 100644 libavutil/audio_fifo.c
 create mode 100644 libavutil/audio_fifo.h

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to