diff options
author | Marcin KoĆcielnicki <koriakin@0x04.net> | 2011-12-23 15:07:26 +0100 |
---|---|---|
committer | Marcin KoĆcielnicki <koriakin@0x04.net> | 2011-12-23 15:07:26 +0100 |
commit | 18e0fc45aac07deaef9569c11ba288a1a2e6bc7c (patch) | |
tree | ea31daee762d5e31aa851bffd33fc17c80645cc0 /vstream | |
parent | d1285d18fd40224bc5deafba258375f2db50c5d8 (diff) |
h264: Actually write prev_mb_addr.
Diffstat (limited to 'vstream')
-rw-r--r-- | vstream/h264_slice.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/vstream/h264_slice.c b/vstream/h264_slice.c index 79b566c4..b38481b9 100644 --- a/vstream/h264_slice.c +++ b/vstream/h264_slice.c @@ -362,6 +362,7 @@ int h264_slice_data(struct bitstream *str, struct h264_slice *slice) { return vs_align_byte(str, VS_ALIGN_0); } } + slice->prev_mb_addr = slice->curr_mb_addr; if (str->dir == VS_DECODE) slice->last_mb_in_slice = slice->curr_mb_addr; slice->curr_mb_addr = h264_next_mb_addr(slice, slice->curr_mb_addr); @@ -384,6 +385,7 @@ int h264_slice_data(struct bitstream *str, struct h264_slice *slice) { end = 1; break; } + slice->prev_mb_addr = slice->curr_mb_addr; slice->curr_mb_addr = h264_next_mb_addr(slice, slice->curr_mb_addr); } if (vs_ue(str, &mb_skip_run)) return 1; @@ -399,6 +401,8 @@ int h264_slice_data(struct bitstream *str, struct h264_slice *slice) { slice->last_mb_in_slice = slice->curr_mb_addr; slice->mbs[slice->curr_mb_addr].mb_type = skip_type; if (infer_skip(str, slice, &slice->mbs[slice->curr_mb_addr])) return 1; + slice->prev_mb_addr = slice->curr_mb_addr; + slice->last_mb_in_slice = slice->curr_mb_addr; slice->curr_mb_addr = h264_next_mb_addr(slice, slice->curr_mb_addr); } int more = vs_has_more_data(str); @@ -432,6 +436,7 @@ int h264_slice_data(struct bitstream *str, struct h264_slice *slice) { if (more == 0) goto out_cavlc; } + slice->prev_mb_addr = slice->curr_mb_addr; if (str->dir == VS_DECODE) slice->last_mb_in_slice = slice->curr_mb_addr; slice->curr_mb_addr = h264_next_mb_addr(slice, slice->curr_mb_addr); |