From patchwork Thu Dec 26 10:53:34 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 16968 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 01788449EFF for ; Thu, 26 Dec 2019 12:54:18 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E6C5168ABD5; Thu, 26 Dec 2019 12:54:17 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f66.google.com (mail-wm1-f66.google.com [209.85.128.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4F26F689EF9 for ; Thu, 26 Dec 2019 12:54:14 +0200 (EET) Received: by mail-wm1-f66.google.com with SMTP id 20so5791663wmj.4 for ; Thu, 26 Dec 2019 02:54:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=FwuHZmgoD4ftJRu0ueMr/riGEpN4bec35pEc0xfzqeE=; b=MCZPJmJyFt6U4liPLrsEANN+gClkDllMLIUB2MTb8mTrLMpnKsqB2nGwD6LCbMd5Y7 ypX/WK0cIuO4pf5EhMQ+Zcc82mZvPPkcls+ePK6Oij5SkIP8Q+haFvtdvmPCNjm0cUUd 7h7E189AHl5bHyZOrjv6FDpbzvNFM5SDNoUS7F7MrKaQrGaGrP8SK5RfXd8Qv9Erit+y nrt01V7NSypCZ1NCkv0OdgcDyjvAEluAEJs5WbEfzv9tiEIS+FbUQAVxCrbvkbAK/WM1 Rm0VEoB99pElTBmeB7EinodKh8BTDrQzlTImgaxKh/DZ6lfrEYeV16u1PIhs2BwCjNqd CKiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=FwuHZmgoD4ftJRu0ueMr/riGEpN4bec35pEc0xfzqeE=; b=tBy39AvMf+2Y71JO33c4JE1i6IXOppTVLQNs9fTMgTurafb4DH84PEvu6+N3nDJsHA arE3VkvYHLpDApNgIVkgnDQUnoPXXT7MYDiONmCD4d4yPAQ6ELhhPx/Tj8CSrTbyiTKy fqfE+P2f1fxY7pQ1TVqe4oILzrth9RgwWxpduDzvI0CU/irAHFLiVzJBGeBQiQkQl6A/ qTVX4Bxhxs/Vf2qaRmArCkpvImEryNUanfxecry+o5lL8tH1J/sHGrHMsVKO5ToXQ3w8 Ck1dSjUUAj8Rdg01UKFT/ymm9Lw38/FKDpan5G9cEfnk6DO7isNvovPzr/pWsP1lpAEh GrTg== X-Gm-Message-State: APjAAAUXHG088xgDPQDsu1bRyjUQGUKiX+QllNXp78a0hiEOOdQYDo9N rm5muiG9oz23ccVEc2n6F4A43jPS X-Google-Smtp-Source: APXvYqwBsJRK6sVowJnXxs5foXCnaAZ1E3SRY2/WJHcmtbuqPvrsIdm99RxQxQwFMG4Xx9MSNS8B2Q== X-Received: by 2002:a1c:5419:: with SMTP id i25mr13736129wmb.150.1577357653434; Thu, 26 Dec 2019 02:54:13 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc10203.dynamic.kabel-deutschland.de. [188.193.2.3]) by smtp.gmail.com with ESMTPSA id c68sm7997618wme.13.2019.12.26.02.54.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Dec 2019 02:54:12 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 26 Dec 2019 11:53:34 +0100 Message-Id: <20191226105342.11175-9-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20191226105342.11175-1-andreas.rheinhardt@gmail.com> References: <20191226105342.11175-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 09/17] avformat/flvenc: Forward errors from allocating keyframe index X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" While the function adding a new element to the keyframe index checked the allocation, the caller didn't check the return value. This has been changed. To do so, the return value has been changed to an ordinary ret instead of pb->error. This doesn't pose a problem, as write_packet() in mux.c already checks for write errors (since 9ad1e0c1). Signed-off-by: Andreas Rheinhardt --- No change since last time. libavformat/flvenc.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/libavformat/flvenc.c b/libavformat/flvenc.c index 862082dd2d..f6379cbe05 100644 --- a/libavformat/flvenc.c +++ b/libavformat/flvenc.c @@ -887,7 +887,7 @@ static int flv_write_packet(AVFormatContext *s, AVPacket *pkt) unsigned ts; int size = pkt->size; uint8_t *data = NULL; - int flags = -1, flags_size, ret; + int flags = -1, flags_size, ret = 0; int64_t cur_offset = avio_tell(pb); if (par->codec_type == AVMEDIA_TYPE_AUDIO && !pkt->size) { @@ -1057,15 +1057,17 @@ static int flv_write_packet(AVFormatContext *s, AVPacket *pkt) case AVMEDIA_TYPE_VIDEO: flv->videosize += (avio_tell(pb) - cur_offset); flv->lasttimestamp = flv->acurframeindex / flv->framerate; + flv->acurframeindex++; if (pkt->flags & AV_PKT_FLAG_KEY) { - double ts = flv->acurframeindex / flv->framerate; + double ts = flv->lasttimestamp; int64_t pos = cur_offset; - flv->lastkeyframetimestamp = flv->acurframeindex / flv->framerate; + flv->lastkeyframetimestamp = ts; flv->lastkeyframelocation = pos; - flv_append_keyframe_info(s, flv, ts, pos); + ret = flv_append_keyframe_info(s, flv, ts, pos); + if (ret < 0) + goto fail; } - flv->acurframeindex++; break; case AVMEDIA_TYPE_AUDIO: @@ -1077,10 +1079,10 @@ static int flv_write_packet(AVFormatContext *s, AVPacket *pkt) break; } } - +fail: av_free(data); - return pb->error; + return ret; } static int flv_check_bitstream(struct AVFormatContext *s, const AVPacket *pkt)