Originally committed as revision 22572 to svn://svn.ffmpeg.org/ffmpeg/trunk
Unified · Split
| @@ -43,7 +43,18 @@ static void decode_mb(MpegEncContext *s){ · 42 unmodified lines | |||
| 43 | s->dest[1] = s->current_picture.data[1] + (s->mb_y * (16>>s->chroma_y_shift) * s->uvlinesize) + s->mb_x * (16>>s->chroma_x_shift); | 43 | s->dest[1] = s->current_picture.data[1] + (s->mb_y * (16>>s->chroma_y_shift) * s->uvlinesize) + s->mb_x * (16>>s->chroma_x_shift); |
| 44 | s->dest[2] = s->current_picture.data[2] + (s->mb_y * (16>>s->chroma_y_shift) * s->uvlinesize) + s->mb_x * (16>>s->chroma_x_shift); | 44 | s->dest[2] = s->current_picture.data[2] + (s->mb_y * (16>>s->chroma_y_shift) * s->uvlinesize) + s->mb_x * (16>>s->chroma_x_shift); |
| 45 | 45 | ||
| 46 | if(s->codec_id == CODEC_ID_H264){ | ||
| 47 | H264Context *h= (void*)s; | ||
| 48 | h->mb_xy= s->mb_x + s->mb_y*s->mb_stride; | ||
| 49 | memset(h->non_zero_count_cache, 0, sizeof(h->non_zero_count_cache)); | ||
| 50 | fill_rectangle(&h->ref_cache[0][scan8[0]], 4, 4, 8, 0, 1); | ||
| 51 | fill_rectangle(h->mv_cache[0][ scan8[0] ], 4, 4, 8, pack16to32(s->mv[0][0][0],s->mv[0][0][1]), 4); | ||
| 52 | assert(h->list_count==1); | ||
| 53 | assert(!FRAME_MBAFF); | ||
| 54 | ff_h264_hl_decode_mb(h); | ||
| 55 | }else{ | ||
| 46 | MPV_decode_mb(s, s->block); | 56 | MPV_decode_mb(s, s->block); |
| 57 | } | ||
| 47 | } | 58 | } |
| 48 | 59 | ||
| 49 | /** | 60 | /** |