MCPcopy Create free account
hub / github.com/IENT/YUView / allocateNewDecoder

Method allocateNewDecoder

YUViewLib/src/decoder/decoderDav1d.cpp:228–282  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

226}
227
228void decoderDav1d::allocateNewDecoder()
229{
230 if (decoder != nullptr)
231 {
232 DEBUG_DAV1D("decoderDav1d::allocateNewDecoder Error a decoder was already allocated");
233 return;
234 }
235 if (decoderState == DecoderState::Error)
236 return;
237
238 DEBUG_DAV1D("decoderDav1d::allocateNewDecoder - decodeSignal %d", decodeSignal);
239
240 this->lib.dav1d_default_settings(&settings);
241
242 // Create new decoder object
243 int err = this->lib.dav1d_open(&decoder, &settings);
244 if (err != 0)
245 {
246 decoderState = DecoderState::Error;
247 setError("Error opening new decoder (dav1d_open)");
248 return;
249 }
250
251 if (internalsSupported)
252 {
253 // Apply the analizer settings
254 this->lib.dav1d_default_analyzer_settings(&analyzerSettings);
255 if (nrSignals > 0)
256 {
257 if (decodeSignal == 1)
258 {
259 analyzerSettings.export_prediction = 1;
260 DEBUG_DAV1D("decoderDav1d::allocateNewDecoder - Activated export of prediction");
261 }
262 else if (decodeSignal == 2)
263 {
264 analyzerSettings.export_prefilter = 1;
265 DEBUG_DAV1D(
266 "decoderDav1d::allocateNewDecoder - Activated export of reconstruction pre-filtering");
267 }
268 }
269 if (this->statisticsEnabled())
270 {
271 analyzerSettings.export_blkdata = 1;
272 DEBUG_DAV1D("decoderDav1d::allocateNewDecoder - Activated export of block data");
273 }
274 this->lib.dav1d_set_analyzer_settings(decoder, &analyzerSettings);
275 }
276
277 // The decoder is ready to receive data
278 decoderBase::resetDecoder();
279 currentOutputBuffer.clear();
280 decodedFrameWaiting = false;
281 flushing = false;
282}
283
284bool decoderDav1d::decodeNextFrame()
285{

Callers

nothing calls this directly

Calls 2

statisticsEnabledMethod · 0.80
clearMethod · 0.45

Tested by

no test coverage detected