|
@@ -1015,6 +1015,7 @@ static void fill_decode_caches(H264Context *h, int mb_type){
|
|
|
if((IS_SKIP(mb_type) || IS_DIRECT(mb_type)) && !FRAME_MBAFF)
|
|
|
continue;
|
|
|
|
|
|
+ if(!IS_DIRECT(mb_type)) {
|
|
|
h->ref_cache[list][scan8[5 ]+1] =
|
|
|
h->ref_cache[list][scan8[7 ]+1] =
|
|
|
h->ref_cache[list][scan8[13]+1] = //FIXME remove past 3 (init somewhere else)
|
|
@@ -1026,7 +1027,7 @@ static void fill_decode_caches(H264Context *h, int mb_type){
|
|
|
*(uint32_t*)h->mv_cache [list][scan8[4 ]]=
|
|
|
*(uint32_t*)h->mv_cache [list][scan8[12]]= 0;
|
|
|
|
|
|
- if( CABAC && !IS_DIRECT(mb_type)) {
|
|
|
+ if( CABAC ) {
|
|
|
/* XXX beurk, Load mvd */
|
|
|
if(USES_LIST(top_type, list)){
|
|
|
const int b_xy= h->mb2b_xy[top_xy] + 3*h->b_stride;
|
|
@@ -1084,7 +1085,7 @@ static void fill_decode_caches(H264Context *h, int mb_type){
|
|
|
h->direct_cache[scan8[0] - 1 + 2*8]= 0;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ }
|
|
|
if(FRAME_MBAFF){
|
|
|
#define MAP_MVS\
|
|
|
MAP_F2F(scan8[0] - 1 - 1*8, topleft_type)\
|