From patchwork Tue Apr 10 00:33:39 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jun Zhao X-Patchwork-Id: 8371 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.1.70 with SMTP id c67csp461642jad; Mon, 9 Apr 2018 17:39:13 -0700 (PDT) X-Google-Smtp-Source: AIpwx49uTmWDm94M8g57+GL6/GMqZ/tB/FxXSwvRyppQ/hVYN0DtfFIjJlGIyyG20ExUyO9qBOrk X-Received: by 10.28.63.2 with SMTP id m2mr24236wma.158.1523320753657; Mon, 09 Apr 2018 17:39:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1523320753; cv=none; d=google.com; s=arc-20160816; b=S4UMeEUrHdI5pL7yE99qkujacrZyunhAx0Q+bprXLauzxE5Mll0w/bO9JCLhCDAz3M TLXwf80JYmbMG2fU9Zr+MouElrIE8qRSMY+93UJVlOLUUGYK/LpV7bHwa45f9/owCAIB QNo+n5pH2cwfvPRBaCUU5x+rDSSqxf7f0gNSWZIs2F9KNd85fzXj3XXq7zgbZhPKK9JV O6JD8BJVsbklzUTz2a5c+7KQSfRAU5Yi2WAKivDh5dtaCtgldxf4NoGtQBdM/JAH46MS 4VVNXzsS/QIV+KYHzxt5iQtuB/GHRncdLSn2q/eKKu2djLqsLlkZXGXrS2udkL2g4ZS1 C86g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:subject :content-language:mime-version:user-agent:date:message-id:from:to :dkim-signature:delivered-to:arc-authentication-results; bh=D4gAXmU+62hA7DPT9uqKdbo7eI3TQr/RGE5+RiSJWuo=; b=QYsiuvpMFvKT/rW+irb8hPODaZ0IzuZJ1aP1bU85MSOHEuHN+/fm6I2+sHbjW6OMDx 13Bm/bYagvv8kBHtS+cqCIiWEVrVZ0mbiKFHD9WV+L+nUDtQxCbkVZiPOpDIjgaCF7sO sL734Mf1FmGZC4qTnUxDjnhZTJhPeVmDadpR1LVcimejm4o8FoiYRgVwgooFvTWczn7B +5J4DIK+IhEaBi18YlRQ4ylwbCswDoAXGEn8aRM56weN0TX+h+Nd6SA3DGkroli7rcxZ 5mZkQjnvOds3709E53PU9xBPm2t+wr+DoLrNdzlRbCqRTAZe03KT5GoJu3MzFnruSNy1 Nuxw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=NPnS5CsO; 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 x7si339011wmc.218.2018.04.09.17.39.13; Mon, 09 Apr 2018 17:39:13 -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=@gmail.com header.s=20161025 header.b=NPnS5CsO; 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 C1B61689FBB; Tue, 10 Apr 2018 03:38:48 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pl0-f67.google.com (mail-pl0-f67.google.com [209.85.160.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B46FC689EA5 for ; Tue, 10 Apr 2018 03:38:47 +0300 (EEST) Received: by mail-pl0-f67.google.com with SMTP id v5-v6so6235438plo.4 for ; Mon, 09 Apr 2018 17:39:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=to:from:subject:message-id:date:user-agent:mime-version :content-language; bh=4a2M3k4pyfVlJTY9CvAUcwSrVYrjFh3TwhHCzOKuq0k=; b=NPnS5CsOBLUgj2BjqhrLoxPUrCOWlmY53GYo0roAzir22xeX+DBfYAtaqTAckpfH31 t5rUKlVdsVkRQ/SsEnGagHrnCYIUoVSYvV003cf9k1HpNIFh9y/Ha0SvhehCX4CgiJBq JAfBTtNtrhUqU1Y8+2RaCA77qJW9FyJ/gN1yu74U+rSo+z2gJcum82KBkv8GkLIzrph2 jiCmp/4muh78VT6+JnzQHsaVF2RVY1J6NUcjPSDRIv282rz2xR7KY41L7LuVtlResk1g t+7BN64X6s5CsC2lfcOJRqGv781uSGidXP8qq2z+3/EbqxLKI0WOUAlS6/CTh2kx0A3c ftqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:to:from:subject:message-id:date:user-agent :mime-version:content-language; bh=4a2M3k4pyfVlJTY9CvAUcwSrVYrjFh3TwhHCzOKuq0k=; b=md+iXboM1ZUEA/K9Aqhbh4NUQl205rwlYkzy1XdKxx1BchRfELo5Pt/P9ZbuV+QESL GYVUtsSWHNtgaEccfR54Xee7phIVpYfDk97vLY0UWXJnwy9b9/pjYj8jaS/fgaIbB5S0 R8YEcO6vv+XHqQBj+Sq2KAMfiY1auJQbfpj+Rw/pn+Lti415guPWPXZNtji13ReIQIjd RxhW7leMJE3aqtCea3v8C3IrQu9wZCjU9XlSX6WOwfp9F7D4HGAEe3CAcGawvqJd3BM3 3dRigMmSjO6AN8LCcKxZw11GzhkSX9P4cTUi9tCgNh73upRBWjZz9neG8hvNkSwrs04u vzKw== X-Gm-Message-State: AElRT7GusnS9FY07J4gcMMUY/2IqbFsrNz+sDH8BBRaUEugVJXZBCisE DWZtrYfjr62Hdwc/ZFqjfm4= X-Received: by 2002:a17:902:4003:: with SMTP id b3-v6mr42121391pld.15.1523320423575; Mon, 09 Apr 2018 17:33:43 -0700 (PDT) Received: from [10.67.68.28] (fmdmzpr03-ext.fm.intel.com. [192.55.54.38]) by smtp.gmail.com with ESMTPSA id t14sm2591526pfa.74.2018.04.09.17.33.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 09 Apr 2018 17:33:42 -0700 (PDT) To: FFmpeg development discussions and patches , Michael Niedermayer , Steven Liu From: Jun Zhao Message-ID: Date: Tue, 10 Apr 2018 08:33:39 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 Content-Language: en-US Subject: [FFmpeg-devel] [PATCH 1/4] lavf/aviobuf: add ff_get_chomp_line 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From 58e8cb520eeeb727ee834ee81877db7c81fe089b Mon Sep 17 00:00:00 2001 From: Jun Zhao Date: Mon, 9 Apr 2018 23:05:42 +0800 Subject: [PATCH 1/4] lavf/aviobuf: add ff_get_chomp_line Same as ff_get_line but strip the white-space characters in the string tail. Signed-off-by: Jun Zhao --- libavformat/aviobuf.c | 8 ++++++++ libavformat/internal.h | 10 ++++++++++ 2 files changed, 18 insertions(+) diff --git a/libavformat/aviobuf.c b/libavformat/aviobuf.c index 95b3364478..e752d0e1a6 100644 --- a/libavformat/aviobuf.c +++ b/libavformat/aviobuf.c @@ -823,6 +823,14 @@ int ff_get_line(AVIOContext *s, char *buf, int maxlen) return i; } +int ff_get_chomp_line(AVIOContext *s, char *buf, int maxlen) +{ + int len = ff_get_line(s, buf, maxlen); + while (len > 0 && av_isspace(buf[len - 1])) + buf[--len] = '\0'; + return len; +} + int64_t ff_read_line_to_bprint(AVIOContext *s, AVBPrint *bp) { int len, end; diff --git a/libavformat/internal.h b/libavformat/internal.h index c50382ad29..3582682925 100644 --- a/libavformat/internal.h +++ b/libavformat/internal.h @@ -299,6 +299,16 @@ void ff_put_v(AVIOContext *bc, uint64_t val); */ int ff_get_line(AVIOContext *s, char *buf, int maxlen); +/** + * Same as ff_get_line but strip the white-space characters in the text tail + * + * @param s the read-only AVIOContext + * @param buf buffer to store the read line + * @param maxlen size of the buffer + * @return the length of the string written in the buffer + */ +int ff_get_chomp_line(AVIOContext *s, char *buf, int maxlen); + /** * Read a whole line of text from AVIOContext to an AVBPrint buffer. Stop * reading after reaching a \\r, a \\n, a \\r\\n, a \\0 or EOF. The line