From 6bfd9f4a5655b17255b2293518bfef468f9e095b Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Mon, 23 May 2016 21:17:28 +0200 Subject: [PATCH] transcoding: subtitle - fix AVSubtittle variable initialization - coverity --- src/plumbing/transcoding.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/plumbing/transcoding.c b/src/plumbing/transcoding.c index e7a327d7e..01146ad1d 100644 --- a/src/plumbing/transcoding.c +++ b/src/plumbing/transcoding.c @@ -401,7 +401,7 @@ transcoder_stream_subtitle(transcoder_t *t, transcoder_stream_t *ts, th_pkt_t *p AVCodecContext *ictx; AVPacket packet; AVSubtitle sub; - int length, got_subtitle; + int length, got_subtitle; subtitle_stream_t *ss = (subtitle_stream_t*)ts; @@ -411,12 +411,13 @@ transcoder_stream_subtitle(transcoder_t *t, transcoder_stream_t *ts, th_pkt_t *p icodec = ss->sub_icodec; //ocodec = ss->sub_ocodec; + if (!avcodec_is_open(ictx)) { if (avcodec_open2(ictx, icodec, NULL) < 0) { tvherror("transcode", "%04X: Unable to open %s decoder", shortid(t), icodec->name); transcoder_stream_invalidate(ts); - goto cleanup; + return; } } @@ -427,6 +428,8 @@ transcoder_stream_subtitle(transcoder_t *t, transcoder_stream_t *ts, th_pkt_t *p packet.dts = pkt->pkt_dts; packet.duration = pkt->pkt_duration; + memset(&sub, 0, sizeof(sub)); + length = avcodec_decode_subtitle2(ictx, &sub, &got_subtitle, &packet); if (length <= 0) { if (length == AVERROR_INVALIDDATA) goto cleanup; -- 2.47.3