MCPcopy Create free account
hub / github.com/FFmpeg/FFmpeg / oh_buffer_release

Function oh_buffer_release

libavcodec/ohdec.c:432–451  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

430}
431
432static void oh_buffer_release(void *opaque, uint8_t *data)
433{
434 if (!opaque)
435 return;
436
437 OHCodecBuffer *buffer = opaque;
438
439 if (buffer->buffer) {
440 OH_AVCodec *dec = *buffer->dec_ref;
441 OH_AVCodecBufferAttr attr;
442 OH_AVErrCode err = OH_AVBuffer_GetBufferAttr(buffer->buffer, &attr);
443 if (err == AV_ERR_OK && !(attr.flags & AVCODEC_BUFFER_FLAGS_DISCARD))
444 OH_VideoDecoder_RenderOutputBuffer(dec, buffer->index);
445 else
446 OH_VideoDecoder_FreeOutputBuffer(dec, buffer->index);
447 }
448
449 av_refstruct_unref(&buffer->dec_ref);
450 av_free(buffer);
451}
452
453static int oh_decode_wrap_hw_buffer(AVCodecContext *avctx, AVFrame *frame,
454 OHBufferQueueItem *output,

Callers 1

oh_decode_wrap_hw_bufferFunction · 0.85

Calls 2

av_refstruct_unrefFunction · 0.85
av_freeFunction · 0.50

Tested by

no test coverage detected