Mercurial > mplayer.hg
changeset 36328:9af6f39eab61
vo png: Error handling and clean up
Simplify error path; returning 1 is obfuscated and not different
from returning VO_TRUE. We do not want to fatally error out anyway,
so printing a warning should be enough and not different from the
current behaviour.
Use av_free_packet, it is the counter part for av_init_packet .
It could e.g. potentially free side data. The buffer itself
will not be freed as is intended for our custom buffer which
we will try to re-use.
author | al |
---|---|
date | Wed, 14 Aug 2013 10:21:30 +0000 |
parents | 797bbffdd112 |
children | d334e70dc707 |
files | libvo/vo_png.c |
diffstat | 1 files changed, 4 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/libvo/vo_png.c Wed Aug 14 10:16:46 2013 +0000 +++ b/libvo/vo_png.c Wed Aug 14 10:21:30 2013 +0000 @@ -176,14 +176,14 @@ pkt.size = outbuffer_size; res = avcodec_encode_video2(avctx, &pkt, &pic, &got_pkt); - if(res < 0){ + if (res < 0 || !got_pkt) { mp_msg(MSGT_VO,MSGL_WARN, MSGTR_LIBVO_PNG_ErrorInCreatePng); - fclose(outfile); - return 1; + } else { + fwrite(outbuffer, pkt.size, 1, outfile); } - fwrite(outbuffer, pkt.size, 1, outfile); fclose(outfile); + av_free_packet(&pkt); return VO_TRUE; }