Browse Source

Merge commit '68f930d2188aba5b32624887dcbf688c23482834'

* commit '68f930d2188aba5b32624887dcbf688c23482834':
  h264: simplify calls to ff_er_add_slice().

Conflicts:
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
tags/n1.2
Michael Niedermayer 12 years ago
parent
commit
131b9c924d
1 changed files with 8 additions and 10 deletions
  1. +8
    -10
      libavcodec/h264.c

+ 8
- 10
libavcodec/h264.c View File

@@ -3740,8 +3740,6 @@ static int decode_slice(struct AVCodecContext *avctx, void *arg)
{
H264Context *h = *(void **)arg;
MpegEncContext *const s = &h->s;
const int part_mask = s->partitioned_frame ? (ER_AC_END | ER_AC_ERROR)
: 0x7F;
int lf_x_start = s->mb_x;

s->mb_skip_run = -1;
@@ -3787,7 +3785,7 @@ static int decode_slice(struct AVCodecContext *avctx, void *arg)
if ((s->workaround_bugs & FF_BUG_TRUNCATED) &&
h->cabac.bytestream > h->cabac.bytestream_end + 2) {
ff_er_add_slice(s, s->resync_mb_x, s->resync_mb_y, s->mb_x - 1,
s->mb_y, ER_MB_END & part_mask);
s->mb_y, ER_MB_END);
if (s->mb_x >= lf_x_start)
loop_filter(h, lf_x_start, s->mb_x + 1);
return 0;
@@ -3800,7 +3798,7 @@ static int decode_slice(struct AVCodecContext *avctx, void *arg)
s->mb_x, s->mb_y,
h->cabac.bytestream_end - h->cabac.bytestream);
ff_er_add_slice(s, s->resync_mb_x, s->resync_mb_y, s->mb_x,
s->mb_y, ER_MB_ERROR & part_mask);
s->mb_y, ER_MB_ERROR);
return -1;
}

@@ -3820,7 +3818,7 @@ static int decode_slice(struct AVCodecContext *avctx, void *arg)
tprintf(s->avctx, "slice end %d %d\n",
get_bits_count(&s->gb), s->gb.size_in_bits);
ff_er_add_slice(s, s->resync_mb_x, s->resync_mb_y, s->mb_x - 1,
s->mb_y, ER_MB_END & part_mask);
s->mb_y, ER_MB_END);
if (s->mb_x > lf_x_start)
loop_filter(h, lf_x_start, s->mb_x);
return 0;
@@ -3847,7 +3845,7 @@ static int decode_slice(struct AVCodecContext *avctx, void *arg)
av_log(h->s.avctx, AV_LOG_ERROR,
"error while decoding MB %d %d\n", s->mb_x, s->mb_y);
ff_er_add_slice(s, s->resync_mb_x, s->resync_mb_y, s->mb_x,
s->mb_y, ER_MB_ERROR & part_mask);
s->mb_y, ER_MB_ERROR);
return -1;
}

@@ -3869,13 +3867,13 @@ static int decode_slice(struct AVCodecContext *avctx, void *arg)
|| get_bits_left(&s->gb) > 0 && !(s->avctx->err_recognition & AV_EF_AGGRESSIVE)) {
ff_er_add_slice(s, s->resync_mb_x, s->resync_mb_y,
s->mb_x - 1, s->mb_y,
ER_MB_END & part_mask);
ER_MB_END);

return 0;
} else {
ff_er_add_slice(s, s->resync_mb_x, s->resync_mb_y,
s->mb_x, s->mb_y,
ER_MB_END & part_mask);
ER_MB_END);

return -1;
}
@@ -3888,14 +3886,14 @@ static int decode_slice(struct AVCodecContext *avctx, void *arg)
if (get_bits_left(&s->gb) == 0) {
ff_er_add_slice(s, s->resync_mb_x, s->resync_mb_y,
s->mb_x - 1, s->mb_y,
ER_MB_END & part_mask);
ER_MB_END);
if (s->mb_x > lf_x_start)
loop_filter(h, lf_x_start, s->mb_x);

return 0;
} else {
ff_er_add_slice(s, s->resync_mb_x, s->resync_mb_y, s->mb_x,
s->mb_y, ER_MB_ERROR & part_mask);
s->mb_y, ER_MB_ERROR);

return -1;
}


Loading…
Cancel
Save