shithub: libvpx

Download patch

ref: 94fa3bcc06778fb1ba26cb4a8e515c58dcc962eb
parent: 01e41a531b1ccd18eff2c6c490bd9104936e94ff
parent: 5fa64bdef0bf760074407b9bf853eef6d64ea089
author: Deb Mukherjee <debargha@google.com>
date: Mon Apr 22 08:59:51 EDT 2013

Merge "Bugfix from reordering frame probs patch" into experimental

--- a/vp9/decoder/vp9_decodframe.c
+++ b/vp9/decoder/vp9_decodframe.c
@@ -1481,6 +1481,8 @@
   pc->clamp_type = (CLAMP_TYPE)vp9_read_bit(&header_bc);
   pc->error_resilient_mode = vp9_read_bit(&header_bc);
 
+  xd->lossless = vp9_read_bit(&header_bc);
+
   setup_loopfilter(pc, xd, &header_bc);
 
   // Dummy read for now
@@ -1549,7 +1551,6 @@
 
   setup_pred_probs(pc, &header_bc);
 
-  xd->lossless = vp9_read_bit(&header_bc);
   pc->txfm_mode = xd->lossless ? ONLY_4X4 : read_txfm_mode(&header_bc);
   if (pc->txfm_mode == TX_MODE_SELECT) {
     pc->prob_tx[0] = vp9_read_prob(&header_bc);
--- a/vp9/encoder/vp9_bitstream.c
+++ b/vp9/encoder/vp9_bitstream.c
@@ -1803,6 +1803,9 @@
   // error resilient mode
   vp9_write_bit(&header_bc, pc->error_resilient_mode);
 
+  // lossless mode: note this needs to be before loopfilter
+  vp9_write_bit(&header_bc, cpi->mb.e_mbd.lossless);
+
   // Encode the loop filter level and type
   vp9_write_bit(&header_bc, pc->filter_type);
   vp9_write_literal(&header_bc, pc->filter_level, 6);
@@ -2072,7 +2075,6 @@
     }
   }
 
-  vp9_write_bit(&header_bc, cpi->mb.e_mbd.lossless);
   if (cpi->mb.e_mbd.lossless) {
     pc->txfm_mode = ONLY_4X4;
   } else {
--