#include "libavutil/intreadwrite.h"
#include "libavutil/log.h"
#include "avcodec.h"
Go to the source code of this file.
Data Structures | |
struct | ws_interval |
struct | wavesynth_context |
Defines | |
#define | SIN_BITS 14 |
#define | WS_MAX_CHANNELS 32 |
#define | INF_TS 0x7FFFFFFFFFFFFFFF |
#define | PINK_UNIT 128 |
#define | LCG_A 1284865837 |
#define | LCG_C 4150755663 |
#define | LCG_AI 849225893 |
Enumerations | |
enum | ws_interval_type { WS_SINE = MKTAG('S','I','N','E'), WS_NOISE = MKTAG('N','O','I','S'), WS_SINE = MKTAG('S','I','N','E'), WS_NOISE = MKTAG('N','O','I','S') } |
Functions | |
static uint32_t | lcg_next (uint32_t *s) |
static void | lcg_seek (uint32_t *s, int64_t dt) |
static void | pink_fill (struct wavesynth_context *ws) |
static uint64_t | frac64 (uint64_t a, uint64_t b) |
static uint64_t | phi_at (struct ws_interval *in, int64_t ts) |
static void | wavesynth_seek (struct wavesynth_context *ws, int64_t ts) |
static int | wavesynth_parse_extradata (AVCodecContext *avc) |
static av_cold int | wavesynth_init (AVCodecContext *avc) |
static void | wavesynth_synth_sample (struct wavesynth_context *ws, int64_t ts, int32_t *channels) |
static void | wavesynth_enter_intervals (struct wavesynth_context *ws, int64_t ts) |
static int | wavesynth_decode (AVCodecContext *avc, void *rframe, int *rgot_frame, AVPacket *packet) |
static av_cold int | wavesynth_close (AVCodecContext *avc) |
Variables | |
AVCodec | ff_ffwavesynth_decoder |
#define INF_TS 0x7FFFFFFFFFFFFFFF |
Definition at line 28 of file ffwavesynth.c.
Referenced by wavesynth_enter_intervals(), and wavesynth_seek().
#define LCG_A 1284865837 |
#define LCG_AI 849225893 |
#define LCG_C 4150755663 |
#define PINK_UNIT 128 |
Definition at line 30 of file ffwavesynth.c.
Referenced by pink_fill(), wavesynth_init(), wavesynth_seek(), and wavesynth_synth_sample().
#define SIN_BITS 14 |
Definition at line 26 of file ffwavesynth.c.
Referenced by wavesynth_init(), and wavesynth_synth_sample().
#define WS_MAX_CHANNELS 32 |
Definition at line 27 of file ffwavesynth.c.
Referenced by wavesynth_decode(), and wavesynth_init().
enum ws_interval_type |
static uint64_t frac64 | ( | uint64_t | a, | |
uint64_t | b | |||
) | [static] |
Definition at line 166 of file ffwavesynth.c.
Referenced by wavesynth_parse_extradata().
static uint32_t lcg_next | ( | uint32_t * | s | ) | [static] |
Definition at line 109 of file ffwavesynth.c.
Referenced by pink_fill(), and wavesynth_synth_sample().
static void lcg_seek | ( | uint32_t * | s, | |
int64_t | dt | |||
) | [static] |
static uint64_t phi_at | ( | struct ws_interval * | in, | |
int64_t | ts | |||
) | [static] |
Definition at line 194 of file ffwavesynth.c.
Referenced by wavesynth_parse_extradata(), and wavesynth_seek().
static void pink_fill | ( | struct wavesynth_context * | ws | ) | [static] |
Definition at line 142 of file ffwavesynth.c.
Referenced by wavesynth_seek(), and wavesynth_synth_sample().
static av_cold int wavesynth_close | ( | AVCodecContext * | avc | ) | [static] |
Definition at line 463 of file ffwavesynth.c.
static int wavesynth_decode | ( | AVCodecContext * | avc, | |
void * | rframe, | |||
int * | rgot_frame, | |||
AVPacket * | packet | |||
) | [static] |
Definition at line 425 of file ffwavesynth.c.
static void wavesynth_enter_intervals | ( | struct wavesynth_context * | ws, | |
int64_t | ts | |||
) | [static] |
static av_cold int wavesynth_init | ( | AVCodecContext * | avc | ) | [static] |
Definition at line 314 of file ffwavesynth.c.
static int wavesynth_parse_extradata | ( | AVCodecContext * | avc | ) | [static] |
static void wavesynth_seek | ( | struct wavesynth_context * | ws, | |
int64_t | ts | |||
) | [static] |
Definition at line 202 of file ffwavesynth.c.
Referenced by wavesynth_decode(), and wavesynth_init().
static void wavesynth_synth_sample | ( | struct wavesynth_context * | ws, | |
int64_t | ts, | |||
int32_t * | channels | |||
) | [static] |
Initial value:
{ .name = "wavesynth", .type = AVMEDIA_TYPE_AUDIO, .id = CODEC_ID_FFWAVESYNTH, .priv_data_size = sizeof(struct wavesynth_context), .init = wavesynth_init, .close = wavesynth_close, .decode = wavesynth_decode, .capabilities = CODEC_CAP_DR1, .long_name = NULL_IF_CONFIG_SMALL("Wave synthesis pseudo-codec"), }
Definition at line 472 of file ffwavesynth.c.