Fix mismatches caused by filter_intra

Return invalid rate (previously only invalid rdcost) if the
mode combination to check is < 8x8 tx_size + filter_intra mode.

BUG=aomedia:1006

Change-Id: If90f431c7692473c88ac7a644bfa969a1acb3573
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index 92249a1..4a483b3 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -2440,8 +2440,10 @@
 #if CONFIG_FILTER_INTRA
   if (!is_inter_block(mbmi) &&
       mbmi->filter_intra_mode_info.use_filter_intra_mode[0] &&
-      !av1_filter_intra_allowed_txsize(tx_size))
+      !av1_filter_intra_allowed_txsize(tx_size)) {
+    rd_stats->rate = INT_MAX;
     return INT64_MAX;
+  }
 #endif
   txfm_rd_in_plane(x, cpi, rd_stats, ref_best_rd, 0, bs, tx_size,
                    cpi->sf.use_fast_coef_costing);
@@ -3134,7 +3136,7 @@
   MB_MODE_INFO *mbmi = &mic->mbmi;
   int filter_intra_selected_flag = 0;
   FILTER_INTRA_MODE mode;
-  TX_SIZE best_tx_size = TX_4X4;
+  TX_SIZE best_tx_size = TX_8X8;
   FILTER_INTRA_MODE_INFO filter_intra_mode_info;
   TX_TYPE best_tx_type;
 
@@ -3619,7 +3621,8 @@
   }
 
 #if CONFIG_FILTER_INTRA
-  if (beat_best_rd && av1_filter_intra_allowed_bsize(bsize)) {
+  if (beat_best_rd && av1_filter_intra_allowed_bsize(bsize) &&
+      !xd->lossless[mbmi->segment_id]) {
     if (rd_pick_filter_intra_sby(cpi, x, rate, rate_tokenonly, distortion,
                                  skippable, bsize, bmode_costs[DC_PRED],
                                  &best_rd, &best_model_rd,
@@ -9746,7 +9749,8 @@
       skippable = rd_stats_y.skip;
 
 #if CONFIG_FILTER_INTRA
-      if (mbmi->mode == DC_PRED) {
+      if (mbmi->mode == DC_PRED && !xd->lossless[mbmi->segment_id] &&
+          av1_filter_intra_allowed_bsize(mbmi->sb_type)) {
         RD_STATS rd_stats_y_fi;
         int filter_intra_selected_flag = 0;
         TX_SIZE best_tx_size = mbmi->tx_size;