summaryrefslogtreecommitdiffstats
path: root/encoder
diff options
context:
space:
mode:
authorMartin Storsjo <martin@martin.st>2015-07-02 10:48:05 +0300
committerMarco Nelissen <marcone@google.com>2015-07-31 18:51:33 +0000
commitbbc83b16b9708ff71841c67e98cd973d5d65845a (patch)
tree7448e43d72afcbdc9108e23c3d092e7aa9656ae5 /encoder
parentdbe9ac8936d115b59bbf37ee593e0fad83e3bf5e (diff)
downloadandroid_external_libavc-bbc83b16b9708ff71841c67e98cd973d5d65845a.tar.gz
android_external_libavc-bbc83b16b9708ff71841c67e98cd973d5d65845a.tar.bz2
android_external_libavc-bbc83b16b9708ff71841c67e98cd973d5d65845a.zip
Don't use side effects in the macro PUT_BITS_SEV parameters
If ENTROPY_TRACE is defined, the value parameter gets evaluated twice. Since this parameter includes ++, the pointer gets incremented twice. This fixes encoding with trace enabled. Bug: 22860270 Change-Id: I3d71ac33d007301e488d264a33c7b5c4d4ff2b56
Diffstat (limited to 'encoder')
-rw-r--r--encoder/ih264e_cavlc.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/encoder/ih264e_cavlc.c b/encoder/ih264e_cavlc.c
index 5d819d9..7491480 100644
--- a/encoder/ih264e_cavlc.c
+++ b/encoder/ih264e_cavlc.c
@@ -1718,13 +1718,17 @@ IH264E_ERROR_T ih264e_write_bslice_mb_cavlc(entropy_ctxt_t *ps_ent_ctxt)
{
if (i4_mb_part_pred_mode != PRED_L1)/* || PRED_BI */
{
- PUT_BITS_SEV(ps_bitstream, *pi2_mvd_ptr++, error_status, "mv l0 x");
- PUT_BITS_SEV(ps_bitstream, *pi2_mvd_ptr++, error_status, "mv l0 y");
+ PUT_BITS_SEV(ps_bitstream, *pi2_mvd_ptr, error_status, "mv l0 x");
+ pi2_mvd_ptr++;
+ PUT_BITS_SEV(ps_bitstream, *pi2_mvd_ptr, error_status, "mv l0 y");
+ pi2_mvd_ptr++;
}
if (i4_mb_part_pred_mode != PRED_L0)/* || PRED_BI */
{
- PUT_BITS_SEV(ps_bitstream, *pi2_mvd_ptr++, error_status, "mv l1 x");
- PUT_BITS_SEV(ps_bitstream, *pi2_mvd_ptr++, error_status, "mv l1 y");
+ PUT_BITS_SEV(ps_bitstream, *pi2_mvd_ptr, error_status, "mv l1 x");
+ pi2_mvd_ptr++;
+ PUT_BITS_SEV(ps_bitstream, *pi2_mvd_ptr, error_status, "mv l1 y");
+ pi2_mvd_ptr++;
}
}