summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorLajos Molnar <lajos@google.com>2014-02-11 21:31:40 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2014-02-11 21:31:40 +0000
commit7eacea1156a3896ee7813cd9a06c535e63c95f6a (patch)
tree36555accf4f0edec68e16bd3b5b8e00c1a784448 /media
parent3c9130a8a12ce962dc8d22e04243b135b9e98b01 (diff)
parent04ed61b1004282a632cdc1277d93183e15a8df93 (diff)
downloadframeworks_av-7eacea1156a3896ee7813cd9a06c535e63c95f6a.zip
frameworks_av-7eacea1156a3896ee7813cd9a06c535e63c95f6a.tar.gz
frameworks_av-7eacea1156a3896ee7813cd9a06c535e63c95f6a.tar.bz2
Merge "avcenc: Only do startcode escaping if the next byte requires it"
Diffstat (limited to 'media')
-rw-r--r--media/libstagefright/codecs/avc/enc/src/bitstream_io.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/media/libstagefright/codecs/avc/enc/src/bitstream_io.cpp b/media/libstagefright/codecs/avc/enc/src/bitstream_io.cpp
index 0e3037f..d71c327 100644
--- a/media/libstagefright/codecs/avc/enc/src/bitstream_io.cpp
+++ b/media/libstagefright/codecs/avc/enc/src/bitstream_io.cpp
@@ -103,6 +103,15 @@ AVCEnc_Status AVCBitstreamSaveWord(AVCEncBitstream *stream)
{
num_bits -= 8;
byte = (current_word >> num_bits) & 0xFF;
+ if (stream->count_zeros == 2)
+ { /* for num_bits = 32, this can add 2 more bytes extra for EPBS */
+ if (byte <= 3)
+ {
+ *write_pnt++ = 0x3;
+ stream->write_pos++;
+ stream->count_zeros = 0;
+ }
+ }
if (byte != 0)
{
*write_pnt++ = byte;
@@ -114,12 +123,6 @@ AVCEnc_Status AVCBitstreamSaveWord(AVCEncBitstream *stream)
stream->count_zeros++;
*write_pnt++ = byte;
stream->write_pos++;
- if (stream->count_zeros == 2)
- { /* for num_bits = 32, this can add 2 more bytes extra for EPBS */
- *write_pnt++ = 0x3;
- stream->write_pos++;
- stream->count_zeros = 0;
- }
}
}