MCPcopy Create free account
hub / github.com/FFmpeg/FFmpeg / put_bits32

Function put_bits32

libavcodec/put_bits.h:301–339  ·  view source on GitHub ↗

* Write exactly 32 bits into a bitstream. */

Source from the content-addressed store, hash-verified

299 * Write exactly 32 bits into a bitstream.
300 */
301av_unused static void put_bits32(PutBitContext *s, uint32_t value)
302{
303 BitBuf bit_buf;
304 int bit_left;
305
306 if (BUF_BITS > 32) {
307 put_bits_no_assert(s, 32, value);
308 return;
309 }
310
311 bit_buf = s->bit_buf;
312 bit_left = s->bit_left;
313
314#ifdef BITSTREAM_WRITER_LE
315 bit_buf |= (BitBuf)value << (BUF_BITS - bit_left);
316 if (s->buf_end - s->buf_ptr >= sizeof(BitBuf)) {
317 AV_WLBUF(s->buf_ptr, bit_buf);
318 s->buf_ptr += sizeof(BitBuf);
319 } else {
320 av_log(NULL, AV_LOG_ERROR, "Internal error, put_bits buffer too small\n");
321 av_assert2(0);
322 }
323 bit_buf = (uint64_t)value >> bit_left;
324#else
325 bit_buf = (uint64_t)bit_buf << bit_left;
326 bit_buf |= (BitBuf)value >> (BUF_BITS - bit_left);
327 if (s->buf_end - s->buf_ptr >= sizeof(BitBuf)) {
328 AV_WBBUF(s->buf_ptr, bit_buf);
329 s->buf_ptr += sizeof(BitBuf);
330 } else {
331 av_log(NULL, AV_LOG_ERROR, "Internal error, put_bits buffer too small\n");
332 av_assert2(0);
333 }
334 bit_buf = value;
335#endif
336
337 s->bit_buf = bit_buf;
338 s->bit_left = bit_left;
339}
340
341/**
342 * Write up to 63 bits into a bitstream.

Callers 15

update_extradataFunction · 0.85
update_extradataFunction · 0.85
ff_isom_put_dvcc_dvvcFunction · 0.85
put_pack_headerFunction · 0.85
put_system_headerFunction · 0.85
mov_write_dvc1_structsFunction · 0.85
dv_decode_video_segmentFunction · 0.85
ff_dovi_rpu_generateFunction · 0.85
cbs_av1_write_obuFunction · 0.85
tta_encode_frameFunction · 0.85
put_floatFunction · 0.85
put_main_headerFunction · 0.85

Calls 2

put_bits_no_assertFunction · 0.85
av_logFunction · 0.85

Tested by 1

mainFunction · 0.68