# HG changeset patch # User al # Date 1376475406 0 # Node ID 797bbffdd112548aff10bb42e8f87a84ff778c5e # Parent 0b2364deb6a1d31f68fd659b298a2d24c2d5f886 vo png: Switch to avcodec_encode_video2 The older function is deprecated and the newer function seems to not have the minimum buffer size limitation. Patch by Jiang Jiang >gzjjgod at gmail com< diff -r 0b2364deb6a1 -r 797bbffdd112 libvo/vo_png.c --- a/libvo/vo_png.c Tue Aug 13 20:45:51 2013 +0000 +++ b/libvo/vo_png.c Wed Aug 14 10:16:46 2013 +0000 @@ -146,9 +146,10 @@ static uint32_t draw_image(mp_image_t* mpi){ AVFrame pic; int buffersize; - int res; + int res, got_pkt; char buf[100]; FILE *outfile; + AVPacket pkt; // if -dr or -slices then do nothing: if(mpi->flags&(MP_IMGFLAG_DIRECT|MP_IMGFLAG_DRAW_CALLBACK)) return VO_TRUE; @@ -170,7 +171,10 @@ outbuffer = av_malloc(buffersize); outbuffer_size = buffersize; } - res = avcodec_encode_video(avctx, outbuffer, outbuffer_size, &pic); + av_init_packet(&pkt); + pkt.data = outbuffer; + pkt.size = outbuffer_size; + res = avcodec_encode_video2(avctx, &pkt, &pic, &got_pkt); if(res < 0){ mp_msg(MSGT_VO,MSGL_WARN, MSGTR_LIBVO_PNG_ErrorInCreatePng); @@ -178,7 +182,7 @@ return 1; } - fwrite(outbuffer, res, 1, outfile); + fwrite(outbuffer, pkt.size, 1, outfile); fclose(outfile); return VO_TRUE;