gstreamer/gst-libs/gst/codecparsers/gstvp8rangedecoder.h
Tim-Philipp Müller a05006944a codecparsers: GST_EXPORT -> GST_CODEC_PARSERS_API
We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.
2018-03-13 12:34:24 +00:00

80 lines
2.4 KiB
C

/*
* gstvp8rangedecoder.h - VP8 range decoder interface
*
* Copyright (C) 2014 Intel Corporation
* Author: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
#ifndef GST_VP8_RANGE_DECODER_H
#define GST_VP8_RANGE_DECODER_H
#include <glib.h>
#include <gst/gstconfig.h>
#include <gst/codecparsers/codecparsers-prelude.h>
typedef struct _GstVp8RangeDecoder GstVp8RangeDecoder;
typedef struct _GstVp8RangeDecoderState GstVp8RangeDecoderState;
/**
* GstVp8RangeDecoder:
* @buf: the original bitstream buffer start
* @buf_size: the original bitstream buffer size
*
* Range decoder.
*/
struct _GstVp8RangeDecoder {
const guchar *buf;
guint buf_size;
/*< private >*/
gpointer _gst_reserved[GST_PADDING_LARGE];
};
/**
* GstVp8RangeDecoderState:
* @range: current "Range" value
* @value: current "Value" value
* @count: number of bits left in "Value" for decoding
*
* Range decoder state.
*/
struct _GstVp8RangeDecoderState {
guint8 range;
guint8 value;
guint8 count;
};
GST_CODEC_PARSERS_API
gboolean gst_vp8_range_decoder_init (GstVp8RangeDecoder * rd,
const guchar * buf,
guint buf_size);
GST_CODEC_PARSERS_API
gint gst_vp8_range_decoder_read (GstVp8RangeDecoder * rd, guint8 prob);
GST_CODEC_PARSERS_API
gint gst_vp8_range_decoder_read_literal (GstVp8RangeDecoder * rd, gint bits);
GST_CODEC_PARSERS_API
guint gst_vp8_range_decoder_get_pos (GstVp8RangeDecoder * rd);
GST_CODEC_PARSERS_API
void gst_vp8_range_decoder_get_state (GstVp8RangeDecoder * rd,
GstVp8RangeDecoderState * state);
#endif /* GST_VP8_RANGE_DECODER_H */