FFmpeg
|
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "libavutil/bprint.h"
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/log.h"
#include "libavutil/mem.h"
#include "libavutil/opt.h"
#include "libavutil/time_internal.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
Go to the source code of this file.
Data Structures | |
struct | sbg_demuxer |
struct | sbg_string |
struct | sbg_fade |
struct | sbg_timestamp |
struct | sbg_script_definition |
struct | sbg_script_synth |
struct | sbg_script_tseq |
struct | sbg_script_event |
struct | sbg_script |
struct | sbg_parser |
struct | ws_interval |
struct | ws_intervals |
Macros | |
#define | SBG_SCALE (1 << 16) |
#define | DAY (24 * 60 * 60) |
#define | DAY_TS ((int64_t)DAY * AV_TIME_BASE) |
#define | FORWARD_ERROR(c) |
#define | ADD_EDATA32(v) do { AV_WL32(edata, (v)); edata += 4; } while(0) |
#define | ADD_EDATA64(v) do { AV_WL64(edata, (v)); edata += 8; } while(0) |
Enumerations | |
enum | sbg_fade_type { SBG_FADE_SILENCE = 0, SBG_FADE_SAME = 1, SBG_FADE_ADAPT = 3 } |
enum | sbg_synth_type { SBG_TYPE_NONE, SBG_TYPE_SINE, SBG_TYPE_NOISE, SBG_TYPE_BELL, SBG_TYPE_MIX, SBG_TYPE_SPIN } |
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 void * | alloc_array_elem (void **array, size_t elsize, int *size, int *max_size) |
static int | str_to_time (const char *str, int64_t *rtime) |
static int | is_space (char c) |
static int | scale_double (void *log, double d, double m, int *r) |
static int | lex_space (struct sbg_parser *p) |
static int | lex_char (struct sbg_parser *p, char c) |
static int | lex_double (struct sbg_parser *p, double *r) |
static int | lex_fixed (struct sbg_parser *p, const char *t, int l) |
static int | lex_line_end (struct sbg_parser *p) |
static int | lex_wsword (struct sbg_parser *p, struct sbg_string *rs) |
static int | lex_name (struct sbg_parser *p, struct sbg_string *rs) |
static int | lex_time (struct sbg_parser *p, int64_t *rt) |
static int | parse_immediate (struct sbg_parser *p) |
static int | parse_preprogrammed (struct sbg_parser *p) |
static int | parse_optarg (struct sbg_parser *p, char o, struct sbg_string *r) |
static int | parse_options (struct sbg_parser *p) |
static int | parse_timestamp (struct sbg_parser *p, struct sbg_timestamp *rts, int64_t *rrel) |
static int | parse_fade (struct sbg_parser *p, struct sbg_fade *fr) |
static int | parse_time_sequence (struct sbg_parser *p, int inblock) |
static int | parse_wave_def (struct sbg_parser *p, int wavenum) |
static int | parse_block_def (struct sbg_parser *p, struct sbg_script_definition *def) |
static int | parse_volume (struct sbg_parser *p, int *vol) |
static int | parse_synth_channel_sine (struct sbg_parser *p, struct sbg_script_synth *synth) |
static int | parse_synth_channel_pink (struct sbg_parser *p, struct sbg_script_synth *synth) |
static int | parse_synth_channel_bell (struct sbg_parser *p, struct sbg_script_synth *synth) |
static int | parse_synth_channel_mix (struct sbg_parser *p, struct sbg_script_synth *synth) |
static int | parse_synth_channel_spin (struct sbg_parser *p, struct sbg_script_synth *synth) |
static int | parse_synth_channel (struct sbg_parser *p) |
static int | parse_synth_def (struct sbg_parser *p, struct sbg_script_definition *def) |
static int | parse_named_def (struct sbg_parser *p) |
static void | free_script (struct sbg_script *s) |
static int | parse_script (void *log, char *script, int script_len, struct sbg_script *rscript) |
static int | read_whole_file (AVIOContext *io, int max_size, AVBPrint *rbuf) |
static int | expand_timestamps (void *log, struct sbg_script *s) |
static int | expand_tseq (void *log, struct sbg_script *s, int *nb_ev_max, int64_t t0, struct sbg_script_tseq *tseq) |
static int | expand_script (void *log, struct sbg_script *s) |
static int | add_interval (struct ws_intervals *inter, enum ws_interval_type type, uint32_t channels, int ref, int64_t ts1, int32_t f1, int32_t a1, int64_t ts2, int32_t f2, int32_t a2) |
static int | add_bell (struct ws_intervals *inter, struct sbg_script *s, int64_t ts1, int64_t ts2, int32_t f, int32_t a) |
static int | generate_interval (void *log, struct sbg_script *s, struct ws_intervals *inter, int64_t ts1, int64_t ts2, struct sbg_script_synth *s1, struct sbg_script_synth *s2, int transition) |
static int | generate_plateau (void *log, struct sbg_script *s, struct ws_intervals *inter, struct sbg_script_event *ev1) |
static int | generate_transition (void *log, struct sbg_script *s, struct ws_intervals *inter, struct sbg_script_event *ev1, struct sbg_script_event *ev2) |
static int | generate_intervals (void *log, struct sbg_script *s, int sample_rate, struct ws_intervals *inter) |
static int | encode_intervals (struct sbg_script *s, AVCodecParameters *par, struct ws_intervals *inter) |
static av_cold int | sbg_read_probe (const AVProbeData *p) |
static av_cold int | sbg_read_header (AVFormatContext *avf) |
static int | sbg_read_packet (AVFormatContext *avf, AVPacket *packet) |
static int | sbg_read_seek2 (AVFormatContext *avf, int stream_index, int64_t min_ts, int64_t ts, int64_t max_ts, int flags) |
static int | sbg_read_seek (AVFormatContext *avf, int stream_index, int64_t ts, int flags) |
Variables | |
static const AVOption | sbg_options [] |
static const AVClass | sbg_demuxer_class |
const FFInputFormat | ff_sbg_demuxer |
#define DAY_TS ((int64_t)DAY * AV_TIME_BASE) |
#define FORWARD_ERROR | ( | c | ) |
enum sbg_fade_type |
enum sbg_synth_type |
enum ws_interval_type |
|
static |
Definition at line 162 of file sbgdec.c.
Referenced by add_interval(), expand_tseq(), parse_named_def(), parse_synth_channel(), and parse_time_sequence().
|
static |
Definition at line 182 of file sbgdec.c.
Referenced by lex_time(), and parse_options().
|
inlinestatic |
Definition at line 210 of file sbgdec.c.
Referenced by lex_double(), lex_space(), and lex_wsword().
Definition at line 215 of file sbgdec.c.
Referenced by parse_synth_channel_bell(), parse_synth_channel_sine(), parse_synth_channel_spin(), and parse_volume().
|
static |
Definition at line 227 of file sbgdec.c.
Referenced by lex_line_end(), lex_wsword(), parse_block_def(), parse_named_def(), parse_script(), parse_synth_def(), parse_time_sequence(), and parse_timestamp().
|
static |
Definition at line 236 of file sbgdec.c.
Referenced by parse_block_def(), parse_fade(), parse_named_def(), parse_options(), parse_synth_channel(), parse_timestamp(), and parse_volume().
|
static |
Definition at line 244 of file sbgdec.c.
Referenced by parse_synth_channel_bell(), parse_synth_channel_sine(), parse_synth_channel_spin(), and parse_volume().
|
static |
Definition at line 260 of file sbgdec.c.
Referenced by parse_synth_channel_bell(), parse_synth_channel_mix(), parse_synth_channel_pink(), parse_synth_channel_spin(), parse_time_sequence(), and parse_timestamp().
|
static |
Definition at line 268 of file sbgdec.c.
Referenced by parse_block_def(), parse_options(), parse_script(), parse_synth_def(), and parse_time_sequence().
|
static |
Definition at line 286 of file sbgdec.c.
Referenced by parse_optarg(), and parse_options().
|
static |
Definition at line 300 of file sbgdec.c.
Referenced by parse_named_def(), and parse_time_sequence().
|
static |
Definition at line 314 of file sbgdec.c.
Referenced by parse_timestamp().
|
static |
Definition at line 328 of file sbgdec.c.
Referenced by parse_options().
|
static |
Definition at line 335 of file sbgdec.c.
Referenced by parse_options().
|
static |
Definition at line 342 of file sbgdec.c.
Referenced by parse_options().
|
static |
Definition at line 352 of file sbgdec.c.
Referenced by parse_script().
|
static |
Definition at line 465 of file sbgdec.c.
Referenced by parse_time_sequence().
|
static |
Definition at line 498 of file sbgdec.c.
Referenced by parse_time_sequence().
|
static |
Definition at line 522 of file sbgdec.c.
Referenced by parse_block_def(), and parse_script().
|
static |
Definition at line 578 of file sbgdec.c.
Referenced by parse_named_def().
|
static |
Definition at line 585 of file sbgdec.c.
Referenced by parse_named_def().
|
static |
Definition at line 614 of file sbgdec.c.
Referenced by parse_synth_channel_bell(), parse_synth_channel_mix(), parse_synth_channel_pink(), parse_synth_channel_sine(), and parse_synth_channel_spin().
|
static |
Definition at line 627 of file sbgdec.c.
Referenced by parse_synth_channel().
|
static |
Definition at line 648 of file sbgdec.c.
Referenced by parse_synth_channel().
|
static |
Definition at line 661 of file sbgdec.c.
Referenced by parse_synth_channel().
|
static |
Definition at line 680 of file sbgdec.c.
Referenced by parse_synth_channel().
|
static |
Definition at line 693 of file sbgdec.c.
Referenced by parse_synth_channel().
|
static |
Definition at line 716 of file sbgdec.c.
Referenced by parse_synth_def().
|
static |
Definition at line 742 of file sbgdec.c.
Referenced by parse_named_def().
|
static |
Definition at line 766 of file sbgdec.c.
Referenced by parse_script().
|
static |
Definition at line 793 of file sbgdec.c.
Referenced by parse_script(), sbg_read_header(), and sbg_read_probe().
|
static |
Definition at line 803 of file sbgdec.c.
Referenced by sbg_read_header(), and sbg_read_probe().
|
static |
Definition at line 865 of file sbgdec.c.
Referenced by sbg_read_header().
|
static |
Definition at line 881 of file sbgdec.c.
Referenced by expand_script().
|
static |
Definition at line 941 of file sbgdec.c.
Referenced by expand_script().
|
static |
Definition at line 990 of file sbgdec.c.
Referenced by sbg_read_header().
|
static |
Definition at line 1011 of file sbgdec.c.
Referenced by add_bell(), and generate_interval().
|
static |
Definition at line 1045 of file sbgdec.c.
Referenced by generate_interval().
|
static |
Definition at line 1073 of file sbgdec.c.
Referenced by generate_plateau(), and generate_transition().
|
static |
Definition at line 1152 of file sbgdec.c.
Referenced by generate_intervals().
|
static |
Definition at line 1181 of file sbgdec.c.
Referenced by generate_intervals().
|
static |
Definition at line 1267 of file sbgdec.c.
Referenced by sbg_read_header().
|
static |
Definition at line 1341 of file sbgdec.c.
Referenced by sbg_read_header().
|
static |
|
static |
|
static |
|
static |
Definition at line 1497 of file sbgdec.c.
Referenced by sbg_read_seek().
|
static |
|
static |
|
static |
const FFInputFormat ff_sbg_demuxer |