Received: from oboro.libav.org (77.109.144.72) by cas.jetheaddev.com (192.168.13.27) with Microsoft SMTP Server id 14.3.195.1; Fri, 22 Aug 2014 04:13:09 -0700 Received: from oboro.libav.org (localhost [127.0.0.1]) by oboro.libav.org (Postfix) with ESMTP id 54F155DBA3; Fri, 22 Aug 2014 13:13:06 +0200 (CEST) X-Original-To: libav-commits@libav.org Delivered-To: libav-commits@libav.org Received: from localhost (localhost [127.0.0.1]) by oboro.libav.org (Postfix) with ESMTP id A5E705DBA3 for ; Fri, 22 Aug 2014 13:13:04 +0200 (CEST) Received: from oboro.libav.org ([127.0.0.1]) by localhost (oboro.libav.org [127.0.0.1]) (amavisd-new, port 10024) with LMTP id q_DABqtOoALY for ; Fri, 22 Aug 2014 13:13:04 +0200 (CEST) Received: from aruru.libav.org (aruru.libav.org [77.109.144.70]) by oboro.libav.org (Postfix) with ESMTP id 8C8AA5DB88 for ; Fri, 22 Aug 2014 13:13:04 +0200 (CEST) Received: by aruru.libav.org (Postfix, from userid 106) id 8436F5DD71; Fri, 22 Aug 2014 13:13:04 +0200 (CEST) To: From: "Janne Grunau " Message-ID: <20140822111304.8436F5DD71@aruru.libav.org> Date: Fri, 22 Aug 2014 13:13:04 +0200 Subject: [libav-commits] rv34: use ff_mpeg_update_thread_context only when decoder is fully initialized X-BeenThere: libav-commits@libav.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: List-Id: libav commit notifications List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: libav-commits-bounces@libav.org Sender: libav-commits Return-Path: libav-commits-bounces@libav.org X-MS-Exchange-Organization-AuthSource: cas.jetheaddev.com X-MS-Exchange-Organization-AuthAs: Anonymous X-MS-Exchange-Organization-PRD: libav.org X-MS-Exchange-Organization-SenderIdResult: None Received-SPF: None (cas.jetheaddev.com: libav-commits-bounces@libav.org does not designate permitted sender hosts) X-MS-Exchange-Organization-SCL: 0 X-MS-Exchange-Organization-PCL: 2 X-MS-Exchange-Organization-Antispam-Report: DV:3.3.14004.476;SID:SenderIDStatus None;OrigIP:77.109.144.72 MIME-Version: 1.0 Module: libav Branch: master Commit: dc4b2e7d33903a6b9380e8a84b22b3a20facbb08 Author: Janne Grunau Committer: Janne Grunau Date: Thu Aug 21 13:26:33 2014 +0200 rv34: use ff_mpeg_update_thread_context only when decoder is fully initialized MpegEncContext based decoders are only fully initialized after the first ff_thread_get_buffer() call. The RV30/40 decoders may fail before a frame buffer was requested. ff_mpeg_update_thread_context() fails on half initialized MpegEncContexts. Since this can only happen before a the first frame was decoded there is no need to call ff_mpeg_update_thread_context(). Based on patches by John Stebbins and tested by John Stebbins. CC: libav-stable@libav.org --- libavcodec/rv34.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/libavcodec/rv34.c b/libavcodec/rv34.c index 4ed2a33..26ab7e4 100644 --- a/libavcodec/rv34.c +++ b/libavcodec/rv34.c @@ -1555,16 +1555,18 @@ int ff_rv34_decode_update_thread_context(AVCodecContext *dst, const AVCodecConte return err; } - if ((err = ff_mpeg_update_thread_context(dst, src))) - return err; - r->cur_pts = r1->cur_pts; r->last_pts = r1->last_pts; r->next_pts = r1->next_pts; memset(&r->si, 0, sizeof(r->si)); - return 0; + // Do no call ff_mpeg_update_thread_context on a partially initialized + // decoder context. + if (!s1->linesize) + return 0; + + return ff_mpeg_update_thread_context(dst, src); } static int get_slice_offset(AVCodecContext *avctx, const uint8_t *buf, int n) _______________________________________________ libav-commits mailing list libav-commits@libav.org https://lists.libav.org/mailman/listinfo/libav-commits