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

Function write_frame_header

libavcodec/flacenc.c:1413–1447  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1411
1412
1413static void write_frame_header(FlacEncodeContext *s)
1414{
1415 FlacFrame *frame;
1416 int crc;
1417
1418 frame = &s->frame;
1419
1420 put_bits(&s->pb, 16, 0xFFF8);
1421 put_bits(&s->pb, 4, frame->bs_code[0]);
1422 put_bits(&s->pb, 4, s->sr_code[0]);
1423
1424 if (frame->ch_mode == FLAC_CHMODE_INDEPENDENT)
1425 put_bits(&s->pb, 4, s->channels-1);
1426 else
1427 put_bits(&s->pb, 4, frame->ch_mode + FLAC_MAX_CHANNELS - 1);
1428
1429 put_bits(&s->pb, 3, s->bps_code);
1430 put_bits(&s->pb, 1, 0);
1431 write_utf8(&s->pb, s->frame_count);
1432
1433 if (frame->bs_code[0] == 6)
1434 put_bits(&s->pb, 8, frame->bs_code[1]);
1435 else if (frame->bs_code[0] == 7)
1436 put_bits(&s->pb, 16, frame->bs_code[1]);
1437
1438 if (s->sr_code[0] == 12)
1439 put_bits(&s->pb, 8, s->sr_code[1]);
1440 else if (s->sr_code[0] > 12)
1441 put_bits(&s->pb, 16, s->sr_code[1]);
1442
1443 flush_put_bits(&s->pb);
1444 crc = av_crc(av_crc_get_table(AV_CRC_8_ATM), 0, s->pb.buf,
1445 put_bytes_output(&s->pb));
1446 put_bits(&s->pb, 8, crc);
1447}
1448
1449
1450static inline void set_sr_golomb_flac(PutBitContext *pb, int i, int k)

Callers 1

write_frameFunction · 0.70

Calls 6

write_utf8Function · 0.85
flush_put_bitsFunction · 0.85
av_crcFunction · 0.85
av_crc_get_tableFunction · 0.85
put_bytes_outputFunction · 0.85
put_bitsFunction · 0.70

Tested by

no test coverage detected