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