Codec study notes

来自个人维基
2020年4月9日 (四) 10:57free6d1823讨论 | 贡献的版本

(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索
  • FFMPEG
    • h264dec

AVCodec ff_h264_decoder = {

   .name                  = "h264",
   .long_name             = NULL_IF_CONFIG_SMALL("H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10"),
   .type                  = AVMEDIA_TYPE_VIDEO,
   .id                    = AV_CODEC_ID_H264,
   .priv_data_size        = sizeof(H264Context),
   .init                  = h264_decode_init,
   .close                 = h264_decode_end,
   .decode                = h264_decode_frame,
   .capabilities          = /*AV_CODEC_CAP_DRAW_HORIZ_BAND |*/ AV_CODEC_CAP_DR1 |
                            AV_CODEC_CAP_DELAY | AV_CODEC_CAP_SLICE_THREADS |
                            AV_CODEC_CAP_FRAME_THREADS,
   .hw_configs            = (const AVCodecHWConfigInternal*[]) {
  1. if CONFIG_H264_DXVA2_HWACCEL
                              HWACCEL_DXVA2(h264),
  1. endif
  2. if CONFIG_H264_D3D11VA_HWACCEL
                              HWACCEL_D3D11VA(h264),
  1. endif
  2. if CONFIG_H264_D3D11VA2_HWACCEL
                              HWACCEL_D3D11VA2(h264),
  1. endif
  2. if CONFIG_H264_NVDEC_HWACCEL
                              HWACCEL_NVDEC(h264),
  1. endif
  2. if CONFIG_H264_VAAPI_HWACCEL
                              HWACCEL_VAAPI(h264),
  1. endif
  2. if CONFIG_H264_VDPAU_HWACCEL
                              HWACCEL_VDPAU(h264),
  1. endif
  2. if CONFIG_H264_VIDEOTOOLBOX_HWACCEL
                              HWACCEL_VIDEOTOOLBOX(h264),
  1. endif
                              NULL
                          },
   .caps_internal         = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_EXPORTS_CROPPING,
   .flush                 = flush_dpb,
   .init_thread_copy      = ONLY_IF_THREADS_ENABLED(decode_init_thread_copy),
   .update_thread_context = ONLY_IF_THREADS_ENABLED(ff_h264_update_thread_context),
   .profiles              = NULL_IF_CONFIG_SMALL(ff_h264_profiles),
   .priv_class            = &h264_class,

};