On Tue, 5 Aug 2014 03:10:36 -0700 Prashanth Bhat <[email protected]> wrote:
> Hi, > > I'm using libavcodec to perform decoding of H.264 frames. > > I'm on a Linux environment (14.04 Xubuntu), and Intel Haswell CPU. > > My program decodes the frames, without rendering them on the screen. With 4 > simultaneous decodes of 1080p resolution and 15 fps, the CPU utilization is > around 90% (not bad), but the load average shown by 'top' is 20+ > > This looks excessive. I don't think I'm using the hardware decoding ability > of the Haswell CPU. Could someone please advise how to find out if I'm > effectively using the decoder? Hardware decoding is a completely different beast from CPU decoding. libavcodec only provides a part of what is involved with hardware decoding. You need to use VA-API (Intel's library for hw decoding) and need to set it up to work with libavcodec. This is non-trivial, and unfortunately there isn't even a sample. There are examples for DXVA, VDA, and VDPAU, but none for VAAPI yet. Since VDPAU is conceptually still relatively similar to VAAPI, you might have some success understanding how it works and what you have to do by looking at the VDPAU example: http://git.libav.org/?p=libav.git;a=blob;f=avconv_vdpau.c > The API calls I'm making are pretty standard - > avcodec_register_all(); > > avcodec_alloc_context3(NULL); > > avcodec_find_decoder(AV_CODEC_ID_H264); > > av_parser_init(AV_CODEC_ID_H264); > > avcodec_open2(); > > > The above calls are made during initialization. The below calls are made on > each frame - > > av_parser_parse2 > > avcodec_decode_video2 > > > The following points are probably relevant - > a) The default context allocated by avcodec_alloc_context3() does not have > any hw_accel associated with it. I allocated a h264_vaapi accelerator, but > this doesn't lead to any improvement. > b) The codec capabilities does not have the HW_ACCEL bit set. > > Any help would be appreciated. > > Thanks, > Prashanth > _______________________________________________ > libav-api mailing list > [email protected] > https://lists.libav.org/mailman/listinfo/libav-api _______________________________________________ libav-api mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-api
