commit 0de5693026e9e2bd2799f3e1e4e7d929a14271b7
parent f71355829ab07f9632e3c1195f8bffa50e40826e
Author: Christian Grothoff <christian@grothoff.org>
Date: Sun, 15 Oct 2017 19:51:49 +0200
fix duration initialization in ffmpeg extractor (badly positioned #if)
Diffstat:
2 files changed, 14 insertions(+), 17 deletions(-)
diff --git a/ChangeLog b/ChangeLog
@@ -2,7 +2,8 @@ Sun Oct 15 19:36:41 CEST 2017
Fix potential file descriptor leak (on error handling path).
Fix potential assign-after-free (on IPC error handling path).
Make sure to only pass "unsigned char" to functions like isspace().
- Avoid malloc(0) in DEB extractor under certain conditions. -CG
+ Avoid malloc(0) in DEB extractor under certain conditions.
+ Properly initialize 'duration' in ffmpeg extractor. -CG
Fri Oct 13 12:30:37 CEST 2017
Properly check read error in NSF plugin (from signedness confusion) found by Leon Zhao. -CG
diff --git a/src/plugins/thumbnailffmpeg_extractor.c b/src/plugins/thumbnailffmpeg_extractor.c
@@ -621,6 +621,7 @@ extract_video (struct EXTRACTOR_ExtractContext *ec)
int err;
int frame_finished;
unsigned char *iob;
+ int duration;
if (NULL == (iob = av_malloc (16 * 1024)))
return;
@@ -704,32 +705,27 @@ extract_video (struct EXTRACTOR_ExtractContext *ec)
av_free (io_ctx);
return;
}
- int duration;
+
if (format_ctx->duration == AV_NOPTS_VALUE)
- {
- duration = -1;
+ {
+ duration = -1;
#if DEBUG
- fprintf (stderr,
- "Duration unknown\n");
+ fprintf (stderr,
+ "Duration unknown\n");
#endif
- }
+ }
else
- {
-#if DEBUG
- duration = format_ctx->duration;
- fprintf (stderr,
- "Duration: %lld\n",
- format_ctx->duration);
-#endif
- }
+ {
+ duration = format_ctx->duration;
+ }
/* if duration is known, seek to first tried,
* else use 10 sec into stream */
if(-1 != duration)
- err = av_seek_frame (format_ctx, -1, (duration/3), 0);
+ err = av_seek_frame (format_ctx, -1, (duration/3), 0);
else
- err = av_seek_frame (format_ctx, -1, 10 * AV_TIME_BASE, 0);
+ err = av_seek_frame (format_ctx, -1, 10 * AV_TIME_BASE, 0);
if (err >= 0)
avcodec_flush_buffers (codec_ctx);