Lines Matching refs:work
357 void fillEmptyWork(const std::unique_ptr<C2Work> &work) { in fillEmptyWork() argument
359 if (work->input.flags & C2FrameData::FLAG_END_OF_STREAM) { in fillEmptyWork()
363 work->worklets.front()->output.flags = (C2FrameData::flags_t)flags; in fillEmptyWork()
364 work->worklets.front()->output.buffers.clear(); in fillEmptyWork()
365 work->worklets.front()->output.ordinal = work->input.ordinal; in fillEmptyWork()
366 work->workletsProcessed = 1u; in fillEmptyWork()
370 const std::unique_ptr<C2Work> &work, in finishWork() argument
374 auto fillWork = [buffer, index](const std::unique_ptr<C2Work> &work) { in finishWork() argument
376 if ((work->input.flags & C2FrameData::FLAG_END_OF_STREAM) && in finishWork()
377 (c2_cntr64_t(index) == work->input.ordinal.frameIndex)) { in finishWork()
381 work->worklets.front()->output.flags = (C2FrameData::flags_t)flags; in finishWork()
382 work->worklets.front()->output.buffers.clear(); in finishWork()
383 work->worklets.front()->output.buffers.push_back(buffer); in finishWork()
384 work->worklets.front()->output.ordinal = work->input.ordinal; in finishWork()
385 work->workletsProcessed = 1u; in finishWork()
387 if (work && c2_cntr64_t(index) == work->input.ordinal.frameIndex) { in finishWork()
388 fillWork(work); in finishWork()
394 void C2SoftGav1Dec::process(const std::unique_ptr<C2Work> &work, in process() argument
396 work->result = C2_OK; in process()
397 work->workletsProcessed = 0u; in process()
398 work->worklets.front()->output.configUpdate.clear(); in process()
399 work->worklets.front()->output.flags = work->input.flags; in process()
401 work->result = C2_BAD_VALUE; in process()
408 if (!work->input.buffers.empty()) { in process()
409 rView = work->input.buffers[0]->data().linearBlocks().front().map().get(); in process()
413 work->result = C2_CORRUPTED; in process()
419 ((work->input.flags & C2FrameData::FLAG_CODEC_CONFIG) != 0); in process()
420 bool eos = ((work->input.flags & C2FrameData::FLAG_END_OF_STREAM) != 0); in process()
423 (int)work->input.ordinal.timestamp.peeku(), in process()
424 (int)work->input.ordinal.frameIndex.peeku(), work->input.flags); in process()
427 fillEmptyWork(work); in process()
431 int64_t frameIndex = work->input.ordinal.frameIndex.peekll(); in process()
450 work->result = C2_CORRUPTED; in process()
451 work->workletsProcessed = 1u; in process()
458 (void)outputBuffer(pool, work); in process()
461 drainInternal(DRAIN_COMPONENT_WITH_EOS, pool, work); in process()
464 fillEmptyWork(work); in process()
613 const std::unique_ptr<C2Work> &work) { in outputBuffer() argument
614 if (!(work && pool)) return false; in outputBuffer()
643 work->worklets.front()->output.configUpdate.push_back( in outputBuffer()
648 work->result = C2_CORRUPTED; in outputBuffer()
649 work->workletsProcessed = 1u; in outputBuffer()
658 work->workletsProcessed = 1u; in outputBuffer()
659 work->result = C2_CORRUPTED; in outputBuffer()
678 work->result = C2_OMITTED; in outputBuffer()
679 work->workletsProcessed = 1u; in outputBuffer()
692 work->result = err; in outputBuffer()
700 work->result = C2_CORRUPTED; in outputBuffer()
741 finishWork(buffer->user_private_data, work, std::move(block)); in outputBuffer()
748 const std::unique_ptr<C2Work> &work) { in drainInternal() argument
764 while (outputBuffer(pool, work)) { in drainInternal()
767 if (drainMode == DRAIN_COMPONENT_WITH_EOS && work && in drainInternal()
768 work->workletsProcessed == 0u) { in drainInternal()
769 fillEmptyWork(work); in drainInternal()