Nellymoser encoder by Bartlomiej Wolowiec.
More...
#include "libavutil/common.h"
#include "libavutil/float_dsp.h"
#include "libavutil/mathematics.h"
#include "audio_frame_queue.h"
#include "avcodec.h"
#include "fft.h"
#include "internal.h"
#include "nellymoser.h"
#include "sinewin.h"
#include "put_bits.h"
|
|
#define | BITSTREAM_WRITER_LE |
| |
|
#define | POW_TABLE_SIZE (1<<11) |
| |
|
#define | POW_TABLE_OFFSET 3 |
| |
|
#define | OPT_SIZE ((1<<15) + 3000) |
| |
| #define | find_best(val, table, LUT, LUT_add, LUT_size) |
| |
Nellymoser encoder by Bartlomiej Wolowiec.
Generic codec information: libavcodec/nellymoserdec.c
Some information also from: http://samples.mplayerhq.hu/A-codecs/Nelly_Moser/ASAO/ASAO.zip (Copyright Joseph Artsimovich and UAB "DKD")
for more information about nellymoser format, visit: http://wiki.multimedia.cx/index.php?title=Nellymoser
§ find_best
| #define find_best |
( |
|
val, |
|
|
|
table, |
|
|
|
LUT, |
|
|
|
LUT_add, |
|
|
|
LUT_size |
|
) |
| |
Value:best_idx = \
LUT[av_clip ((lrintf(val) >> 8) + LUT_add, 0, LUT_size - 1)]; \
if (fabs(val - table[best_idx]) > fabs(val - table[best_idx + 1])) \
best_idx++;
§ ff_nellymoser_encoder
Initial value:= {
.name = "nellymoser",
.type = AVMEDIA_TYPE_AUDIO,
.id = AV_CODEC_ID_NELLYMOSER,
.init = encode_init,
.encode2 = encode_frame,
.close = encode_end,
AV_SAMPLE_FMT_NONE },
}
float
Definition: samplefmt.h:63
#define AV_CODEC_CAP_DELAY
Encoder or decoder requires flushing with NULL input at the end in order to give the complete and cor...
Definition: avcodec.h:984
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
Definition: internal.h:186
#define AV_CODEC_CAP_SMALL_LAST_FRAME
Codec can be fed a final frame with a smaller size.
Definition: avcodec.h:989
AVSampleFormat
Audio sample formats.
Definition: samplefmt.h:58
Definition: nellymoserenc.c:56