Fix issues with bits allocated and consumed
authorDeepa K G <deepa.kg@ittiam.com>
Tue, 22 Jan 2019 10:43:03 +0000 (16:13 +0530)
committerDeepa K G <deepa.kg@ittiam.com>
Thu, 18 Apr 2019 07:39:23 +0000 (07:39 +0000)
For show existing frames, set the variables
this_frame_target and projected_frame_size
correctly.

Change-Id: Id5f06eb4ac195f6b63c0199d9d761eaaaea79bbd

vp9/encoder/vp9_bitstream.c
vp9/encoder/vp9_encoder.c

index 1eac502..da600fb 100644 (file)
@@ -1356,7 +1356,12 @@ void vp9_pack_bitstream(VP9_COMP *cpi, uint8_t *dest, size_t *size) {
   write_uncompressed_header(cpi, &wb);
 
   // Skip the rest coding process if use show existing frame.
-  if (cpi->common.show_existing_frame) return;
+  if (cpi->common.show_existing_frame) {
+    uncompressed_hdr_size = vpx_wb_bytes_written(&wb);
+    data += uncompressed_hdr_size;
+    *size = data - dest;
+    return;
+  }
 
   saved_wb = wb;
   vpx_wb_write_literal(&wb, 0, 16);  // don't know in advance first part. size
index 4f103ff..f7e3237 100644 (file)
@@ -3748,6 +3748,7 @@ static int encode_without_recode_loop(VP9_COMP *cpi, size_t *size,
           : 0;
 
   if (cm->show_existing_frame) {
+    cpi->rc.this_frame_target = 0;
     if (is_psnr_calc_enabled(cpi)) set_raw_source_frame(cpi);
     return 1;
   }
@@ -4071,6 +4072,7 @@ static void encode_with_recode_loop(VP9_COMP *cpi, size_t *size,
 #endif
 
   if (cm->show_existing_frame) {
+    rc->this_frame_target = 0;
     if (is_psnr_calc_enabled(cpi)) set_raw_source_frame(cpi);
     return;
   }