From patchwork Tue Feb 27 03:09:47 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 7752 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.181.170 with SMTP id m39csp2082116jaj; Mon, 26 Feb 2018 19:10:11 -0800 (PST) X-Google-Smtp-Source: AG47ELvtyr/4c+NQiv3ZBv8/P237MAOM8PO1HllKzj1CcN1n0FUQFdoEzZ5h/CNQZJAieqKNPSiN X-Received: by 10.28.213.129 with SMTP id m123mr9408189wmg.148.1519701011523; Mon, 26 Feb 2018 19:10:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519701011; cv=none; d=google.com; s=arc-20160816; b=neIuAird9jVdWboSq1ZAc0LBUTt9+I8AhpUhb9VJER4qUP74NwUHeXImbmTRU6V/xn u2w6Kh2cTKKbZqrQCd8XvwcfWq/4/a2kvLFDG0RQ5czZyDd/s8USbupSTD399E2gKKpf R69OSmF73by0LjqIPPkR6a/YSbK0CfALTqxsA7oo7NT5SHU3I6WehIzFBhNjUSltgDfp Ccm90+SRaMCCWEcTLSMeRaoa92gI+bI788tSXwVPSMimnaFF6l9cYHKTuMlAjmQCTAq3 JFm1VqBT0R0CsHR1uUIODRhjx9Lp5LmQMkBWsrv4Ove1Nmb1dGHLVyyIl1IaXLvBSVAr MF+g== 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:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:message-id:date:to:from:dkim-signature :delivered-to:arc-authentication-results; bh=qMM0T0u+KbVuTyXtF6rk16jdn3FH2SEZIFPnNZVzoO4=; b=P4+F5CYAvEQD9YFkNQHsIpFVw+qMmhSO9JU7zdrym5HzzoLhbv7cmEGh/TlP0UwfCZ hiWVBYKsXkOQIXRlem/SZblm0DRwoYuy31GKFP2kK6NNq4BX76+kWJ8RcCqhR6n1oREK YC4iBxqy5CAYP84NbZ/+Yrd1T9d9hpMYNB2EI9L/OaikqN09SajRp9QZ6vZEaLmfWIP6 FsTtne2XZ/9RWAQiayU+wy81PW46oeu+AVZnhxqHC8x+H0kjVwFB1seSYxkPVD0u+pFD DMQxWyoUwUQvcdyu097kD9vy5DREQSCoTBWJ+wdKDKbxBPBVeA62PNvO9qLB0BwZJ2nt l4mQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=aCA/hVzI; 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=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id x26si3770024wmh.7.2018.02.26.19.10.10; Mon, 26 Feb 2018 19:10: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=@gmail.com header.s=20161025 header.b=aCA/hVzI; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5BF5968A10D; Tue, 27 Feb 2018 05:10:04 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk0-f196.google.com (mail-qk0-f196.google.com [209.85.220.196]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0B127689FED for ; Tue, 27 Feb 2018 05:09:57 +0200 (EET) Received: by mail-qk0-f196.google.com with SMTP id y137so21822661qka.4 for ; Mon, 26 Feb 2018 19:10:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id; bh=XUqwSjkmhio614SAnFG9UqQFeO5qFyJQKxiX0L3kLEs=; b=aCA/hVzICF4CqJ6Ss8gSNZmuvFrULtB2yao9WntmKRMytuxgGLff8Ln2mf8PoYkfGK 5bPU3GItk5s+EuBjVNlvqgV3Qbzj5njuOGp8XQQNRH/UusMQiv+pc6N6h410KnseBpCX 6tkhMScsQ67r4Xw146ofGEX3o0jCCP22+u+TPOFlw4BbUJ+s3ELTMVzMfWfIrp6r6Zj1 5ogq+e1jqyrH9o8sKIHJ5P6sY6nebksg2aU2vLBDongjQzCZ4exMUUvOha97zkmxnhsi ZxOfHccE+ns1L9Mix323KrMnzpUIWj/aqzqmuUJ3NNio4wZBFgowqRDnvV4J3elzqMtG 8rmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=XUqwSjkmhio614SAnFG9UqQFeO5qFyJQKxiX0L3kLEs=; b=IHVIZiNE2DCSErAtCUkDSRKjCqGjWWZmne1QQxHLi3M5yh5pb04P4y0HAXj1Hl1ffF +3G1+NGNNIYgHCbjtPdaJGbQ3kH0yjqP3rNEi1gC8O+ytGclmmKHaKzFM03WegsFXbaY i9R8W0nqSnsCqzLZ1JdtXmirl9Frg9rYUN/e7smmRRUxGHWlw2jP6V4rApmkJw2inx2y g0mLcKf/dYX6ojn2qOrNgqkFRC1ZBY27EmNSir7JwYkrPkwfcBUds6BUOVZV8oYWgQze 7ULUnqak10Ai6W6mwQ2vVigfeYOF6RtJJz+XmI2U0yT40PFtd11/4iY3eKjQGSasVCcL nLvw== X-Gm-Message-State: APf1xPAS1f/+97Kbs2pVFxgXDjcNOJi1mH5CI3ynVzB6/xbhH68bLeMD WWQtdU7t0mthk0f9K5GKzGh1SQ== X-Received: by 10.55.25.134 with SMTP id 6mr19640425qkz.196.1519701000232; Mon, 26 Feb 2018 19:10:00 -0800 (PST) Received: from localhost.localdomain ([181.229.225.176]) by smtp.gmail.com with ESMTPSA id a8sm4539651qtc.23.2018.02.26.19.09.58 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 26 Feb 2018 19:09:59 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Tue, 27 Feb 2018 00:09:47 -0300 Message-Id: <20180227030947.10268-1-jamrial@gmail.com> X-Mailer: git-send-email 2.16.2 Subject: [FFmpeg-devel] [PATCH] avformat/mxg: return reference counted packets 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Signed-off-by: James Almer --- libavformat/mxg.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/libavformat/mxg.c b/libavformat/mxg.c index 6fbf99cfa3..fe5879ecf0 100644 --- a/libavformat/mxg.c +++ b/libavformat/mxg.c @@ -169,11 +169,14 @@ static int mxg_read_packet(AVFormatContext *s, AVPacket *pkt) continue; } + size = mxg->buffer_ptr - mxg->soi_ptr; + ret = av_new_packet(pkt, size); + if (ret < 0) + return ret; + memcpy(pkt->data, mxg->soi_ptr, size); + pkt->pts = pkt->dts = mxg->dts; pkt->stream_index = 0; - pkt->buf = NULL; - pkt->size = mxg->buffer_ptr - mxg->soi_ptr; - pkt->data = mxg->soi_ptr; if (mxg->soi_ptr - mxg->buffer > mxg->cache_size) { if (mxg->cache_size > 0) { @@ -206,12 +209,14 @@ static int mxg_read_packet(AVFormatContext *s, AVPacket *pkt) mxg->buffer_ptr += size; if (marker == APP13 && size >= 16) { /* audio data */ + ret = av_new_packet(pkt, size - 14); + if (ret < 0) + return ret; + memcpy(pkt->data, startmarker_ptr + 16, size - 14); + /* time (GMT) of first sample in usec since 1970, little-endian */ pkt->pts = pkt->dts = AV_RL64(startmarker_ptr + 8); pkt->stream_index = 1; - pkt->buf = NULL; - pkt->size = size - 14; - pkt->data = startmarker_ptr + 16; if (startmarker_ptr - mxg->buffer > mxg->cache_size) { if (mxg->cache_size > 0) {