UltraGrid
UltraGrid Low-Latency High-Resolution Transmission System
Loading...
Searching...
No Matches
dump.cpp File Reference
#include <string>
#include "debug.h"
#include "audio/export.h"
#include "audio/audio_playback.h"
#include "audio/types.h"
#include "lib_common.h"
Include dependency graph for dump.cpp:

Go to the source code of this file.

Classes

struct  audio_dump_state
 

Functions

static bool audio_play_dump_ctl (void *, int request, void *data, size_t *len)
 
static void audio_play_dump_done (void *state)
 
static void audio_play_dump_help ()
 
static void * audio_play_dump_init (const char *cfg)
 
static void audio_play_dump_probe (struct device_info **available_devices, int *count, void(**deleter)(void *))
 
static void audio_play_dump_put_frame (void *state, const struct audio_frame *f)
 
static bool audio_play_dump_reconfigure (void *state, struct audio_desc new_desc)
 
static bool query_fmt (void *data, size_t *len)
 
 REGISTER_MODULE (dump, &aplay_dump_info, LIBRARY_CLASS_AUDIO_PLAYBACK, AUDIO_PLAYBACK_ABI_VERSION)
 

Variables

static const struct audio_playback_info aplay_dump_info
 

Function Documentation

◆ audio_play_dump_ctl()

static bool audio_play_dump_ctl ( void * ,
int request,
void * data,
size_t * len )
static

Definition at line 118 of file dump.cpp.

119{
120 switch (request) {
122 return query_fmt(data, len);
123 default:
124 return false;
125 }
126}
int void size_t * len
#define AUDIO_PLAYBACK_CTL_QUERY_FORMAT
static bool query_fmt(void *data, size_t *len)
Definition dump.cpp:104

References AUDIO_PLAYBACK_CTL_QUERY_FORMAT, len, and query_fmt().

Here is the call graph for this function:

◆ audio_play_dump_done()

static void audio_play_dump_done ( void * state)
static

Definition at line 91 of file dump.cpp.

91 {
92 auto *s = static_cast<audio_dump_state *>(state);
93
94 delete s;
95}
void ** state

References state.

◆ audio_play_dump_help()

static void audio_play_dump_help ( )
static

Definition at line 66 of file dump.cpp.

66 {
67 printf("dump usage:\n"
68 "\t-r dump[:<path>]\n"
69 "where\n"
70 "\tpath - path prefix to use (without .wav extension)\n"
71 "\n");
72}

Referenced by audio_play_dump_init().

◆ audio_play_dump_init()

static void * audio_play_dump_init ( const char * cfg)
static

Definition at line 74 of file dump.cpp.

74 {
75 struct audio_dump_state *s = new audio_dump_state();
76
77 if (strlen(cfg) > 0) {
78 if (strcmp(cfg, "help") == 0) {
80 delete s;
81 return INIT_NOERR;
82 }
83 s->filename = cfg;
84 } else {
85 s->filename = "audio_dump";
86 }
87
88 return s;
89}
static void audio_play_dump_help()
Definition dump.cpp:66
#define INIT_NOERR
Definition host.h:73
std::string filename
Definition dump.cpp:62

References audio_play_dump_help(), audio_dump_state::filename, and INIT_NOERR.

Here is the call graph for this function:

◆ audio_play_dump_probe()

static void audio_play_dump_probe ( struct device_info ** available_devices,
int * count,
void(** deleter )(void *) )
static

Definition at line 97 of file dump.cpp.

98{
99 *deleter = free;
100 *available_devices = NULL;
101 *count = 0;
102}
int void(** deleter)(void *))
int count
Definition hd-rum.c:44

References count, and deleter.

◆ audio_play_dump_put_frame()

static void audio_play_dump_put_frame ( void * state,
const struct audio_frame * f )
static

Definition at line 128 of file dump.cpp.

129{
130 auto *s = static_cast<audio_dump_state *>(state);
131
132 audio_export(s->exporter.get(), f);
133}
void audio_export(struct audio_export *s, const struct audio_frame *frame)
Definition export.c:221

References audio_export(), and state.

Here is the call graph for this function:

◆ audio_play_dump_reconfigure()

static bool audio_play_dump_reconfigure ( void * state,
struct audio_desc new_desc )
static

Definition at line 135 of file dump.cpp.

136{
137 auto *s = static_cast<audio_dump_state *>(state);
138 s->desc = new_desc;
139
140 std::string filename = s->filename;
141 if(s->file_name_num){
142 filename += "_" + std::to_string(s->file_name_num);
143 }
144 filename += ".wav";
145 s->file_name_num++;
146 s->exporter.reset(audio_export_init(filename.c_str()));
147
148 return true;
149}
struct audio_export * audio_export_init(const char *filename)
Definition export.c:159
struct audio_desc desc
Definition dump.cpp:60

References audio_export_init(), audio_dump_state::desc, and state.

Here is the call graph for this function:

◆ query_fmt()

static bool query_fmt ( void * data,
size_t * len )
static

Definition at line 104 of file dump.cpp.

104 {
105 struct audio_desc desc;
106 if (*len < sizeof desc) {
107 return false;
108 } else {
109 memcpy(&desc, data, sizeof desc);
110 }
111
112 desc.codec = AC_PCM;
113 memcpy(data, &desc, sizeof desc);
114
115 return true;
116}
struct video_desc desc
@ AC_PCM
Definition types.h:53

References AC_PCM, desc, and len.

Referenced by audio_play_dump_ctl().

◆ REGISTER_MODULE()

REGISTER_MODULE ( dump ,
& aplay_dump_info,
LIBRARY_CLASS_AUDIO_PLAYBACK ,
AUDIO_PLAYBACK_ABI_VERSION  )

Variable Documentation

◆ aplay_dump_info

const struct audio_playback_info aplay_dump_info
static
Initial value:
= {
}
static void audio_play_dump_done(void *state)
Definition dump.cpp:91
static bool audio_play_dump_reconfigure(void *state, struct audio_desc new_desc)
Definition dump.cpp:135
static void audio_play_dump_probe(struct device_info **available_devices, int *count, void(**deleter)(void *))
Definition dump.cpp:97
static bool audio_play_dump_ctl(void *, int request, void *data, size_t *len)
Definition dump.cpp:118
static void audio_play_dump_put_frame(void *state, const struct audio_frame *f)
Definition dump.cpp:128
static void * audio_play_dump_init(const char *cfg)
Definition dump.cpp:74

Definition at line 151 of file dump.cpp.