| 1411 | |
| 1412 | |
| 1413 | static 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 | |
| 1450 | static inline void set_sr_golomb_flac(PutBitContext *pb, int i, int k) |
no test coverage detected