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
644092c8
Commit
644092c8
authored
Feb 19, 2013
by
Michael Niedermayer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
h264: dont report rows as finished after a missing slice
Signed-off-by:
Michael Niedermayer
<
michaelni@gmx.at
>
parent
a42d15a3
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
11 additions
and
1 deletion
+11
-1
h264.c
libavcodec/h264.c
+11
-1
No files found.
libavcodec/h264.c
View file @
644092c8
...
@@ -4226,7 +4226,7 @@ static void decode_finish_row(H264Context *h)
...
@@ -4226,7 +4226,7 @@ static void decode_finish_row(H264Context *h)
ff_h264_draw_horiz_band
(
h
,
top
,
height
);
ff_h264_draw_horiz_band
(
h
,
top
,
height
);
if
(
h
->
droppable
)
if
(
h
->
droppable
||
h
->
er
.
error_occurred
)
return
;
return
;
ff_thread_report_progress
(
&
h
->
cur_pic_ptr
->
tf
,
top
+
height
-
1
,
ff_thread_report_progress
(
&
h
->
cur_pic_ptr
->
tf
,
top
+
height
-
1
,
...
@@ -4257,6 +4257,16 @@ static int decode_slice(struct AVCodecContext *avctx, void *arg)
...
@@ -4257,6 +4257,16 @@ static int decode_slice(struct AVCodecContext *avctx, void *arg)
avctx
->
codec_id
!=
AV_CODEC_ID_H264
||
avctx
->
codec_id
!=
AV_CODEC_ID_H264
||
(
CONFIG_GRAY
&&
(
h
->
flags
&
CODEC_FLAG_GRAY
));
(
CONFIG_GRAY
&&
(
h
->
flags
&
CODEC_FLAG_GRAY
));
if
(
!
(
h
->
avctx
->
active_thread_type
&
FF_THREAD_SLICE
))
{
const
int
start_i
=
av_clip
(
h
->
resync_mb_x
+
h
->
resync_mb_y
*
h
->
mb_width
,
0
,
h
->
mb_num
-
1
);
if
(
start_i
)
{
int
prev_status
=
h
->
er
.
error_status_table
[
h
->
er
.
mb_index2xy
[
start_i
-
1
]];
prev_status
&=
~
VP_START
;
if
(
prev_status
!=
(
ER_MV_END
|
ER_DC_END
|
ER_AC_END
))
h
->
er
.
error_occurred
=
1
;
}
}
if
(
h
->
pps
.
cabac
)
{
if
(
h
->
pps
.
cabac
)
{
/* realign */
/* realign */
align_get_bits
(
&
h
->
gb
);
align_get_bits
(
&
h
->
gb
);
...
...
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