From patchwork Mon Jun 25 23:03:32 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacob Trimble X-Patchwork-Id: 9508 Delivered-To: ffmpegpatchwork@gmail.com Received: by 2002:a02:141:0:0:0:0:0 with SMTP id c62-v6csp4658221jad; Mon, 25 Jun 2018 16:04:38 -0700 (PDT) X-Google-Smtp-Source: AAOMgpd32XJzUUPGt2xV8PDgnH68rQcf6F5xjiHy+DSMYCslzSM/pV9602aBmkxw0cXHlNm6T7Yu X-Received: by 2002:adf:9b01:: with SMTP id b1-v6mr12025647wrc.181.1529967878225; Mon, 25 Jun 2018 16:04:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1529967878; cv=none; d=google.com; s=arc-20160816; b=ku5souzB6XlrZuZvXAfN4hadH0N+hoAwBnOtc4dwxuVUdSwSpe899z2g/p9RngE1ra rO+p5SUTmFxiEguqm5sceWpyKOvrtOooTV4OY9TLyH4jzhhPNel4uZhjJHN0K55totRT BLJUCY0asv/N/qJzpXgnv0CIICesF07PxHBydFyTDLMSE2stvdkmvTcViJuXQpT19W2Q Pl+mZ8E1GjLNTE2TZqL4PeSAXiDVQtFAogwsEOU6b0FTYM93WUb7UOdCTLto1kS49xt5 rjUzGF8NiWSD+LSXgoU0NawtZC75KyJ/NHWDT6RqgobfSgRE5aBdb6RvJvQIvNcAV+17 O4FA== 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:to:from:message-id:date:mime-version :dkim-signature:delivered-to:arc-authentication-results; bh=YQmoqjwQ1ArajnCiNOtisKIddftv0wF0+J0jm1E3V9o=; b=BCbOunQHOAeIH/ssN2prZ1LAQBJ8vaglw1QiBUHEj6hkRJ6gtpTASYfThdv7snfYvJ 8pe2OU2sHh1OAdNR3ea4KY9DP+1sr7uwDe2uYq4sp0YzHxtzdAeGuZ+RfXeygPLe9tRE 6Dlh99Vg15YshGEhwDW4x0M3YYf0Q+UNJ4xiHic1lFfO48tTdqdTnNiNq3TIUAtESS+p YPOQKZCZERr2JUECfitpVr5pH6Ib9rr0yp1qKx8x7rEiCbwwAO1DSz6j9tKZHdWHc1Bn FshlAdYd/hFN8i86B1ocjIS5k+dw01Cg3znDTwsJ3wlAC0luGuXnaCQOFYzGhY0+ChZ0 TojQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@google.com header.s=20161025 header.b=LUCfcB0g; 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 h190-v6si357302wme.228.2018.06.25.16.04.36; Mon, 25 Jun 2018 16:04:38 -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; dkim=neutral (body hash did not verify) header.i=@google.com header.s=20161025 header.b=LUCfcB0g; 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 4E05868A353; Tue, 26 Jun 2018 02:03:39 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ot0-f202.google.com (mail-ot0-f202.google.com [74.125.82.202]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DAECC68A288 for ; Tue, 26 Jun 2018 02:03:32 +0300 (EEST) Received: by mail-ot0-f202.google.com with SMTP id p13-v6so6772800otl.23 for ; Mon, 25 Jun 2018 16:04:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:date:message-id:subject:from:to:cc; bh=J73LxDXbN6bzaLtZQaQ+KJMRDUiN0DuMcmvuYQPHSQ4=; b=LUCfcB0g20p7wdvG+X6VLvoVns0s+sr7gDvhDdrqDNj/LHflzuFrZogVdGZmXKN90p XyPrDJLxh+Qaz+9okeV45Ce0hC5BpiUw9rcVkHYoYN30jOrn/UDoX6il+6gHBMgnRcjU R6yQIxl/cmOiesOprhbih3HhINklyUrMoTN8creiPBN52cEgYhR+94UmG1JJnTO3KSWu S73sm4ry3TbKBkOSqoMPZL/pNnNfHOg9grfcRzaWt0O0FxB3sZMEO6UAo60MU6xrwjWP dEkbUHvJ8X+5EatFBzPS9N2IQOZ4sxBFXOkG2UYR0p6ulpMfgCiHyqAqo1yaCM/tkAwz yhHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:date:message-id:subject:from:to:cc; bh=J73LxDXbN6bzaLtZQaQ+KJMRDUiN0DuMcmvuYQPHSQ4=; b=XA0Tr5nKSLtChh7gw4SdQ4km3YvDHXeYCLko1xoRhlItbhIDsCzoPpWfTRGtVVQmUc XUnmDrBQ6A4WUnrrWAuwZro+Jq06/i6r5DWeQ+4OQK2gpxUbJYopEs1POEDgaZUA7w8S ZtmBWLJ/U65XqmpPP4UmEMfgcvGOceh5VhEvOQ55R48pN/Zv3lD2au0s4xqC/7yLWW5b FyoGL/F8iJ362Cv1DZULG77pF8HPQ7tZZBIDFdD13UFXIwR2l/OJSJMnvrCmwWd3rmOi QxKpxxTLNOv24F99VjZoXefPznDNiY1gIKPy+Zyf6heDFFkcuYkZhuNjxfVFGzBRHGez kwaA== X-Gm-Message-State: APt69E2oR9ZA4F98t5If8a+3R9eCDjTUfnTvOgqu0sBWIoAEC10A4lLI ihQeNl1Vf/L5LXEfLqjEnDF5KOxsZiQTrSCPcEqCX79fl0bn0H9qlzdmCSaEyCUYcEKKvjGNefe ejQaiwlXNhJ2Uczk2RkR5pel4bUVyZzSCWDyPhknMeNnLR6pD9pEW/uzTmYmB4P676CYh MIME-Version: 1.0 X-Received: by 2002:a9d:4e15:: with SMTP id p21-v6mr2482373otf.58.1529967866867; Mon, 25 Jun 2018 16:04:26 -0700 (PDT) Date: Mon, 25 Jun 2018 16:03:32 -0700 Message-Id: <20180625230332.197656-1-modmaker@google.com> X-Mailer: git-send-email 2.18.0.rc2.346.g013aa6912e-goog From: Jacob Trimble To: ffmpeg-devel@ffmpeg.org Subject: [FFmpeg-devel] [PATCH] avformat/avformat.h: Add av_stream_remove_side_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: Jacob Trimble Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Signed-off-by: Jacob Trimble --- libavformat/avformat.h | 8 ++++++++ libavformat/utils.c | 11 +++++++++++ 2 files changed, 19 insertions(+) diff --git a/libavformat/avformat.h b/libavformat/avformat.h index fdaffa5bf4..434c88837e 100644 --- a/libavformat/avformat.h +++ b/libavformat/avformat.h @@ -2167,6 +2167,14 @@ AVStream *avformat_new_stream(AVFormatContext *s, const AVCodec *c); int av_stream_add_side_data(AVStream *st, enum AVPacketSideDataType type, uint8_t *data, size_t size); +/** + * Removes any existing side data of the given type. + * + * @param st stream + * @param type side information type + */ +void av_stream_remove_side_data(AVStream *st, enum AVPacketSideDataType type); + /** * Allocate new information from stream. * diff --git a/libavformat/utils.c b/libavformat/utils.c index c9cdd2b470..4f7c408d93 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -5491,6 +5491,17 @@ int av_stream_add_side_data(AVStream *st, enum AVPacketSideDataType type, return 0; } +void av_stream_remove_side_data(AVStream *st, enum AVPacketSideDataType type) +{ + for (int i = 0; i < st->nb_side_data; i++) { + if (st->side_data[i].type == type) { + av_freep(&st->side_data[i].data); + st->side_data[i] = st->side_data[st->nb_side_data - 1]; + st->nb_side_data--; + } + } +} + uint8_t *av_stream_new_side_data(AVStream *st, enum AVPacketSideDataType type, int size) {