Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
4f820131
Commit
4f820131
authored
Dec 08, 2011
by
Andrey Utkin
Committed by
Luca Barbato
Dec 14, 2011
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mpegvideo: remove abort() in ff_find_unused_picture()
Signed-off-by:
Luca Barbato
<
lu_zero@gentoo.org
>
parent
71ce7602
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
19 additions
and
15 deletions
+19
-15
h261dec.c
libavcodec/h261dec.c
+2
-0
h263dec.c
libavcodec/h263dec.c
+2
-0
mpegvideo.c
libavcodec/mpegvideo.c
+7
-15
mpegvideo_enc.c
libavcodec/mpegvideo_enc.c
+6
-0
vc1dec.c
libavcodec/vc1dec.c
+2
-0
No files found.
libavcodec/h261dec.c
View file @
4f820131
...
...
@@ -572,6 +572,8 @@ retry:
//we need to set current_picture_ptr before reading the header, otherwise we cannot store anyting im there
if
(
s
->
current_picture_ptr
==
NULL
||
s
->
current_picture_ptr
->
f
.
data
[
0
])
{
int
i
=
ff_find_unused_picture
(
s
,
0
);
if
(
i
<
0
)
return
i
;
s
->
current_picture_ptr
=
&
s
->
picture
[
i
];
}
...
...
libavcodec/h263dec.c
View file @
4f820131
...
...
@@ -398,6 +398,8 @@ retry:
* otherwise we cannot store anyting in there */
if
(
s
->
current_picture_ptr
==
NULL
||
s
->
current_picture_ptr
->
f
.
data
[
0
])
{
int
i
=
ff_find_unused_picture
(
s
,
0
);
if
(
i
<
0
)
return
i
;
s
->
current_picture_ptr
=
&
s
->
picture
[
i
];
}
...
...
libavcodec/mpegvideo.c
View file @
4f820131
...
...
@@ -1144,21 +1144,7 @@ int ff_find_unused_picture(MpegEncContext *s, int shared)
}
}
av_log
(
s
->
avctx
,
AV_LOG_FATAL
,
"Internal error, picture buffer overflow
\n
"
);
/* We could return -1, but the codec would crash trying to draw into a
* non-existing frame anyway. This is safer than waiting for a random crash.
* Also the return of this is never useful, an encoder must only allocate
* as much as allowed in the specification. This has no relationship to how
* much libavcodec could allocate (and MAX_PICTURE_COUNT is always large
* enough for such valid streams).
* Plus, a decoder has to check stream validity and remove frames if too
* many reference frames are around. Waiting for "OOM" is not correct at
* all. Similarly, missing reference frames have to be replaced by
* interpolated/MC frames, anything else is a bug in the codec ...
*/
abort
();
return
-
1
;
return
AVERROR_INVALIDDATA
;
}
static
void
update_noise_reduction
(
MpegEncContext
*
s
){
...
...
@@ -1216,6 +1202,8 @@ int MPV_frame_start(MpegEncContext *s, AVCodecContext *avctx)
pic
=
s
->
current_picture_ptr
;
//we already have a unused image (maybe it was set before reading the header)
else
{
i
=
ff_find_unused_picture
(
s
,
0
);
if
(
i
<
0
)
return
i
;
pic
=
&
s
->
picture
[
i
];
}
...
...
@@ -1271,6 +1259,8 @@ int MPV_frame_start(MpegEncContext *s, AVCodecContext *avctx)
/* Allocate a dummy frame */
i
=
ff_find_unused_picture
(
s
,
0
);
if
(
i
<
0
)
return
i
;
s
->
last_picture_ptr
=
&
s
->
picture
[
i
];
if
(
ff_alloc_picture
(
s
,
s
->
last_picture_ptr
,
0
)
<
0
)
return
-
1
;
...
...
@@ -1280,6 +1270,8 @@ int MPV_frame_start(MpegEncContext *s, AVCodecContext *avctx)
if
((
s
->
next_picture_ptr
==
NULL
||
s
->
next_picture_ptr
->
f
.
data
[
0
]
==
NULL
)
&&
s
->
pict_type
==
AV_PICTURE_TYPE_B
)
{
/* Allocate a dummy frame */
i
=
ff_find_unused_picture
(
s
,
0
);
if
(
i
<
0
)
return
i
;
s
->
next_picture_ptr
=
&
s
->
picture
[
i
];
if
(
ff_alloc_picture
(
s
,
s
->
next_picture_ptr
,
0
)
<
0
)
return
-
1
;
...
...
libavcodec/mpegvideo_enc.c
View file @
4f820131
...
...
@@ -858,6 +858,8 @@ static int load_input_picture(MpegEncContext *s, AVFrame *pic_arg){
if
(
direct
){
i
=
ff_find_unused_picture
(
s
,
1
);
if
(
i
<
0
)
return
i
;
pic
=
(
AVFrame
*
)
&
s
->
picture
[
i
];
pic
->
reference
=
3
;
...
...
@@ -871,6 +873,8 @@ static int load_input_picture(MpegEncContext *s, AVFrame *pic_arg){
}
}
else
{
i
=
ff_find_unused_picture
(
s
,
0
);
if
(
i
<
0
)
return
i
;
pic
=
(
AVFrame
*
)
&
s
->
picture
[
i
];
pic
->
reference
=
3
;
...
...
@@ -1200,6 +1204,8 @@ no_output_pic:
// input is a shared pix, so we can't modifiy it -> alloc a new one & ensure that the shared one is reuseable
int
i
=
ff_find_unused_picture
(
s
,
0
);
if
(
i
<
0
)
return
i
;
Picture
*
pic
=
&
s
->
picture
[
i
];
pic
->
f
.
reference
=
s
->
reordered_input_picture
[
0
]
->
f
.
reference
;
...
...
libavcodec/vc1dec.c
View file @
4f820131
...
...
@@ -5579,6 +5579,8 @@ static int vc1_decode_frame(AVCodecContext *avctx, void *data,
* otherwise we cannot store anything in there. */
if
(
s
->
current_picture_ptr
==
NULL
||
s
->
current_picture_ptr
->
f
.
data
[
0
])
{
int
i
=
ff_find_unused_picture
(
s
,
0
);
if
(
i
<
0
)
goto
err
;
s
->
current_picture_ptr
=
&
s
->
picture
[
i
];
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment