From patchwork Tue Jan 14 03:13:30 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 17333 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 1981A44BB84 for ; Tue, 14 Jan 2020 05:13:52 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E95EF68A898; Tue, 14 Jan 2020 05:13:51 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f65.google.com (mail-wr1-f65.google.com [209.85.221.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id ABB8B68A16A for ; Tue, 14 Jan 2020 05:13:45 +0200 (EET) Received: by mail-wr1-f65.google.com with SMTP id q10so10674317wrm.11 for ; Mon, 13 Jan 2020 19:13:45 -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:mime-version :content-transfer-encoding; bh=HM7RUjlYhQDpl2yYMz75DLdGxZHgb4pvwD6zDojSPHo=; b=S55KUNN1ohb8HE23xi3wo6i0GloeUm8TgdaGerLkw031iU/YD6ssoQEBiMsB3FSjgB D/6rexdsdQniqemqEux2+v3CO3JA3Ix9mr/9w9irNc3Gmfmzg/QrVHMx3fs8Yf2O5jeF Exu7ybTQaX7+y3g9RohX3iAiNxiIhdKtqQmPEE7oDDLrOp3RNeVw+OQipEKyHgLrSKHk PACiypBIK9G+YGHe74UovP7qGz9Lv5UB2QIoOsWNFg1K4JtMxIo0QVKVislafBcEJ+7Q Da/uUrluoJikBaa2n3K/wqApY5zuhvMNKI0P7Ct8Bz862WkhW6xpt7eOqmkToWxxL7bI 9Q3A== 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:mime-version :content-transfer-encoding; bh=HM7RUjlYhQDpl2yYMz75DLdGxZHgb4pvwD6zDojSPHo=; b=oLL+qwIQ1hx+4cNXUVhfPcF/CQGYotFLjTTHPC3t2h36t9kmHBTWIMta9SdWR8h7Te X8UsEFioEZ1SUqcNxoxkAKcVxHXN63tPTD5ErWiAEdW7r3UIgMBMJlTGyvaKtU7bhU4z H9gQs9llwYOmqUe0qeqDHc7m4Okdpdy2yfX3YSwx4/oz02O5mXmybKioB+lqfeuzocKD +2guJu7kZr/eJzMCY6NqnqPbvSdsomrDAYjhrk2GUb0lBtI/xnyhT8dEaZ8eChLRQe5r vv2f68zRv250nMfKIPUGqtU2buL7B2QWWndRzyzkSvnJsKONcI+QmqcWFlsOEcwY5lkQ v4jA== X-Gm-Message-State: APjAAAVBZR/lCwZbhOHxQp7Al0bUMFrJfHMWusbLyOd876MqTCy0du6E /KEbppCieSkEXnuBCQ17hK+j44hS X-Google-Smtp-Source: APXvYqwY9lp3lEnHdrnB0qJEYARWu9KO73ommnefbtX4yv4RtAVoU/0VRmf+y+NtgELhuTZo+zsohA== X-Received: by 2002:adf:de86:: with SMTP id w6mr22778929wrl.115.1578971624838; Mon, 13 Jan 2020 19:13:44 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc08bbf.dynamic.kabel-deutschland.de. [188.192.139.191]) by smtp.gmail.com with ESMTPSA id w20sm16588476wmk.34.2020.01.13.19.13.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jan 2020 19:13:44 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 14 Jan 2020 04:13:30 +0100 Message-Id: <20200114031336.24096-1-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/7] avformat/segafilmenc: Fix undefined left shift of 1 by 31 places 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" by changing the type to unsigned. Signed-off-by: Andreas Rheinhardt --- libavformat/segafilmenc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/segafilmenc.c b/libavformat/segafilmenc.c index 812d0ad64e..d721ec38fa 100644 --- a/libavformat/segafilmenc.c +++ b/libavformat/segafilmenc.c @@ -70,7 +70,7 @@ static int film_write_packet_to_header(AVFormatContext *format_context, FILMPack info2 = pkt->duration; /* The top bit being set indicates a key frame */ if (!pkt->keyframe) - info1 |= (1 << 31); + info1 |= 1U << 31; } /* Write the 16-byte sample info packet to the STAB chunk in the header */ From patchwork Tue Jan 14 03:13:31 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 17334 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 07C8E44BB86 for ; Tue, 14 Jan 2020 05:14:04 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E738A68B060; Tue, 14 Jan 2020 05:14:03 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com [209.85.221.68]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E6E0668A16A for ; Tue, 14 Jan 2020 05:13:57 +0200 (EET) Received: by mail-wr1-f68.google.com with SMTP id b6so10701814wrq.0 for ; Mon, 13 Jan 2020 19:13:57 -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=wxwf/5kem7PhUjBclWJ5G4FvmEOKpSNeYUG0Uxne1fU=; b=m/IH2euFDU9TzBsn6rDUmtMCyqAO2+Fpxmz/UTh9r2v3hOpPDLqh4XOSVF8zBZkCRN kjHOCHogdupwtVgWCRHZ6to0HkK/Ehs7OICThFWNNu3yHZ7cFDOa4rK5g351mYr/G/H1 5NS6sn3PnvN/9StI8JdrlwYQjxIBHdd9e/Uh4OjlLhQqFbrlZ7Alyvb438EMfNIELar2 C6BMPh22KXxb/Hbmofckzl+2GuyvPWgl1pHisweUYUF9GLBgD4+rZYffinf+J3ULdT6F AqOQpG4dBoRmG30veObbXnhGW7ceJouNHFgjKEITg4DQ5cVJ9fs2csAQz31Vx26aFrgV xF+A== 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=wxwf/5kem7PhUjBclWJ5G4FvmEOKpSNeYUG0Uxne1fU=; b=VnocKwheNj3QdJ/9wYS6UnvjwmK7YlmjCbLh3VcJAl8wNX5bRZj6QkFTGG16jrfX4u IPsGBVHfCwJu/wqND5YDGgTgxhvTZZK6lPR5piBR9d6NqyZclHUiYv0W30DkDGBXccS8 bgXXMJjnX4izOtju/Jy3fQoi+nEHBWrAd65D192XZ5sxHF4hD+ZMOcmMBbJL9vKGX3UR 6Zi6kZW2yyyeBz0fgnI49FEQgihXsBm+KjMmCUFbMbsTl01Hv5RiJNwlENY5BicWl4JF Xh9U+iP2VHU1aBezR9gEakkm7HSDlVHKd8QnO3FvIYv8a4e4Z9B9gMN20RC9p9fT6V56 tL2g== X-Gm-Message-State: APjAAAWaq3qSjA2owvQKlfGvw6luuFQKONWJ/SxET/cgr3m4bxUAX02A xvYQPhwsp8Eh0xNBm/viyICK9fTb X-Google-Smtp-Source: APXvYqz1dDkmR8QCb8bC9/m60Uvq5ujRuJ43OLvv2E88IdWiFKENskXS0aqJ1/+0TPz15Z1MGAxl2g== X-Received: by 2002:a5d:46c7:: with SMTP id g7mr22092106wrs.11.1578971637268; Mon, 13 Jan 2020 19:13:57 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc08bbf.dynamic.kabel-deutschland.de. [188.192.139.191]) by smtp.gmail.com with ESMTPSA id w20sm16588476wmk.34.2020.01.13.19.13.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jan 2020 19:13:56 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 14 Jan 2020 04:13:31 +0100 Message-Id: <20200114031336.24096-2-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200114031336.24096-1-andreas.rheinhardt@gmail.com> References: <20200114031336.24096-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/7] avformat/segafilmenc: Postpone check for existence of video stream 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" Up until now, the Sega FILM muxer complained if the first stream wasn't a video stream that there is no video stream at all which is of course nonsense. So postpone this check. Signed-off-by: Andreas Rheinhardt --- libavformat/segafilmenc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libavformat/segafilmenc.c b/libavformat/segafilmenc.c index d721ec38fa..56fc59a811 100644 --- a/libavformat/segafilmenc.c +++ b/libavformat/segafilmenc.c @@ -183,11 +183,11 @@ static int film_init(AVFormatContext *format_context) } film->video_index = i; } + } - if (film->video_index == -1) { - av_log(format_context, AV_LOG_ERROR, "No video stream present.\n"); - return AVERROR(EINVAL); - } + if (film->video_index == -1) { + av_log(format_context, AV_LOG_ERROR, "No video stream present.\n"); + return AVERROR(EINVAL); } if (audio != NULL && get_audio_codec_id(audio->codecpar->codec_id) < 0) { From patchwork Tue Jan 14 03:13:32 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 17335 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 2DBE944BB86 for ; Tue, 14 Jan 2020 05:14:07 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 13E9168B09B; Tue, 14 Jan 2020 05:14:07 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f67.google.com (mail-wm1-f67.google.com [209.85.128.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B9F2868B04D for ; Tue, 14 Jan 2020 05:13:58 +0200 (EET) Received: by mail-wm1-f67.google.com with SMTP id d73so12080928wmd.1 for ; Mon, 13 Jan 2020 19:13:58 -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=JvQ17PJBHWnjMOyFAg629+209PjlHd9hESo093USu8g=; b=f6nVAMWHYPyQZBXwzJY5u7cmjKn2n0U0G9VHxYbAm+sX0HdLpVlcmHNGtykzpOsv4L 2WDVGG6Gk3og94No8LyzE+UQQH+534MR1pPGjRx8UEFNzp5VOqg9y39T9ATPM1z1ShiE 5YGbvwz6y7Jyb9rSCjI0VURknSs0/MqaS79Q+cAE4xMDDrhJtphxprLbk5N/CaoM8NyX rfgnMKie0/XPERVmg7C7F7+w+Gq6qxXSI/6wyIaiEFQAVwe1bX2hheU6s9FwbyT6qQeT eDbJRUjT+eySMOgD5AWVYtGC31nQIU8LyTHpZec/AG561hgxNr2/+QiJACsO9OWpb87/ 7vSA== 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=JvQ17PJBHWnjMOyFAg629+209PjlHd9hESo093USu8g=; b=duzzDkF06TtGGV7X1PGcsvJ5rbmDxGBPDxeKrfF/T2E248PQeMhproQqWp65/yzH9L plBbhZijV7ufH+Vj6Kc91dufkP0W1ctDtvuty6EshxLzea8OAgofMw9KZpvTKnkSWVeh WuOFYTrGu+gZCIlDKq8azZJiLa8NLmYe/PQK7zgZf7+1kmm2IqMXSSztkUZ0oPPqtQJl fQjYxpjxOq9B5ebywyUiPNXb4OaP889R9NvS64eslb2uvFQw+xIzhRje/xknuOJwGBrs y8KJQWfruaEvzezOHt0yK1+cqdpxXOOo7c+iIZoaRTaiI46hRa6LAAIf7MHAEkBv2nDE Jjsg== X-Gm-Message-State: APjAAAUCfrzBxAQhp1XpJxCwREQxsEjIOQHA+d6T93A7aN/IsbFQBX8w gYkZBTMGWq8AGwkqU39r6wwL9dGL X-Google-Smtp-Source: APXvYqxyNwDIRNkhRCN8Xvg3hfhdrLnXcmZAeknODLHeVRmw4tWuHf26JgeuDesmMbTiyEax7DxZEw== X-Received: by 2002:a1c:1b41:: with SMTP id b62mr23483293wmb.53.1578971638083; Mon, 13 Jan 2020 19:13:58 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc08bbf.dynamic.kabel-deutschland.de. [188.192.139.191]) by smtp.gmail.com with ESMTPSA id w20sm16588476wmk.34.2020.01.13.19.13.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jan 2020 19:13:57 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 14 Jan 2020 04:13:32 +0100 Message-Id: <20200114031336.24096-3-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200114031336.24096-1-andreas.rheinhardt@gmail.com> References: <20200114031336.24096-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/7] avformat/segafilmenc: Check early whether video is allowed 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" The current code only checks when writing the trailer whether the video format and Codec ID are actually compatible with the container. At this point, a lot of data will already have been written (in vain, of course), so check during the init function instead. Signed-off-by: Andreas Rheinhardt --- libavformat/segafilmenc.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/libavformat/segafilmenc.c b/libavformat/segafilmenc.c index 56fc59a811..bd7c03faf5 100644 --- a/libavformat/segafilmenc.c +++ b/libavformat/segafilmenc.c @@ -181,6 +181,17 @@ static int film_init(AVFormatContext *format_context) av_log(format_context, AV_LOG_ERROR, "Sega FILM allows a maximum of one video stream.\n"); return AVERROR(EINVAL); } + if (st->codecpar->codec_id != AV_CODEC_ID_CINEPAK && + st->codecpar->codec_id != AV_CODEC_ID_RAWVIDEO) { + av_log(format_context, AV_LOG_ERROR, + "Incompatible video stream format.\n"); + return AVERROR(EINVAL); + } + if (st->codecpar->format != AV_PIX_FMT_RGB24) { + av_log(format_context, AV_LOG_ERROR, + "Pixel format must be rgb24.\n"); + return AVERROR(EINVAL); + } film->video_index = i; } } @@ -293,11 +304,6 @@ static int film_write_header(AVFormatContext *format_context) } } - if (video->codecpar->format != AV_PIX_FMT_RGB24) { - av_log(format_context, AV_LOG_ERROR, "Pixel format must be rgb24.\n"); - return AVERROR(EINVAL); - } - /* First, write the FILM header; this is very simple */ ffio_wfourcc(pb, "FILM"); @@ -320,9 +326,6 @@ static int film_write_header(AVFormatContext *format_context) case AV_CODEC_ID_RAWVIDEO: ffio_wfourcc(pb, "raw "); break; - default: - av_log(format_context, AV_LOG_ERROR, "Incompatible video stream format.\n"); - return AVERROR(EINVAL); } avio_wb32(pb, video->codecpar->height); From patchwork Tue Jan 14 03:13:33 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 17336 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 1557F44BB86 for ; Tue, 14 Jan 2020 05:14:08 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id F167168B076; Tue, 14 Jan 2020 05:14:07 +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 7055E68B053 for ; Tue, 14 Jan 2020 05:13:59 +0200 (EET) Received: by mail-wm1-f66.google.com with SMTP id w5so1258063wmi.1 for ; Mon, 13 Jan 2020 19:13:59 -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=q7o5dUKlFEKHZh2cAcy4SueiHPct+qIG+VbkV5+GaDE=; b=iuSo7abptmyDAANfhdTGYtOrm61Zg2ABLVOEFjG6keRQ6ig84fg+uFRwJIiQsmfnij Pf5EkVUGQFrBVxnDLhzH9j8uDkNDsJ6eCcYx4yQlYlKgI8is3O2Y8snhhLG0Ye/gFtD9 nYzTsIjyNkqnWhtR7btK3Nh6Tq8rL2brkTUI0C0VQrFQ+51jTzLB2vRk9RnP0+7M39Ed jo1AYkSvJLYNdnNHTI4tZSBrDjHxzvH7SLcy5fnUYdA+b/Sga7dNV7+DDgBLHNM/5b+C qSmP66TrAtrFXWleSgeOzApn4jCzbVzqTImtUm6NKKjtkce/sfZo9xLVcOXX3PlC384B G1FQ== 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=q7o5dUKlFEKHZh2cAcy4SueiHPct+qIG+VbkV5+GaDE=; b=EKCE8QdSiIoOayZ/s0lv3rcFTfMRHzXq3dq7U2YIcbsm7E9YRGOJVaHIJhpKmmk+2y DzVxoTY7nrIUdwgWvn5/CtoxPnPZpHwJFbPcL+u2uQWXxYC+q0YtAatxgmD2TSYWmpMm UEo1GH4QjmJ56mE7SLb7F1apAKFomI+MHzmZ0gvIhfkPSYQtNYqFje/Yk3ppT/1afmek 0CWJ4VYDyfkS298q5GQZ102065oygqWDoy4HqAH3MuOsF7m2zzGVOhmRK7vmdN0J7OkV 2vZRucufjdk/6BNyTpNpCM/GYfm7VYTncXRBL8LXLqLrAxKobiwxC4IVhYh6mQjT7SOD 24KQ== X-Gm-Message-State: APjAAAUawlJeVLkJp6whQdG8CKS79EHjTN14WA1I/cQewUN8ROF4zM1Y uxrpfzbzl8t92/HBwmHgtLNFfXBT X-Google-Smtp-Source: APXvYqwCDEssbKveToP/xwLMPNlE4Aa4l9Syz3vq4RAnmPtK+Avlwm6oc4ZKilwIGQ83AvmQ4zHJqg== X-Received: by 2002:a05:600c:220e:: with SMTP id z14mr24065325wml.114.1578971638826; Mon, 13 Jan 2020 19:13:58 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc08bbf.dynamic.kabel-deutschland.de. [188.192.139.191]) by smtp.gmail.com with ESMTPSA id w20sm16588476wmk.34.2020.01.13.19.13.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jan 2020 19:13:58 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 14 Jan 2020 04:13:33 +0100 Message-Id: <20200114031336.24096-4-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200114031336.24096-1-andreas.rheinhardt@gmail.com> References: <20200114031336.24096-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 4/7] avformat/segafilmenc: Remove AVClass 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" This muxer does not have any private options and so does not need a private class. Signed-off-by: Andreas Rheinhardt --- libavformat/segafilmenc.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/libavformat/segafilmenc.c b/libavformat/segafilmenc.c index bd7c03faf5..5ac60ea5c3 100644 --- a/libavformat/segafilmenc.c +++ b/libavformat/segafilmenc.c @@ -45,7 +45,6 @@ typedef struct FILMPacket { } FILMPacket; typedef struct FILMOutputContext { - const AVClass *class; int audio_index; int video_index; int64_t stab_pos; @@ -377,12 +376,6 @@ static int film_write_header(AVFormatContext *format_context) return 0; } -static const AVClass film_muxer_class = { - .class_name = "Sega FILM muxer", - .item_name = av_default_item_name, - .version = LIBAVUTIL_VERSION_INT, -}; - AVOutputFormat ff_segafilm_muxer = { .name = "film_cpk", .long_name = NULL_IF_CONFIG_SMALL("Sega FILM / CPK"), @@ -393,5 +386,4 @@ AVOutputFormat ff_segafilm_muxer = { .init = film_init, .write_trailer = film_write_header, .write_packet = film_write_packet, - .priv_class = &film_muxer_class, }; From patchwork Tue Jan 14 03:13:34 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 17337 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 00C1344BB86 for ; Tue, 14 Jan 2020 05:14:09 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id DD74468B0BA; Tue, 14 Jan 2020 05:14:08 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com [209.85.221.68]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 42F1768A898 for ; Tue, 14 Jan 2020 05:14:00 +0200 (EET) Received: by mail-wr1-f68.google.com with SMTP id y17so10691305wrh.5 for ; Mon, 13 Jan 2020 19:14:00 -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=OXgg60eNs0zbAwpIQ8wUG2WNCrfvQdWKsGW6R47PI4w=; b=jqD9BRLUaAwEM3N6jWyk1TTrTIuVdXTKVg134jERuiHy5ifDjm2infX5EDnOf4sJUW 84AqaIm98FFZyIQ2DDLgR74j1khAumtHUrrylmymBpjZalFHR0PcrQUejEYKH++8Ihxw n5X2WZ6Q97lZl0b+Cr7r1gxBp7xzfaBTqp0ScjCKhckKGL3JK++9gLfbdGaMEDEER8cX sJfvIvMMUj6ILrDWLVBP/VA/i/J7jLzOLWQQfYf3KFkVNrPIdXI+uHBVY4gzt6vtvb94 gaOMO5cbOyrmOvQHSMUyHt24BMnY5rlrLZBMW2Xyzsi2nfeyDg9jX8vY9JO0DqQDq+BS 0+pw== 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=OXgg60eNs0zbAwpIQ8wUG2WNCrfvQdWKsGW6R47PI4w=; b=MwZbXZFnZYvVEm8SACaRGbXBm7ERvhFINEUyP7K5pLcLjZooRdi2duP+2AjxIY9DgQ Dss45KjMrmbi31gj3QP1zY++k9zN8txE5dw1nJVGUVL7b19ebExWZtugkPJRuoMnLB1p VzG+WJDqQNYgxgoe/Mwiq3NFepIi+Cv4y0LxaszFv1dB6vgXnnmvGaWZxb+tsMhCyQAU RO2AE4wLBPeW2X9eqwOW85zt8qLbQFgo0tWsDbvDFk3WUQkVf86wuGaztodOy2O/NQt4 NSp3wyqU5qyCo8EUGo+qsGT4JKLainf27kU/g6c1OhKz6fpEuZPXO2zSUM8ryXw8yQ6G jjLQ== X-Gm-Message-State: APjAAAXsdIqpp4lZjOUY9a4NveGbiki41om3YUi1IdBGyed6ILmeuxlr rCBoFN66G6fSruU879ZYfhkT10l8 X-Google-Smtp-Source: APXvYqzXal6a7j+x1tkD++/rgpMDn+ZfWa0DiPtTBg20iclpPdUuIQPxgN4i3ikTYXZ82Ci96AMb7A== X-Received: by 2002:a05:6000:1044:: with SMTP id c4mr22677851wrx.204.1578971639565; Mon, 13 Jan 2020 19:13:59 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc08bbf.dynamic.kabel-deutschland.de. [188.192.139.191]) by smtp.gmail.com with ESMTPSA id w20sm16588476wmk.34.2020.01.13.19.13.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jan 2020 19:13:59 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 14 Jan 2020 04:13:34 +0100 Message-Id: <20200114031336.24096-5-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200114031336.24096-1-andreas.rheinhardt@gmail.com> References: <20200114031336.24096-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 5/7] avformat/segafilmenc: Remove redundant checks 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" If an audio stream is present, the Sega FILM muxer checks for its compability with the container during init, so that the very same check needn't be repeated during writing the trailer. Essentially the same is true for the presence of a video stream: It has already been checked during init. Furthermore, after the check for the presence of a video stream succeeded, a pointer is set to point to the video stream. Yet said pointer (which was NULL before) will be derefenced anyway regardless of the result of the check. Coverity thus complained about this in CID 1434155 and removing this pointless check will also fix this issue. Signed-off-by: Andreas Rheinhardt --- libavformat/segafilmenc.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/libavformat/segafilmenc.c b/libavformat/segafilmenc.c index 5ac60ea5c3..4f881f4f2f 100644 --- a/libavformat/segafilmenc.c +++ b/libavformat/segafilmenc.c @@ -292,15 +292,9 @@ static int film_write_header(AVFormatContext *format_context) if (film->audio_index > -1) audio = format_context->streams[film->audio_index]; - if (film->video_index > -1) - video = format_context->streams[film->video_index]; if (audio != NULL) { audio_codec = get_audio_codec_id(audio->codecpar->codec_id); - if (audio_codec < 0) { - av_log(format_context, AV_LOG_ERROR, "Incompatible audio stream format.\n"); - return AVERROR(EINVAL); - } } /* First, write the FILM header; this is very simple */ @@ -317,6 +311,8 @@ static int film_write_header(AVFormatContext *format_context) ffio_wfourcc(pb, "FDSC"); avio_wb32(pb, 0x20); /* Size of FDSC chunk */ + video = format_context->streams[film->video_index]; + /* The only two supported codecs; raw video is rare */ switch (video->codecpar->codec_id) { case AV_CODEC_ID_CINEPAK: From patchwork Tue Jan 14 03:13:35 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 17338 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 0B77B44BB86 for ; Tue, 14 Jan 2020 05:14:10 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id EA9E068B0C2; Tue, 14 Jan 2020 05:14:09 +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 0381568A898 for ; Tue, 14 Jan 2020 05:14:01 +0200 (EET) Received: by mail-wm1-f66.google.com with SMTP id p9so12105507wmc.2 for ; Mon, 13 Jan 2020 19:14:00 -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=XrOknFAUUVHlThSiNzzSubt5UsrhqwF0q0epZQTeIbw=; b=rSzQi25O9qD6/nyzuZ5vou3k3DyBg6n7V3UZoUdYrLKczZIT5wif5SPsR5J9h+zqRl AZOzDD0MaVWBZtMjkrWORaVm9H3SoC7EzSwG1Q5N4qqrqomz1UKYmcqR/1dbhlEekRqS uH3Jc8qWyDwjRfilWXs3HTrbq77m+UYlmaFnFZgcquIOsGcK0uHaMbgfnC/nfaYN2Tvc CisM5PQvnp8V5e0mehQ5BIU11VL+OLL2Vvyla52xPrRK53J8refZ6998dBGrfZlVXlgS wFg+M1C869a/oS0pyRyXUYJ+CnLGwWwEQ7EXPQaH7ESsugGLhsvyShzyn8tNzRu+03Yb CVew== 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=XrOknFAUUVHlThSiNzzSubt5UsrhqwF0q0epZQTeIbw=; b=WQ59FF9HK7j4tZyrabyUgBlhWo8kcEFvGftvT+cDrv01zXjQ7CD+QkpVRkjTMX9VKf wYNyyBBbCkDYJYqBbVffkYpSbxyvH9a5/3ve62HCvZLS5zHnJVuBK+81vM5akz1XTXAF iV2CWS5SgB3BUPU1srhiUdBfu2ja53eGpkTGPWsmXWQevChMN0qrFIbvXsdj+h55Cs+j vvJpao1Fg8rs4QOLEeFsTrm0hVZOJBxjiyR4N1o6hMMmRpJohr438Uyl+uxMqE45/2Hl rLSpHMblKqmFBLepY+EOKcVWaBTrFGHkK0+r2QPKafIhGT2ywjQdv91cjJ3DmOxhbT5O SGVg== X-Gm-Message-State: APjAAAVZEu1r9mabyjOqu3Ogp1hvx2j9RxUblONYXSLQbN5ZgSwpDNPY yNNrjEm2imkSJ1DPsxZRt7X7mpDx X-Google-Smtp-Source: APXvYqxIzBFrP1Id7B4PxEy7nWWYFm3x/I2cJ4wtdC7GLsltStKTHCjonsNRNoFAsQFvPhN1u3zxXg== X-Received: by 2002:a1c:bbc3:: with SMTP id l186mr24227948wmf.101.1578971640317; Mon, 13 Jan 2020 19:14:00 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc08bbf.dynamic.kabel-deutschland.de. [188.192.139.191]) by smtp.gmail.com with ESMTPSA id w20sm16588476wmk.34.2020.01.13.19.13.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jan 2020 19:13:59 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 14 Jan 2020 04:13:35 +0100 Message-Id: <20200114031336.24096-6-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200114031336.24096-1-andreas.rheinhardt@gmail.com> References: <20200114031336.24096-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 6/7] avformat/segafilmenc: Combine several checks 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" by moving them around. Signed-off-by: Andreas Rheinhardt --- libavformat/segafilmenc.c | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/libavformat/segafilmenc.c b/libavformat/segafilmenc.c index 4f881f4f2f..137f153331 100644 --- a/libavformat/segafilmenc.c +++ b/libavformat/segafilmenc.c @@ -155,7 +155,6 @@ static int get_audio_codec_id(enum AVCodecID codec_id) static int film_init(AVFormatContext *format_context) { - AVStream *audio = NULL; FILMOutputContext *film = format_context->priv_data; film->audio_index = -1; film->video_index = -1; @@ -171,8 +170,12 @@ static int film_init(AVFormatContext *format_context) av_log(format_context, AV_LOG_ERROR, "Sega FILM allows a maximum of one audio stream.\n"); return AVERROR(EINVAL); } + if (get_audio_codec_id(st->codecpar->codec_id) < 0) { + av_log(format_context, AV_LOG_ERROR, + "Incompatible audio stream format.\n"); + return AVERROR(EINVAL); + } film->audio_index = i; - audio = st; } if (st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) { @@ -200,11 +203,6 @@ static int film_init(AVFormatContext *format_context) return AVERROR(EINVAL); } - if (audio != NULL && get_audio_codec_id(audio->codecpar->codec_id) < 0) { - av_log(format_context, AV_LOG_ERROR, "Incompatible audio stream format.\n"); - return AVERROR(EINVAL); - } - return 0; } @@ -269,11 +267,9 @@ static int film_write_header(AVFormatContext *format_context) { int ret = 0; int64_t sample_table_size, stabsize, headersize; - int8_t audio_codec; AVIOContext *pb = format_context->pb; FILMOutputContext *film = format_context->priv_data; FILMPacket *prev, *packet; - AVStream *audio = NULL; AVStream *video = NULL; /* Calculate how much we need to reserve for the header; @@ -290,13 +286,6 @@ static int film_write_header(AVFormatContext *format_context) /* Seek back to the beginning to start writing the header now */ avio_seek(pb, 0, SEEK_SET); - if (film->audio_index > -1) - audio = format_context->streams[film->audio_index]; - - if (audio != NULL) { - audio_codec = get_audio_codec_id(audio->codecpar->codec_id); - } - /* First, write the FILM header; this is very simple */ ffio_wfourcc(pb, "FILM"); @@ -327,7 +316,10 @@ static int film_write_header(AVFormatContext *format_context) avio_wb32(pb, video->codecpar->width); avio_w8(pb, 24); /* Bits per pixel - observed to always be 24 */ - if (audio != NULL) { + if (film->audio_index > -1) { + AVStream *audio = format_context->streams[film->audio_index]; + int audio_codec = get_audio_codec_id(audio->codecpar->codec_id); + avio_w8(pb, audio->codecpar->channels); /* Audio channels */ avio_w8(pb, audio->codecpar->bits_per_coded_sample); /* Audio bit depth */ avio_w8(pb, audio_codec); /* Compression - 0 is PCM, 2 is ADX */ From patchwork Tue Jan 14 03:13:36 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 17339 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 1A9EC44BB86 for ; Tue, 14 Jan 2020 05:14:11 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0705F68B0C1; Tue, 14 Jan 2020 05:14:11 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f68.google.com (mail-wm1-f68.google.com [209.85.128.68]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DDD3368B053 for ; Tue, 14 Jan 2020 05:14:01 +0200 (EET) Received: by mail-wm1-f68.google.com with SMTP id p17so12038599wmb.0 for ; Mon, 13 Jan 2020 19:14:01 -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=fU//RFRMN5oIqqKrv3wqCbcguiKYw1Ri8hJ1lmphkW8=; b=UUgtT1B+aw3yr78wJcrCg8cpql/6mvLTj+PoiATRDmImnBTyemvhdj4WMBkvv5J+O2 JVwM3E97pwGjCszAockFQ4Pl7F30J5ze3h+SwWsgnGO8Qch72dwsKrZ4cNPJ/1VcR+Gw blK2eGE9JvAePUfQMn8vRcCNiwq8Dcw0ZrzPuwfi7uQCpI1PggFgJkd4/05Yc0GzSHZC jSKtfeIb1ZrP8ClsBqMNv2cTwuWABg+jb/NuGsdMrmJgd4R07/pQo+zozSN0Y1JtbZGd OC4ifX944JeWLU1mFi9YR8P9FiCTjOxGwINy3jdz+zdvcGcgzQekmF+vA6M5c8e7rVlp 7qsg== 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=fU//RFRMN5oIqqKrv3wqCbcguiKYw1Ri8hJ1lmphkW8=; b=ugA2L/J0LCftUXEgTmfBJ4z6XE6Z5+endy9i/QTdcZoVH7T2ZKmOs8U3GG2yH2Gfqw 3rJpF8xu09R0mxC8lZr4E6wpJNd5rt7o87DGzK9jMRH5h2Vl8thIe6kyr5D7UAypfO3J 2E3wJXoBWiTeVXenjPQE9Npjm2paKpL6kcL07lgoXBB80kdzc9b4J56DIfSn5QYlqTFU DfkMtS/v+wt7z62IHoQD9C/hgSk1Nt2ED5SHYfXxc+J9Z+7T6AZGq8U0sBEjpIBszHEE Poszl82NzGsb/FG9iHKerDlP4SgPjaH3m96eHnl2hizfnE/rXEBAruJE4ustRbTS079Q szSg== X-Gm-Message-State: APjAAAWxgNlnm3P7Nr4vCttHhdjbfXIUlt5W6HddtPPVCIvZeiMd5ZTY s4E+mEfP8giU7KhV4ELGS46zVizW X-Google-Smtp-Source: APXvYqw+LDc0onIHKlEpDCcLSr83USO9bQUfZ1axSFUL+AsKsl/SY06fIIvxg8jVjsWRAg2erBfhJQ== X-Received: by 2002:a7b:cb0d:: with SMTP id u13mr24877899wmj.68.1578971641118; Mon, 13 Jan 2020 19:14:01 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc08bbf.dynamic.kabel-deutschland.de. [188.192.139.191]) by smtp.gmail.com with ESMTPSA id w20sm16588476wmk.34.2020.01.13.19.14.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jan 2020 19:14:00 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 14 Jan 2020 04:13:36 +0100 Message-Id: <20200114031336.24096-7-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200114031336.24096-1-andreas.rheinhardt@gmail.com> References: <20200114031336.24096-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 7/7] avformat/segafilmenc: Add deinit function 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" Prevents memleaks when the trailer is never written or when shifting the data fails when writing the trailer. Signed-off-by: Andreas Rheinhardt --- libavformat/segafilmenc.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/libavformat/segafilmenc.c b/libavformat/segafilmenc.c index 137f153331..6b66c68328 100644 --- a/libavformat/segafilmenc.c +++ b/libavformat/segafilmenc.c @@ -360,10 +360,23 @@ static int film_write_header(AVFormatContext *format_context) packet = packet->next; av_freep(&prev); } + film->start = film->last = NULL; return 0; } +static void film_deinit(AVFormatContext *format_context) +{ + FILMOutputContext *film = format_context->priv_data; + FILMPacket *packet = film->start; + while (packet != NULL) { + FILMPacket *next = packet->next; + av_free(packet); + packet = next; + } + film->start = film->last = NULL; +} + AVOutputFormat ff_segafilm_muxer = { .name = "film_cpk", .long_name = NULL_IF_CONFIG_SMALL("Sega FILM / CPK"), @@ -374,4 +387,5 @@ AVOutputFormat ff_segafilm_muxer = { .init = film_init, .write_trailer = film_write_header, .write_packet = film_write_packet, + .deinit = film_deinit, };