From patchwork Sun Jan 19 23:54:21 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Carl Eugen Hoyos X-Patchwork-Id: 17431 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id CCA3E44B6AC for ; Mon, 20 Jan 2020 01:54:39 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B7EB668B1EA; Mon, 20 Jan 2020 01:54:39 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-io1-f48.google.com (mail-io1-f48.google.com [209.85.166.48]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8685C68B066 for ; Mon, 20 Jan 2020 01:54:33 +0200 (EET) Received: by mail-io1-f48.google.com with SMTP id c16so31768199ioh.6 for ; Sun, 19 Jan 2020 15:54:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=nTye3WEypbpQ5gKGApKGO30DOZk/Nwi3Sgbdi8DHUfk=; b=rQxF6q14P+NVxEEXsljvPyYV6EJ5JN7HNekAFZ431hfS2dSu7ocsfnTMYlagSwpZO/ OA05iCv9a/9cTvCmfJReVUmTrlX+J9I6O10zc4aYJM/memr4JJsrA9raLfXOgOIcJO71 RgHBIwHT6zkyLUdj9jtNr+LiNt7JkwdYq8QpPOtU14FL362dW4lkeu491w4TZMt+HnCE rJ8WCKbVaZmEZEO0jJeUYmaAFC3K6Hr3Njig6cvZHMg72up2GiNQvv571Y/Ncr9sMvls nnbUccztG3d70PWYwghd3bzwfINL/GM0Lw5/GKGHyTNqxynIVlHSmxAP9/ieZhqeJ+q9 FZgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=nTye3WEypbpQ5gKGApKGO30DOZk/Nwi3Sgbdi8DHUfk=; b=tht7d6aL1ZWaHh50f1OxYIRKqQ0qOXMAP3Ke7CnyWzV3rXCGGr2p/Bk9tPiD+O0nuE oZPOW3+7L53dzcqR7BuBETOam+HP+A2G+9aROwv9GOXUjGx/x+aVop+wRDwGRmry/tV1 xEqPpjY3kBLtdV7DNQzdqp9sDQHgdNMxPe6J2Yhy1nhL0Cb64/JZad50krBMMWuhgeYZ eSp1+1PsDgPVoFxaH1oCtQYxqtKHVH6lMZWf/dX4QhfKXxYAVDNAWzYngXSlHephiDBj aHUKpXpClB0k1/McNYPHAb0Bev5tDMwPWpWXurL+2TmiLjqlaYW4fBj3J7DfJTnNfdWG Foow== X-Gm-Message-State: APjAAAWHRlS101nn6/cHJM/xu1cwrhqW9M4Bai+tW2/4p1rf2wqFJ6RD tgwyPlzaOX14gkUOJS+w8M59Q46TklSOWGacIYYz1w== X-Google-Smtp-Source: APXvYqxFcwAnmac1ZzJ2h2v72BvSNkdJ/03I2BjE7unvJQAFcjaUj0tHOZvTx/FrwkW1TBJ/duKfN7ShDNmjJjZd0CY= X-Received: by 2002:a5d:8c84:: with SMTP id g4mr16968900ion.289.1579478071910; Sun, 19 Jan 2020 15:54:31 -0800 (PST) MIME-Version: 1.0 From: Carl Eugen Hoyos Date: Mon, 20 Jan 2020 00:54:21 +0100 Message-ID: To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PATCH]lavc/mpegvideo_enc: Do not write an extra RST tag after final jpeg slice 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" Hi! Attached patch fixes ticket #8412. Please comment, Carl Eugen From 7f62ffa46f9264c1fc7854def8467816e0173883 Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos Date: Mon, 20 Jan 2020 00:51:33 +0100 Subject: [PATCH] lavc/mpegvideo_enc: Do not write an extra RST tag after final jpeg slice. Fixes ticket #8412. --- libavcodec/mpegvideo_enc.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index 96f5b4a666..fc1c46fee7 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -3566,8 +3566,9 @@ static void merge_context_after_me(MpegEncContext *dst, MpegEncContext *src){ MERGE(me.mb_var_sum_temp); } -static void merge_context_after_encode(MpegEncContext *dst, MpegEncContext *src){ +static void merge_context_after_encode(MpegEncContext *dst, MpegEncContext *src, int last){ int i; + int put_bits = put_bits_count(&src->pb) - (src->out_format == FMT_MJPEG && src->avctx->active_thread_type & FF_THREAD_SLICE && last ? 32 : 0); MERGE(dct_count[0]); //note, the other dct vars are not part of the context MERGE(dct_count[1]); @@ -3594,7 +3595,7 @@ static void merge_context_after_encode(MpegEncContext *dst, MpegEncContext *src) av_assert1(put_bits_count(&src->pb) % 8 ==0); av_assert1(put_bits_count(&dst->pb) % 8 ==0); - avpriv_copy_bits(&dst->pb, src->pb.buf, put_bits_count(&src->pb)); + avpriv_copy_bits(&dst->pb, src->pb.buf, put_bits); flush_put_bits(&dst->pb); } @@ -3919,7 +3920,7 @@ static int encode_picture(MpegEncContext *s, int picture_number) for(i=1; ipb.buf_end == s->thread_context[i]->pb.buf) set_put_bits_buffer_size(&s->pb, FFMIN(s->thread_context[i]->pb.buf_end - s->pb.buf, INT_MAX/8-32)); - merge_context_after_encode(s, s->thread_context[i]); + merge_context_after_encode(s, s->thread_context[i], i == context_count - 1); } emms_c(); return 0; -- 2.23.0