bitwriter.c revision 7ce0a1d1337c01056ba24006efab21f00e179e04
1/*
2 *  Copyright (c) 2010 The WebM project authors. All Rights Reserved.
3 *
4 *  Use of this source code is governed by a BSD-style license
5 *  that can be found in the LICENSE file in the root of the source
6 *  tree. An additional intellectual property rights grant can be found
7 *  in the file PATENTS.  All contributing project authors may
8 *  be found in the AUTHORS file in the root of the source tree.
9 */
10
11#include <assert.h>
12
13#include "./bitwriter.h"
14
15void vpx_start_encode(vpx_writer *br, uint8_t *source) {
16  br->lowvalue = 0;
17  br->range    = 255;
18  br->count    = -24;
19  br->buffer   = source;
20  br->pos      = 0;
21  vpx_write_bit(br, 0);
22}
23
24void vpx_stop_encode(vpx_writer *br) {
25  int i;
26
27  for (i = 0; i < 32; i++)
28    vpx_write_bit(br, 0);
29
30  // Ensure there's no ambigous collision with any index marker bytes
31  if ((br->buffer[br->pos - 1] & 0xe0) == 0xc0)
32    br->buffer[br->pos++] = 0;
33}
34
35