MCPcopy Create free account
hub / github.com/audeering/opensmile / readNewData

Method readNewData

src/dspcore/fullinputMean.cpp:130–194  ·  view source on GitHub ↗

Reads new data, computes stats in means_ and n_means_.

Source from the content-addressed store, hash-verified

128
129// Reads new data, computes stats in means_ and n_means_.
130eTickResult cFullinputMean::readNewData()
131{
132 cVector *vec = reader_->getNextFrame();
133 if (vec == NULL)
134 return TICK_SOURCE_NOT_AVAIL;
135 if (means_ == NULL) {
136 means_ = new cVector(vec->N);
137 n_means_arr_ = new long[vec->N];
138 if (mean_type_ == MEANTYPE_RQMEAN) {
139 for (int i = 0; i < vec->N; i++) {
140 means_->data[i] = vec->data[i] * vec->data[i];
141 }
142 } else if (mean_type_ == MEANTYPE_ABSMEAN) {
143 for (int i = 0; i < vec->N; i++) {
144 means_->data[i] = (FLOAT_DMEM)fabs(vec->data[i]);
145 }
146 } else {
147 if (mean_type_ == MEANTYPE_AMEAN && exclude_zeros_) {
148 for (int i = 0; i < vec->N; i++) {
149 if (vec->data[i] != 0.0) {
150 means_->data[i] = vec->data[i];
151 n_means_arr_[i] = 1;
152 }
153 }
154 } else {
155 for (int i = 0; i < vec->N; i++) {
156 means_->data[i] = vec->data[i];
157 }
158 }
159 }
160 n_means_ = 1;
161 } else {
162 if (mean_type_ == MEANTYPE_ENORM) {
163 for (int i = 0; i < vec->N; i++) {
164 if (vec->data[i] > means_->data[i])
165 means_->data[i] = vec->data[i];
166 }
167 } else if (mean_type_ == MEANTYPE_AMEAN) {
168 if (exclude_zeros_) {
169 for (int i = 0; i < vec->N; i++) {
170 if (vec->data[i] != 0.0) {
171 means_->data[i] += vec->data[i];
172 n_means_arr_[i]++;
173 }
174 }
175 } else {
176 for (int i = 0; i < vec->N; i++) {
177 means_->data[i] += vec->data[i];
178 }
179 }
180 n_means_++;
181 } else if (mean_type_ == MEANTYPE_RQMEAN) {
182 for (int i = 0; i < vec->N; i++) {
183 means_->data[i] += vec->data[i] * vec->data[i];
184 }
185 n_means_++;
186 } else if (mean_type_ == MEANTYPE_ABSMEAN) {
187 for (int i = 0; i < vec->N; i++) {

Callers

nothing calls this directly

Calls 1

getNextFrameMethod · 0.80

Tested by

no test coverage detected