X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=doc%2Fexamples%2Fvaapi_encode.c;h=e232fa579a176ea0e4cedaadda449a042dedbaa3;hb=626535f6a169e2d821b969e0ea77125ba7482113;hp=98fd5d3b51290cbf5337ccfa912c77ac5aeacf71;hpb=79025da3f2e7ab047c8f3c0c817952a98480b26b;p=ffmpeg diff --git a/doc/examples/vaapi_encode.c b/doc/examples/vaapi_encode.c index 98fd5d3b512..e232fa579a1 100644 --- a/doc/examples/vaapi_encode.c +++ b/doc/examples/vaapi_encode.c @@ -74,27 +74,27 @@ static int set_hwframe_ctx(AVCodecContext *ctx, AVBufferRef *hw_device_ctx) static int encode_write(AVCodecContext *avctx, AVFrame *frame, FILE *fout) { int ret = 0; - AVPacket enc_pkt; + AVPacket *enc_pkt; - av_init_packet(&enc_pkt); - enc_pkt.data = NULL; - enc_pkt.size = 0; + if (!(enc_pkt = av_packet_alloc())) + return AVERROR(ENOMEM); if ((ret = avcodec_send_frame(avctx, frame)) < 0) { fprintf(stderr, "Error code: %s\n", av_err2str(ret)); goto end; } while (1) { - ret = avcodec_receive_packet(avctx, &enc_pkt); + ret = avcodec_receive_packet(avctx, enc_pkt); if (ret) break; - enc_pkt.stream_index = 0; - ret = fwrite(enc_pkt.data, enc_pkt.size, 1, fout); - av_packet_unref(&enc_pkt); + enc_pkt->stream_index = 0; + ret = fwrite(enc_pkt->data, enc_pkt->size, 1, fout); + av_packet_unref(enc_pkt); } end: + av_packet_free(&enc_pkt); ret = ((ret == AVERROR(EAGAIN)) ? 0 : -1); return ret; } @@ -105,7 +105,7 @@ int main(int argc, char *argv[]) FILE *fin = NULL, *fout = NULL; AVFrame *sw_frame = NULL, *hw_frame = NULL; AVCodecContext *avctx = NULL; - AVCodec *codec = NULL; + const AVCodec *codec = NULL; const char *enc_name = "h264_vaapi"; if (argc < 5) { @@ -172,7 +172,7 @@ int main(int argc, char *argv[]) sw_frame->width = width; sw_frame->height = height; sw_frame->format = AV_PIX_FMT_NV12; - if ((err = av_frame_get_buffer(sw_frame, 32)) < 0) + if ((err = av_frame_get_buffer(sw_frame, 0)) < 0) goto close; if ((err = fread((uint8_t*)(sw_frame->data[0]), size, 1, fin)) <= 0) break;