Mercurial > libavcodec.hg
comparison h264.c @ 5177:ea61020e5e87 libavcodec
Don't swap back un-deblocked lines for intra prediction when
at slice boundaries for deblocking-type 2 content.
This is needed for slice based threading only and doesn't do much
good or bad otherwise.
Patch by Andreas Oman %andreas A olebyn P nu%
Original thread:
date: Jun 18, 2007 1:21 PM
subject: Re: [FFmpeg-devel] [PATCH] h264 parallelized,
author | gpoirier |
---|---|
date | Thu, 21 Jun 2007 07:52:06 +0000 |
parents | 2e038003cdfb |
children | 2b72f9bc4f06 |
comparison
equal
deleted
inserted
replaced
5176:82f7eaa32f46 | 5177:ea61020e5e87 |
---|---|
3022 | 3022 |
3023 static inline void xchg_mb_border(H264Context *h, uint8_t *src_y, uint8_t *src_cb, uint8_t *src_cr, int linesize, int uvlinesize, int xchg, int simple){ | 3023 static inline void xchg_mb_border(H264Context *h, uint8_t *src_y, uint8_t *src_cb, uint8_t *src_cr, int linesize, int uvlinesize, int xchg, int simple){ |
3024 MpegEncContext * const s = &h->s; | 3024 MpegEncContext * const s = &h->s; |
3025 int temp8, i; | 3025 int temp8, i; |
3026 uint64_t temp64; | 3026 uint64_t temp64; |
3027 int deblock_left = (s->mb_x > 0); | 3027 int deblock_left; |
3028 int deblock_top = (s->mb_y > 0); | 3028 int deblock_top; |
3029 int mb_xy; | |
3030 | |
3031 if(h->deblocking_filter == 2) { | |
3032 mb_xy = s->mb_x + s->mb_y*s->mb_stride; | |
3033 deblock_left = h->slice_table[mb_xy] == h->slice_table[mb_xy - 1]; | |
3034 deblock_top = h->slice_table[mb_xy] == h->slice_table[h->top_mb_xy]; | |
3035 } else { | |
3036 deblock_left = (s->mb_x > 0); | |
3037 deblock_top = (s->mb_y > 0); | |
3038 } | |
3029 | 3039 |
3030 src_y -= linesize + 1; | 3040 src_y -= linesize + 1; |
3031 src_cb -= uvlinesize + 1; | 3041 src_cb -= uvlinesize + 1; |
3032 src_cr -= uvlinesize + 1; | 3042 src_cr -= uvlinesize + 1; |
3033 | 3043 |