[MPlayer-dev-eng] [PATCH] vf_screenshot: do not silently create empty screenshot files.
Reimar Döffinger
Reimar.Doeffinger at gmx.de
Sat Dec 6 12:34:58 CET 2014
On encode error, print a message and don't open the file.
---
libmpcodecs/vf_screenshot.c | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/libmpcodecs/vf_screenshot.c b/libmpcodecs/vf_screenshot.c
index 360df9d..841990f 100644
--- a/libmpcodecs/vf_screenshot.c
+++ b/libmpcodecs/vf_screenshot.c
@@ -107,18 +107,22 @@ static void write_png(struct vf_priv_s *priv)
AVPacket pkt;
int res, got_pkt;
+ av_init_packet(&pkt);
+ pkt.data = priv->outbuffer;
+ pkt.size = priv->outbuffer_size;
+ res = avcodec_encode_video2(priv->avctx, &pkt, priv->pic, &got_pkt);
+ if (res < 0 || !got_pkt || pkt.size <= 0) {
+ mp_msg(MSGT_VFILTER,MSGL_ERR,"\nFailed to encode screenshot %s!\n", fname);
+ return;
+ }
+
fp = fopen (fname, "wb");
if (fp == NULL) {
mp_msg(MSGT_VFILTER,MSGL_ERR,"\nPNG Error opening %s for writing!\n", fname);
return;
}
- av_init_packet(&pkt);
- pkt.data = priv->outbuffer;
- pkt.size = priv->outbuffer_size;
- res = avcodec_encode_video2(priv->avctx, &pkt, priv->pic, &got_pkt);
- if (res >= 0 && got_pkt && pkt.size > 0)
- fwrite(priv->outbuffer, pkt.size, 1, fp);
+ fwrite(priv->outbuffer, pkt.size, 1, fp);
fclose (fp);
mp_msg(MSGT_VFILTER,MSGL_INFO,"*** screenshot '%s' ***\n",priv->fname);
--
2.1.3
More information about the MPlayer-dev-eng
mailing list