<div dir="ltr"><div>Hello,<br></div><div><br>I am trying to decode H264 video packets into AVFrames using Intel QSV. I am following these examples (1) (2), but the avcodec_decode_video2() function always outputs a value of 0 (unsuccessful decode). Below is my decode function:<br><br>-----------------------------------------------------------<br><br>avcodec_register_all();<br>AVCodec *codec;<br>AVCodecContext *context;<br><br>// INITIALIZE CODEC AND CONTEXT<br><br>codec = avcodec_find_decoder_by_name("h264_qsv");<br>context = avcodec_alloc_context3(codec);<br><br>// FUNCTION GET_FORMAT RETURNS AV_PIX_FMT_QSV<br>context->get_format  = get_format;<br><br>// CREATE QSV DEVICE, ATTACH TO CONTEXT<br><br>av_hwdevice_ctx_create(&hw_device_ctx, AV_HWDEVICE_TYPE_QSV, "auto", NULL, 0);<br>context->hw_device_ctx = av_buffer_ref(hw_device_ctx);<br><br>// CREATE HW FRAMES CONTEXT, ATTACH TO CONTEXT<br><br>av_buffer_unref(&context->hw_frames_ctx);<br>context->hw_frames_ctx = av_hwframe_ctx_alloc(hw_device_ctx);<br><br>AVHWFramesContext *frames_ctx;<br><br>frames_ctx = (AVHWFramesContext*)context->hw_frames_ctx->data;<br>frames_ctx->format = AV_PIX_FMT_QSV;<br>frames_ctx->sw_format = AV_PIX_FMT_NV12;<br>frames_ctx->width = in_width;<br>frames_ctx->height = in_height;<br>frames_ctx->initial_pool_size = 32;<br><br>av_hwframe_ctx_init(context->hw_frames_ctx);<br><br>// OPEN THE CONTEXT, CREATE FRAMES<br><br>avcodec_open2(context, NULL, NULL);<br><br>AVFrame * sw_frame = av_frame_alloc();<br>AVFrame * hw_frame = av_frame_alloc();<br><br>// DECODE THE PACKET (Packet is initialized and filled elsewhere)<br><br>int success;<br>avcodec_decode_video2(context, hw_frame, &success, &packet);<br><br>-----------------------------------------------------------<br><br>I know that my packets are encoded correctly, because the decoding works well when I just use AV_CODEC_ID_H264. I've also tried the new decode functions (avcodec_send_packet and avcodec_receive_frame), but avcodec_send_packet() returns -11. <br><br>Does anyone have any ideas as to what I could be missing?<br><br>Thank you!<br></div><div><br></div><div>Philippe</div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>