aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/h264_slice.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2015-03-21 17:30:59 +0100
committerMichael Niedermayer <michaelni@gmx.at>2015-03-21 18:03:54 +0100
commitd511dc653062502ac7a86d9ef47ffeabd6f77364 (patch)
treede08d37ef2724816769b0143d3e1866129b965d6 /libavcodec/h264_slice.c
parenta0b39747b7213b5b76c0ce5984c1dac63933737f (diff)
parentbc98e8c0e0a8babfea35c98855e366b29cbe1191 (diff)
downloadffmpeg-d511dc653062502ac7a86d9ef47ffeabd6f77364.tar.gz
Merge commit 'bc98e8c0e0a8babfea35c98855e366b29cbe1191'
* commit 'bc98e8c0e0a8babfea35c98855e366b29cbe1191': h264: move mb_field_decoding_flag into the per-slice context Conflicts: libavcodec/h264_slice.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/h264_slice.c')
-rw-r--r--libavcodec/h264_slice.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c
index 559c6a04e4..d81dd9077b 100644
--- a/libavcodec/h264_slice.c
+++ b/libavcodec/h264_slice.c
@@ -1553,7 +1553,7 @@ int ff_h264_decode_slice_header(H264Context *h, H264SliceContext *sl, H264Contex
h->picture_structure = picture_structure;
h->droppable = droppable;
h->frame_num = frame_num;
- h->mb_field_decoding_flag = picture_structure != PICT_FRAME;
+ sl->mb_field_decoding_flag = picture_structure != PICT_FRAME;
if (h0->current_slice == 0) {
/* Shorten frame num gaps so we don't have to allocate reference
@@ -2131,7 +2131,7 @@ static int fill_filter_caches(H264Context *h, H264SliceContext *sl, int mb_type)
uint8_t *nnz;
uint8_t *nnz_cache;
- top_xy = mb_xy - (h->mb_stride << MB_FIELD(h));
+ top_xy = mb_xy - (h->mb_stride << MB_FIELD(sl));
/* Wow, what a mess, why didn't they simplify the interlacing & intra
* stuff, I can't imagine that these complex rules are worth it. */
@@ -2288,7 +2288,7 @@ static void loop_filter(H264Context *h, H264SliceContext *sl, int start_x, int e
if (FRAME_MBAFF(h))
h->mb_mbaff =
- h->mb_field_decoding_flag = !!IS_INTERLACED(mb_type);
+ sl->mb_field_decoding_flag = !!IS_INTERLACED(mb_type);
sl->mb_x = mb_x;
sl->mb_y = mb_y;
@@ -2302,7 +2302,7 @@ static void loop_filter(H264Context *h, H264SliceContext *sl, int start_x, int e
mb_y * h->uvlinesize * block_h;
// FIXME simplify above
- if (MB_FIELD(h)) {
+ if (MB_FIELD(sl)) {
linesize = sl->mb_linesize = h->linesize * 2;
uvlinesize = sl->mb_uvlinesize = h->uvlinesize * 2;
if (mb_y & 1) { // FIXME move out of this function?
@@ -2344,7 +2344,7 @@ static void predict_field_decoding_flag(H264Context *h, H264SliceContext *sl)
h->cur_pic.mb_type[mb_xy - 1] :
(h->slice_table[mb_xy - h->mb_stride] == sl->slice_num) ?
h->cur_pic.mb_type[mb_xy - h->mb_stride] : 0;
- h->mb_mbaff = h->mb_field_decoding_flag = IS_INTERLACED(mb_type) ? 1 : 0;
+ h->mb_mbaff = sl->mb_field_decoding_flag = IS_INTERLACED(mb_type) ? 1 : 0;
}
/**