From patchwork Sun Apr 22 21:18:21 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marton Balint X-Patchwork-Id: 8596 Delivered-To: ffmpegpatchwork@gmail.com Received: by 2002:a02:155:0:0:0:0:0 with SMTP id c82-v6csp62610jad; Sun, 22 Apr 2018 14:18:34 -0700 (PDT) X-Google-Smtp-Source: AIpwx4/gcu3g99RCo462dSn+QiZ2EusGWv/14YGDQY/AubI7aWGA88buwJblG9OGoRNmVw4j0J7t X-Received: by 2002:adf:9c09:: with SMTP id f9-v6mr15502765wrc.272.1524431914363; Sun, 22 Apr 2018 14:18:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524431914; cv=none; d=google.com; s=arc-20160816; b=tJrAzOPJb33alzlGQOCzYiOPB2bvh0i/mnyaLScG3QYC6RiOtIv7VzkoHg/PAp7Dep 62BzxF3SOVviKEMpQiEN+kp1xO63+ZoiZbdW/6bcCuvIF9GaR6GJzCQerZZuQS1r8CWp IKeDrZfnlpR2TkKWs30Z/jYvx1ud2xFO1NY30GVFeDleu0hg8nVa94AemtOYofRTFMRm t/QBn0IeWG0V+wYWYbQdY2Y9p9znppDkBPS5i2rg33spcy4zC3rpkiis2r3YSfckgXKE fJY1AILVqOqHTppm63mbBC+rlZLd79OxoNChHgWfDXM6X8slk0uXxojQA2aAqNGfFxbx qjVw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:message-id:date:to:from:delivered-to :arc-authentication-results; bh=Nvry2BiQCAkcR1whiM+cIzWqDj4SGwDDxkhFjnV9Gh8=; b=GCjpN94YZnt3p4/smvavK2Pr8ViRJSdj+iEmap1PD/+UL3wZRjjYYsF9R/xCQOOJkE St+qSiMO8VDSNOaz53BKoktH6THYc22EZGsBhPkfAqQ/DEDwC2M2a+QEwMuUcx2y2O6Q sno8zrVi8RKU8308pSAKEtK//O8bCp0jgXo1YbfDrhgfRiYAVPpv7vRYqpo5Ak1zGOjb rIO0smfBTGkQitF5c7gLwylhKOGlGl+fGJ7A9mztnJOkPvRXE8Ozw110MuUB6txpie0C f5niYD/0W+fytOkDjNTQOPv8pvP/JBdjYNe1HQilZrMevugXB5QhFSOzXaYY0n5pOF9i s9Vg== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id g130si4591082wme.55.2018.04.22.14.18.34; Sun, 22 Apr 2018 14:18:34 -0700 (PDT) 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; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id CB78968A036; Mon, 23 Apr 2018 00:18:03 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from iq.passwd.hu (iq.passwd.hu [217.27.212.140]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2307A6804BF for ; Mon, 23 Apr 2018 00:17:57 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by iq.passwd.hu (Postfix) with ESMTP id F1FD1E108F; Sun, 22 Apr 2018 23:18:25 +0200 (CEST) X-Virus-Scanned: amavisd-new at passwd.hu Received: from iq.passwd.hu ([127.0.0.1]) by localhost (iq.passwd.hu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ANKBgMCJMtSC; Sun, 22 Apr 2018 23:18:25 +0200 (CEST) Received: from bluegene.passwd.hu (localhost [127.0.0.1]) by iq.passwd.hu (Postfix) with ESMTP id E4EB4E0F6B; Sun, 22 Apr 2018 23:18:24 +0200 (CEST) From: Marton Balint To: ffmpeg-devel@ffmpeg.org Date: Sun, 22 Apr 2018 23:18:21 +0200 Message-Id: <20180422211822.12870-1-cus@passwd.hu> X-Mailer: git-send-email 2.13.6 Subject: [FFmpeg-devel] [PATCH 1/2] avdevice/decklink_dec: do not copy video data 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: Marton Balint MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Create a buffer from the data instead and use the buffer destructor to free the DeckLink frame. This avoids a memcpy of the frame data. Signed-off-by: Marton Balint --- libavdevice/decklink_dec.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/libavdevice/decklink_dec.cpp b/libavdevice/decklink_dec.cpp index e97a4402ea..10535dc388 100644 --- a/libavdevice/decklink_dec.cpp +++ b/libavdevice/decklink_dec.cpp @@ -98,6 +98,14 @@ static VANCLineNumber vanc_line_numbers[] = { {bmdModeUnknown, 0, -1, -1, -1} }; +extern "C" { +static void decklink_object_free(void *opaque, uint8_t *data) +{ + IUnknown *obj = (class IUnknown *)opaque; + obj->Release(); +} +} + static int get_vanc_line_idx(BMDDisplayMode mode) { unsigned int i; @@ -797,6 +805,10 @@ HRESULT decklink_input_callback::VideoInputFrameArrived( } } + pkt.buf = av_buffer_create(pkt.data, pkt.size, decklink_object_free, videoFrame, 0); + if (pkt.buf) + videoFrame->AddRef(); + if (avpacket_queue_put(&ctx->queue, &pkt) < 0) { ++ctx->dropped; }