OSDN Git Service

fix intra prediction modes with inter-MB neighbors,
authorStefan Gehrer <stefan.gehrer@gmx.de>
Thu, 18 Feb 2010 18:23:48 +0000 (18:23 +0000)
committerStefan Gehrer <stefan.gehrer@gmx.de>
Thu, 18 Feb 2010 18:23:48 +0000 (18:23 +0000)
the old sample clips are in violation of the 2006 spec

Originally committed as revision 21883 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/cavs.h

index fce55c3..1271855 100644 (file)
@@ -248,8 +248,13 @@ static inline void modify_pred(const int_fast8_t *mod_table, int *mode) {
 }
 
 static inline void set_intra_mode_default(AVSContext *h) {
-    h->pred_mode_Y[3] =  h->pred_mode_Y[6] = INTRA_L_LP;
-    h->top_pred_Y[h->mbx*2+0] = h->top_pred_Y[h->mbx*2+1] = INTRA_L_LP;
+    if(h->stream_revision > 0) {
+        h->pred_mode_Y[3] =  h->pred_mode_Y[6] = NOT_AVAIL;
+        h->top_pred_Y[h->mbx*2+0] = h->top_pred_Y[h->mbx*2+1] = NOT_AVAIL;
+    } else {
+        h->pred_mode_Y[3] =  h->pred_mode_Y[6] = INTRA_L_LP;
+        h->top_pred_Y[h->mbx*2+0] = h->top_pred_Y[h->mbx*2+1] = INTRA_L_LP;
+    }
 }
 
 static inline void set_mvs(cavs_vector *mv, enum cavs_block size) {