|
|
@@ -215,18 +215,18 @@ int ff_h264_check_intra_pred_mode(H264Context *h, int mode, int is_chroma) |
|
|
|
|
|
|
|
|
if ((h->left_samples_available & 0x8080) != 0x8080) { |
|
|
if ((h->left_samples_available & 0x8080) != 0x8080) { |
|
|
mode = left[mode]; |
|
|
mode = left[mode]; |
|
|
if (is_chroma && (h->left_samples_available & 0x8080)) { |
|
|
|
|
|
// mad cow disease mode, aka MBAFF + constrained_intra_pred |
|
|
|
|
|
mode = ALZHEIMER_DC_L0T_PRED8x8 + |
|
|
|
|
|
(!(h->left_samples_available & 0x8000)) + |
|
|
|
|
|
2 * (mode == DC_128_PRED8x8); |
|
|
|
|
|
} |
|
|
|
|
|
if (mode < 0) { |
|
|
if (mode < 0) { |
|
|
av_log(h->avctx, AV_LOG_ERROR, |
|
|
av_log(h->avctx, AV_LOG_ERROR, |
|
|
"left block unavailable for requested intra mode at %d %d\n", |
|
|
"left block unavailable for requested intra mode at %d %d\n", |
|
|
h->mb_x, h->mb_y); |
|
|
h->mb_x, h->mb_y); |
|
|
return AVERROR_INVALIDDATA; |
|
|
return AVERROR_INVALIDDATA; |
|
|
} |
|
|
} |
|
|
|
|
|
if (is_chroma && (h->left_samples_available & 0x8080)) { |
|
|
|
|
|
// mad cow disease mode, aka MBAFF + constrained_intra_pred |
|
|
|
|
|
mode = ALZHEIMER_DC_L0T_PRED8x8 + |
|
|
|
|
|
(!(h->left_samples_available & 0x8000)) + |
|
|
|
|
|
2 * (mode == DC_128_PRED8x8); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
return mode; |
|
|
return mode; |
|
|
|