bitstream writer API More...
#include <stdint.h>
#include <stdlib.h>
#include <assert.h>
#include "libavutil/bswap.h"
#include "libavutil/common.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/log.h"
#include "mathops.h"
#include "config.h"
Go to the source code of this file.
Data Structures | |
struct | PutBitContext |
Typedefs | |
typedef struct PutBitContext | PutBitContext |
Functions | |
static void | init_put_bits (PutBitContext *s, uint8_t *buffer, int buffer_size) |
Initialize the PutBitContext s. | |
static int | put_bits_count (PutBitContext *s) |
static int | put_bits_left (PutBitContext *s) |
static void | flush_put_bits (PutBitContext *s) |
Pad the end of the output stream with zeros. | |
void | avpriv_align_put_bits (PutBitContext *s) |
Pad the bitstream with zeros up to the next byte boundary. | |
void | ff_put_string (PutBitContext *pb, const char *string, int terminate_string) |
Put the string string in the bitstream. | |
void | avpriv_copy_bits (PutBitContext *pb, const uint8_t *src, int length) |
Copy the content of src to the bitstream. | |
static void | put_bits (PutBitContext *s, int n, unsigned int value) |
Write up to 31 bits into a bitstream. | |
static void | put_sbits (PutBitContext *pb, int n, int32_t value) |
static void av_unused | put_bits32 (PutBitContext *s, uint32_t value) |
Write exactly 32 bits into a bitstream. | |
static uint8_t * | put_bits_ptr (PutBitContext *s) |
Return the pointer to the byte where the bitstream writer will put the next bit. | |
static void | skip_put_bytes (PutBitContext *s, int n) |
Skip the given number of bytes. | |
static void | skip_put_bits (PutBitContext *s, int n) |
Skip the given number of bits. | |
static void | set_put_bits_buffer_size (PutBitContext *s, int size) |
Change the end of the buffer. |
bitstream writer API
Definition in file put_bits.h.
typedef struct PutBitContext PutBitContext |
void avpriv_align_put_bits | ( | PutBitContext * | s | ) |
Pad the bitstream with zeros up to the next byte boundary.
Definition at line 44 of file bitstream.c.
Referenced by avpriv_copy_pce_data(), encode_block(), encode_frame(), encode_picture_ls(), ff_flv_encode_picture_header(), ff_h261_encode_picture_header(), ff_h263_encode_picture_header(), latm_write_packet(), put_bitstream_info(), put_header(), rv10_encode_picture_header(), write_slice_end(), xsub_encode(), and xsub_encode_rle().
void avpriv_copy_bits | ( | PutBitContext * | pb, |
const uint8_t * | src, | ||
int | length | ||
) |
Copy the content of src to the bitstream.
length | the number of bits of src to copy |
Definition at line 59 of file bitstream.c.
Referenced by copy_bits(), encode_thread(), ff_mpeg4_merge_partitions(), latm_write_frame_header(), merge_context_after_encode(), save_bits(), and svq1_encode_plane().
void ff_put_string | ( | PutBitContext * | pb, |
const char * | string, | ||
int | terminate_string | ||
) |
Put the string string in the bitstream.
terminate_string | 0-terminates the written string if value is 1 |
Definition at line 49 of file bitstream.c.
Referenced by jpeg_put_comments(), and mpeg4_encode_vol_header().
|
inlinestatic |
Pad the end of the output stream with zeros.
Definition at line 86 of file put_bits.h.
Referenced by aac_adtstoasc_filter(), aac_encode_frame(), adx_encode(), alac_encode_frame(), avpriv_copy_bits(), dca_convert_bitstream(), dnxhd_encode_thread(), dv_decode_video_segment(), dv_encode_video_segment(), encode_bitstream(), encode_block(), encode_ext_header(), encode_frame(), encode_init(), encode_picture_lossless(), encode_picture_ls(), encode_superframe(), encode_thread(), escape_FF(), ff_adts_decode_extradata(), ff_adts_write_frame_header(), ff_mjpeg_encode_picture_trailer(), ff_mjpeg_find_marker(), ff_mpeg4_merge_partitions(), gif_image_write_image(), jpeg_put_comments(), jpeg_table_header(), latm_write_packet(), main(), merge_context_after_encode(), mov_write_ac3_tag(), MPV_encode_picture(), output_frame_end(), pnm_decode_frame(), put_audio_specific_config(), put_line(), put_main_header(), put_pack_header(), put_swf_matrix(), put_swf_rect(), put_system_header(), ra144_encode_frame(), save_bits(), svq1_encode_frame(), svq1_encode_plane(), swf_write_header(), vorbis_encode_frame(), wmavoice_decode_packet(), write_frame_footer(), write_frame_header(), write_slice_end(), write_streaminfo(), and xsub_encode().
|
inlinestatic |
Initialize the PutBitContext s.
buffer | the buffer where to put bits |
buffer_size | the size in bytes of buffer |
Definition at line 52 of file put_bits.h.
Referenced by aac_adtstoasc_filter(), aac_encode_frame(), adx_encode(), alac_encode_frame(), dca_convert_bitstream(), decode_init(), dnxhd_encode_thread(), dv_decode_video_segment(), dv_encode_video_segment(), encode_bitstream(), encode_block(), encode_ext_header(), encode_frame(), encode_init(), encode_picture_lossless(), encode_picture_ls(), encode_thread(), ff_ac3_output_frame(), ff_adts_decode_extradata(), ff_adts_write_frame_header(), ff_init_cabac_encoder(), ff_lzw_encode_init(), ff_mjpeg_find_marker(), ff_mpeg4_init_partitions(), gif_image_write_image(), latm_write_packet(), main(), mov_write_ac3_tag(), MPA_encode_frame(), MPV_encode_picture(), pnm_decode_frame(), put_audio_specific_config(), put_line(), put_main_header(), put_pack_header(), put_swf_matrix(), put_swf_rect(), put_system_header(), ra144_encode_frame(), save_bits(), svq1_encode_frame(), svq1_encode_plane(), swf_write_header(), vorbis_encode_frame(), wmavoice_decode_packet(), write_frame(), write_streaminfo(), and xsub_encode().
|
inlinestatic |
Write up to 31 bits into a bitstream.
Use put_bits32 to write 32 bits.
Definition at line 136 of file put_bits.h.
Referenced by aac_adtstoasc_filter(), aac_encode_frame(), ac3_output_frame_header(), alac_encode_frame(), asv1_encode_block(), asv1_put_level(), asv2_encode_block(), asv2_put_bits(), asv2_put_level(), avpriv_align_put_bits(), avpriv_copy_bits(), bit_copy(), codebook_trellis_rate(), copy_bits(), dca_convert_bitstream(), dnxhd_encode_block(), dnxhd_encode_dc(), dnxhd_encode_thread(), dv_encode_ac(), dv_encode_video_segment(), encode_bitstream(), encode_block(), encode_dc(), encode_exp_vlc(), encode_ext_header(), encode_frame(), encode_individual_channel(), encode_mb_skip_run(), encode_ms_info(), encode_picture_ls(), encode_pulses(), encode_scalar(), encode_scale_factors(), encode_superframe(), encode_window_bands_info(), ff_adts_decode_extradata(), ff_adts_write_frame_header(), ff_eac3_output_frame_header(), ff_flv2_encode_ac_esc(), ff_flv_encode_picture_header(), ff_h261_encode_mb(), ff_h261_encode_picture_header(), ff_h263_encode_gob_header(), ff_h263_encode_mb(), ff_h263_encode_mba(), ff_h263_encode_motion(), ff_h263_encode_picture_header(), ff_mjpeg_encode_dc(), ff_mjpeg_encode_picture_header(), ff_mjpeg_encode_stuffing(), ff_mjpeg_find_marker(), ff_mpeg1_encode_slice_header(), ff_mpeg4_encode_video_packet_header(), ff_mpeg4_merge_partitions(), ff_mpeg4_stuffing(), ff_msmpeg4_encode_block(), ff_put_string(), ff_wmv2_encode_mb(), ff_wmv2_encode_picture_header(), ff_write_quant_matrix(), floor_encode(), gif_image_write_image(), h261_encode_block(), h261_encode_gob_header(), h261_encode_motion(), h263_encode_block(), h263p_encode_umotion(), jpeg_put_comments(), jpeg_table_header(), latm_write_frame_header(), latm_write_packet(), ls_encode_run(), ls_store_lse(), main(), mov_write_ac3_tag(), mpeg1_encode_block(), mpeg1_encode_mb_internal(), mpeg1_encode_motion(), mpeg1_encode_picture_header(), mpeg1_encode_sequence_header(), mpeg4_encode_block(), mpeg4_encode_dc(), mpeg4_encode_gop_header(), mpeg4_encode_mb(), mpeg4_encode_picture_header(), mpeg4_encode_visual_object_header(), mpeg4_encode_vol_header(), MPV_encode_picture(), msmpeg4_encode_dc(), output_audio_block(), pnm_decode_frame(), put_audio_specific_config(), put_bits32(), put_bitstream_info(), put_codebook_header(), put_codeword(), put_floor_header(), put_header(), put_huffman_table(), put_ics_info(), put_main_header(), put_marker(), put_mb_modes(), put_pack_header(), put_qscale(), put_residue_header(), put_sbits(), put_swf_line_edge(), put_swf_matrix(), put_swf_rect(), put_system_header(), put_xsub_rle(), quantize_and_encode_band_cost_template(), ra144_encode_frame(), ra144_encode_subblock(), rv10_encode_picture_header(), rv20_encode_picture_header(), save_bits(), set_te_golomb(), set_ue_golomb(), set_ur_golomb(), set_ur_golomb_jpegls(), svq1_encode_frame(), svq1_encode_plane(), svq1_write_header(), swf_write_header(), vorbis_encode_frame(), write_compressed_frame(), write_frame_footer(), write_frame_header(), write_streaminfo(), write_subframes(), and write_utf8().
|
static |
Write exactly 32 bits into a bitstream.
Definition at line 187 of file put_bits.h.
Referenced by dv_decode_video_segment(), put_float(), put_main_header(), put_pack_header(), put_system_header(), and write_frame_header().
|
inlinestatic |
Definition at line 70 of file put_bits.h.
Referenced by aac_encode_frame(), alac_encode_frame(), avpriv_copy_bits(), avpriv_copy_pce_data(), copy_bits(), dca_convert_bitstream(), dnxhd_encode_thread(), dv_decode_video_segment(), dv_encode_video_segment(), encode_bgr_bitstream(), encode_block(), encode_frame(), encode_init(), encode_mb(), encode_mb_hq(), encode_picture(), encode_picture_lossless(), encode_picture_ls(), encode_superframe(), encode_thread(), escape_FF(), ff_mjpeg_encode_stuffing(), ff_mpeg4_merge_partitions(), ff_mpeg4_stuffing(), get_bits_diff(), latm_write_packet(), merge_context_after_encode(), mpeg1_encode_picture_header(), MPV_encode_picture(), output_frame_end(), put_bitstream_info(), put_main_header(), skip_put_bytes(), svq1_encode_frame(), svq1_encode_plane(), vorbis_encode_frame(), write_frame(), write_frame_footer(), write_frame_header(), writtenBytes(), xsub_encode(), and xsub_encode_rle().
|
inlinestatic |
Definition at line 78 of file put_bits.h.
Referenced by dv_encode_ac(), and save_bits().
|
inlinestatic |
Return the pointer to the byte where the bitstream writer will put the next bit.
Definition at line 204 of file put_bits.h.
Referenced by avpriv_copy_bits(), encode_picture_lossless(), encode_superframe(), encode_thread(), ff_h261_encode_picture_header(), ff_h263_encode_picture_header(), ff_mpeg4_init_partitions(), gif_image_write_image(), jpeg_put_comments(), jpeg_table_header(), MPA_encode_frame(), MPV_encode_picture(), output_frame_end(), put_pack_header(), put_swf_matrix(), put_swf_rect(), put_system_header(), and swf_write_header().
|
inlinestatic |
Definition at line 177 of file put_bits.h.
Referenced by adx_encode(), alac_encode_frame(), asv1_put_level(), dv_encode_video_segment(), encode_block(), ff_flv2_encode_ac_esc(), ff_h261_encode_picture_header(), ff_h263_encode_picture_header(), ff_mjpeg_encode_dc(), ff_msmpeg4_encode_block(), h261_encode_block(), h263_encode_block(), mpeg1_encode_block(), mpeg1_encode_mb_internal(), mpeg1_encode_sequence_header(), output_audio_block(), put_header(), put_line(), rv20_encode_picture_header(), set_ur_golomb_jpegls(), write_compressed_frame(), and write_subframes().
|
inlinestatic |
Change the end of the buffer.
size | the new size in bytes of the buffer where to put bits |
Definition at line 237 of file put_bits.h.
Referenced by ff_mpeg4_init_partitions(), and ff_mpeg4_merge_partitions().
|
inlinestatic |
Skip the given number of bits.
Must only be used if the actual values in the bitstream do not matter. If n is 0 the behavior is undefined.
Definition at line 225 of file put_bits.h.
Referenced by ff_h263_encode_motion_vector(), and mpeg4_encode_blocks().
|
inlinestatic |
Skip the given number of bytes.
PutBitContext must be flushed & aligned to a byte boundary before calling this.
Definition at line 213 of file put_bits.h.
Referenced by avpriv_copy_bits(), and escape_FF().