From patchwork Fri Feb 4 16:19:34 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 34125 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2c4e:0:0:0:0 with SMTP id x14csp3545096iov; Fri, 4 Feb 2022 08:20:12 -0800 (PST) X-Google-Smtp-Source: ABdhPJwG66g2eDrUzfLoIcOP0diKGa35E/77rkrmQ7m+qpkbFnQbq9lKIYxi6+ZrH5Sl9bJnZwr/ X-Received: by 2002:a17:907:c0e:: with SMTP id ga14mr3273604ejc.139.1643991611102; Fri, 04 Feb 2022 08:20:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643991611; cv=none; d=google.com; s=arc-20160816; b=TPHLQD8YeGXN+u7J3Ow0/1j9NVHHkSmyh73CRVVQCGkwdDbgYXzFy7lwrv160ikLHI sQsrl7GzsYCBQyDeyS3NjKO1nvQMM/ZtNAXhmRg44RXEcpZUK6P73uFxxQHexuRn1WgM O3Dn0GUTWK1OuUU3z+sGAhzw5eEflfZusAAxK6GdfJXZsXMJnxqTEwUzmP26UtA+DtEX 5EO/bW3e7AqMi65oP5RnSoxL3tV28pshJYmiEXR0z5ifLI6P0qrnQ52oJrRsVeu88Msn yrZDv756k2aa7UKLEjGQAdpLBiCynoP1WLvys1ATqcu23fEOdtu/FFciJkdYbbQlab8F Lckw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:date:to:from:message-id :dkim-signature:delivered-to; bh=IxoZRdWGypTgqqnRChmOjLGzpR0i9IWovkr9rsKfdoU=; b=GZ6Me3A0yfCGUGw3tRnr5CCMesWowHRAnOglueztFzJmDpmnfr19XRMX3igZ/B/He7 L8qOCXvr0tHrPYb23S4UFL7NaWrZiWbLJQ8+j0oozPwvdbdRXtC5cCCBqNVH01ep4ENi PIziNyJF+r0Yj4cTQotM6xiEAw1PiGlnU9PkJOAv6jdnqGCG2Y8xeo5vCG+QbBKfdJzX Xajy5IDcLHXxH8Hr41qgXWO79N+iVOzSA8q/f2OUKLeI4G9EMiFSUYMakb1pKOztUrTy snqy19BeMwtsb3YnqWjha8G5h1i9fof+OdNNt/Vlgp1IZpU4c1lSJIo3x5+iqhsOoeV9 U/3w== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b="Y/+i4P5i"; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id a6si1418163edt.233.2022.02.04.08.19.55; Fri, 04 Feb 2022 08:20:11 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b="Y/+i4P5i"; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4806768B220; Fri, 4 Feb 2022 18:19:51 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out203-205-221-221.mail.qq.com (out203-205-221-221.mail.qq.com [203.205.221.221]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 592E268B12E for ; Fri, 4 Feb 2022 18:19:43 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1643991578; bh=Zbo8GCTrClTyuG4U6u6b/m07Dl2EwaKMP6immcvU1Kc=; h=From:To:Cc:Subject:Date; b=Y/+i4P5iMGuGgK8os0pXcHJQltFI8KU8XPS3Y/Q+G6f+lIX3vVBJhpgRxGiDCBbgo iXYThTGkPkgLJo8EkXj4nwHJoKjH5F4r8f5OeTPTA9klA8bfw0+E88x5BsA0B4s19m pennbatRt0S4yOW7PgVvstt3ul9KHrug+yXhWhLI= Received: from ZHILIZHAO-MB2.tencent.com ([113.87.128.216]) by newxmesmtplogicsvrszc6.qq.com (NewEsmtp) with SMTP id 4E53E094; Sat, 05 Feb 2022 00:19:37 +0800 X-QQ-mid: xmsmtpt1643991577tvq8bw1fj Message-ID: X-QQ-XMAILINFO: MbkhVtI1PGVkoBCkTA0eeSBUXz1vdpMIhMzznUQesppFLVF9SFoDbXkZtz7grH rjm4edB3n5oYUO3E+RSDvUfhfWi4FStOGZDlTI3/IP0FW3TYBPhAaDgDA84sPXFoB/Iy8XxFTua7 /8acrICOyzKA4/UI9VHHkogV9nfIU3BYzlGkwL7fv27nenP1rOuPvsdFa+7HQeVYz7eetQzoyIAS YRvBncVxOwsJ+lvjmPQeJx+qGOrCy4JF5ASNbasQqntiRCE0Ss1lih4lV5EshSes2OmdqRPCiHmH uBtS3tMLikSMy2IWQMlVT/lyM4IfuxEfbrhCTq/4r5iWoTFfK+jXd23Gx+j354bZCAWIWubaz78E /P65NZ4tka895nURPNjXsIq6qIsB0TzdBqCOk5IXeL/wpqKi0kWXml1vD3vf7OybEljM5ycrDYzY MOaY8zjZ+ANLIRQtRK2K2N0ktLOURBuKxTSzK8DrAenVJYFRTZ95Swdtz2oMfn+FslcFZe+fxRxV +nmY9+dysWaxqQoVpFz5CJ3NqXv6mrbMCyIyhzWKyTdoMc6ol7Cn6O7TI+ptFiesvHLYBDaI/w27 5R4UIu+QTqlzZi6x14kOZ23QPClxgKZA7p5CtVpHF123UU4+6/pC4pyxBMpLhHolSUsAM8Os3KRP BlWGVhC1w2VaQyqAQTVPT6Zmc9p7Dg6iHacEQ33815y8nxvjuknFbNUMgE+SkEFpNkqwgnCtGONQ pMvy8gGBElVTVGEkvqa8P9iGfta3Plumc3F9zeUZXCkiFEsH8zENCDQc2wo/PuE/uNYX81orcJHI 3aAmsWyx/DQGvdSWL185FagLFuDynT3fYh31jvVEPf07gmy3GpfG31ln31Rbl4r0qxXOUR6SNpLa 6Fy+Na1pXh70fLHRSPZLw= From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Sat, 5 Feb 2022 00:19:34 +0800 X-OQ-MSGID: <20220204161935.66247-1-quinkblack@foxmail.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/2] avdevice/avfoundation: fix memleak X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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: Zhao Zhili Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: zqyIIS1+xMXT --- libavdevice/avfoundation.m | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/libavdevice/avfoundation.m b/libavdevice/avfoundation.m index 0cd6e646d5..2078c4879c 100644 --- a/libavdevice/avfoundation.m +++ b/libavdevice/avfoundation.m @@ -106,6 +106,7 @@ typedef struct int audio_device_index; int audio_stream_index; + char *url; char *video_filename; char *audio_filename; @@ -299,6 +300,7 @@ static void destroy_context(AVFContext* ctx) ctx->avf_delegate = NULL; ctx->avf_audio_delegate = NULL; + av_freep(&ctx->url); av_freep(&ctx->audio_buffer); pthread_mutex_destroy(&ctx->frame_lock); @@ -311,14 +313,14 @@ static void destroy_context(AVFContext* ctx) static void parse_device_name(AVFormatContext *s) { AVFContext *ctx = (AVFContext*)s->priv_data; - char *tmp = av_strdup(s->url); + ctx->url = av_strdup(s->url); char *save; - if (tmp[0] != ':') { - ctx->video_filename = av_strtok(tmp, ":", &save); + if (ctx->url[0] != ':') { + ctx->video_filename = av_strtok(ctx->url, ":", &save); ctx->audio_filename = av_strtok(NULL, ":", &save); } else { - ctx->audio_filename = av_strtok(tmp, ":", &save); + ctx->audio_filename = av_strtok(ctx->url, ":", &save); } }