当前位置: 首页>>代码示例>>C++>>正文


C++ AVCodec::close方法代码示例

本文整理汇总了C++中AVCodec::close方法的典型用法代码示例。如果您正苦于以下问题:C++ AVCodec::close方法的具体用法?C++ AVCodec::close怎么用?C++ AVCodec::close使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在AVCodec的用法示例。


在下文中一共展示了AVCodec::close方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: frame_thread_free

static void frame_thread_free(AVCodecContext *avctx, int thread_count)
{
    FrameThreadContext *fctx = avctx->thread_opaque;
    AVCodec *codec = avctx->codec;
    int i;

    park_frame_worker_threads(fctx, thread_count);

    if (fctx->prev_thread && fctx->prev_thread != fctx->threads)
        update_context_from_thread(fctx->threads->avctx, fctx->prev_thread->avctx, 0);

    fctx->die = 1;

    for (i = 0; i < thread_count; i++) {
        PerThreadContext *p = &fctx->threads[i];

        pthread_mutex_lock(&p->mutex);
        pthread_cond_signal(&p->input_cond);
        pthread_mutex_unlock(&p->mutex);

        if (p->thread_init)
            pthread_join(p->thread, NULL);
        p->thread_init=0;

        if (codec->close)
            codec->close(p->avctx);

        avctx->codec = NULL;

        release_delayed_buffers(p);
    }

    for (i = 0; i < thread_count; i++) {
        PerThreadContext *p = &fctx->threads[i];

        avcodec_default_free_buffers(p->avctx);

        pthread_mutex_destroy(&p->mutex);
        pthread_mutex_destroy(&p->progress_mutex);
        pthread_cond_destroy(&p->input_cond);
        pthread_cond_destroy(&p->progress_cond);
        pthread_cond_destroy(&p->output_cond);
        av_freep(&p->avpkt.data);

        if (i) {
            av_freep(&p->avctx->priv_data);
            av_freep(&p->avctx->internal);
            av_freep(&p->avctx->slice_offset);
        }

        av_freep(&p->avctx);
    }

    av_freep(&fctx->threads);
    pthread_mutex_destroy(&fctx->buffer_mutex);
    av_freep(&avctx->thread_opaque);
}
开发者ID:AlexanderGarmash,项目名称:ffmpeg-ndk,代码行数:57,代码来源:pthread.c

示例2:

static av_cold int vdadec_close(AVCodecContext *avctx)
{
  VDADecoderContext *ctx = avctx->priv_data;
  /* release buffers and decoder */
  ff_vda_destroy_decoder(&ctx->vda_ctx);
  /* close H.264 decoder */
  if (ctx->h264_initialized)
    ff_h264_decoder.close(avctx);
  return 0;
}
开发者ID:Vadiza,项目名称:sage-3.5b,代码行数:10,代码来源:vda_h264_dec.c


注:本文中的AVCodec::close方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。