From patchwork Fri Jun 16 23:24:41 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marton Balint X-Patchwork-Id: 4004 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.22.4 with SMTP id 4csp1510098vsw; Fri, 16 Jun 2017 16:25:03 -0700 (PDT) X-Received: by 10.28.198.3 with SMTP id w3mr9026488wmf.112.1497655503566; Fri, 16 Jun 2017 16:25:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1497655503; cv=none; d=google.com; s=arc-20160816; b=0VK4Z5N6BuD0h86CIzQMGNrKBgBzuLwTbsFVli3iHdy2R33mXHBLjLra460T3/nyXu v1c0q/Kdn6JTv9fHVDcYNm9LJRWpLl+khEntElnaTK9laDq046iYMIQkm/wJQWbPsuFI 9v+p8sI/oSsZtZMKfJrJ5fke4hWquQ9Tymi/sEkJ5L/JvF8083ZHcXi+LQD06jl5s7+u nMdA/uiZ2+F+7J86V6SA+NEgZd589A0vHXIqa7hhcTPndXRZ29t+ao2so9c66GKiBfuu udY60FnNPfnZUrTh+z5f1jlMUufNRfjQVcIqy2RW5+H/sfT9ugj1v9eOhCafffPDkBRk Av7w== 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=184vQeqFDd8Alyux0AXl3mmP7YhQoA81A0+Dv7DQk1I=; b=aFCfBUW7RMzGysHR0phSorTBpYNZ4//Tr8L6CZYNlVAg5qcXmCUlfgV2xzKmIz+tyk jj8RnDDoPmwCdwSJJAxI+OT5tb6ArMe/TVh/blQWNcqmTSL50VF8F7vK+LovyxJ6OyW5 /ir9TJX1vCo0FshfaGolrVl6XP6X6XtlQidOrabPFIEmNQpMHmEC0O2bk7a74LDjRFQP uzVTTXB0taEWNRJia0ZMiJreyzlENkJ9/wF0BsUOQsoJ0d8jtfwdP9SLbJDLS6QGthIe rzpEI8IjUcmVrLMEIglCVLwNxoOoxoN2ShRe34e25FlXRBoNMBzAxZq4BkNQyOkXgXDF hNWg== 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 q73si239372wmd.8.2017.06.16.16.25.02; Fri, 16 Jun 2017 16:25:03 -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 BB35868A40C; Sat, 17 Jun 2017 02:24:55 +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 6874668A3B8 for ; Sat, 17 Jun 2017 02:24:49 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by iq.passwd.hu (Postfix) with ESMTP id E801010318A; Sat, 17 Jun 2017 01:24:52 +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 ccjfqaO+Y3iA; Sat, 17 Jun 2017 01:24:51 +0200 (CEST) Received: from bluegene.passwd.hu (localhost [127.0.0.1]) by iq.passwd.hu (Postfix) with ESMTP id 66BA2102E28; Sat, 17 Jun 2017 01:24:51 +0200 (CEST) From: Marton Balint To: ffmpeg-devel@ffmpeg.org Date: Sat, 17 Jun 2017 01:24:41 +0200 Message-Id: <20170616232442.20537-1-cus@passwd.hu> X-Mailer: git-send-email 2.12.3 Subject: [FFmpeg-devel] [PATCH 1/2] avformat/rmenc: do not access AVIO write buffer directly 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" Signed-off-by: Marton Balint --- libavformat/rmenc.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/libavformat/rmenc.c b/libavformat/rmenc.c index f9821d1875..3bff4daf0a 100644 --- a/libavformat/rmenc.c +++ b/libavformat/rmenc.c @@ -72,14 +72,12 @@ static int rv10_write_header(AVFormatContext *ctx, RMMuxContext *rm = ctx->priv_data; AVIOContext *s = ctx->pb; StreamInfo *stream; - unsigned char *data_offset_ptr, *start_ptr; const char *desc, *mimetype; int nb_packets, packet_total_size, packet_max_size, size, packet_avg_size, i; - int bit_rate, v, duration, flags, data_pos; + int bit_rate, v, duration, flags; + int data_offset; AVDictionaryEntry *tag; - start_ptr = s->buf_ptr; - ffio_wfourcc(s, ".RMF"); avio_wb32(s,18); /* header size */ avio_wb16(s,0); @@ -119,7 +117,7 @@ static int rv10_write_header(AVFormatContext *ctx, avio_wb32(s, BUFFER_DURATION); /* preroll */ avio_wb32(s, index_pos); /* index offset */ /* computation of data the data offset */ - data_offset_ptr = s->buf_ptr; + data_offset = avio_tell(s); avio_wb32(s, 0); /* data offset : will be patched after */ avio_wb16(s, ctx->nb_streams); /* num streams */ flags = 1 | 2; /* save allowed & perfect play */ @@ -276,12 +274,11 @@ static int rv10_write_header(AVFormatContext *ctx, } /* patch data offset field */ - data_pos = s->buf_ptr - start_ptr; - rm->data_pos = data_pos; - data_offset_ptr[0] = data_pos >> 24; - data_offset_ptr[1] = data_pos >> 16; - data_offset_ptr[2] = data_pos >> 8; - data_offset_ptr[3] = data_pos; + rm->data_pos = avio_tell(s); + if (avio_seek(s, data_offset, SEEK_SET) >= 0) { + avio_wb32(s, rm->data_pos); + avio_seek(s, rm->data_pos, SEEK_SET); + } /* data stream */ ffio_wfourcc(s, "DATA");