1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
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 <libav-commits@libav.org>; 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
<libav-commits@libav.org>; 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
<libav-commits@libav.org>; 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: <libav-commits@libav.org>
From: "Janne Grunau " <git@libav.org>
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: <libav-devel@libav.org>
List-Id: libav commit notifications <libav-commits.libav.org>
List-Unsubscribe: <https://lists.libav.org/mailman/options/libav-commits>,
<mailto:libav-commits-request@libav.org?subject=unsubscribe>
List-Archive: <http://lists.libav.org/pipermail/libav-commits/>
List-Post: <mailto:libav-commits@libav.org>
List-Help: <mailto:libav-commits-request@libav.org?subject=help>
List-Subscribe: <https://lists.libav.org/mailman/listinfo/libav-commits>,
<mailto:libav-commits-request@libav.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libav-commits-bounces@libav.org
Sender: libav-commits <libav-commits-bounces@libav.org>
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 <janne-libav@jannau.net>
Committer: Janne Grunau <janne-libav@jannau.net>
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
|