| 
    FFmpeg
    
   | 
 
#include "libavutil/avassert.h"#include "libavutil/crc.h"#include "libavutil/intmath.h"#include "libavutil/md5.h"#include "libavutil/opt.h"#include "avcodec.h"#include "bswapdsp.h"#include "put_bits.h"#include "golomb.h"#include "internal.h"#include "lpc.h"#include "flac.h"#include "flacdata.h"#include "flacdsp.h"Go to the source code of this file.
Data Structures | |
| struct | CompressionOptions | 
| struct | RiceContext | 
| struct | FlacSubframe | 
| struct | FlacFrame | 
| struct | FlacEncodeContext | 
Macros | |
| #define | FLAC_SUBFRAME_CONSTANT 0 | 
| #define | FLAC_SUBFRAME_VERBATIM 1 | 
| #define | FLAC_SUBFRAME_FIXED 8 | 
| #define | FLAC_SUBFRAME_LPC 32 | 
| #define | MAX_FIXED_ORDER 4 | 
| #define | MAX_PARTITION_ORDER 8 | 
| #define | MAX_PARTITIONS (1 << MAX_PARTITION_ORDER) | 
| #define | MAX_LPC_PRECISION 15 | 
| #define | MIN_LPC_SHIFT 0 | 
| #define | MAX_LPC_SHIFT 15 | 
| #define | COPY_SAMPLES(bits) | 
| #define | rice_encode_count(sum, n, k) (((n)*((k)+1))+((sum-(n>>1))>>(k))) | 
| #define | FLAGS AV_OPT_FLAG_ENCODING_PARAM | AV_OPT_FLAG_AUDIO_PARAM | 
Enumerations | |
| enum | CodingMode { CODING_MODE_RICE = 4, CODING_MODE_RICE2 = 5 } | 
Functions | |
| static void | write_streaminfo (FlacEncodeContext *s, uint8_t *header) | 
| Write streaminfo metadata block to byte array.  More... | |
| static int | select_blocksize (int samplerate, int block_time_ms) | 
| Set blocksize based on samplerate.  More... | |
| static av_cold void | dprint_compression_options (FlacEncodeContext *s) | 
| static av_cold int | flac_encode_init (AVCodecContext *avctx) | 
| static void | init_frame (FlacEncodeContext *s, int nb_samples) | 
| static void | copy_samples (FlacEncodeContext *s, const void *samples) | 
| Copy channel-interleaved input samples into separate subframes.  More... | |
| static uint64_t | rice_count_exact (const int32_t *res, int n, int k) | 
| static uint64_t | subframe_count_exact (FlacEncodeContext *s, FlacSubframe *sub, int pred_order) | 
| static int | find_optimal_param (uint64_t sum, int n, int max_param) | 
| Solve for d/dk(rice_encode_count) = n-((sum-(n>>1))>>(k+1)) = 0.  More... | |
| static int | find_optimal_param_exact (uint64_t sums[32][MAX_PARTITIONS], int i, int max_param) | 
| static uint64_t | calc_optimal_rice_params (RiceContext *rc, int porder, uint64_t sums[32][MAX_PARTITIONS], int n, int pred_order, int max_param, int exact) | 
| static void | calc_sum_top (int pmax, int kmax, const uint32_t *data, int n, int pred_order, uint64_t sums[32][MAX_PARTITIONS]) | 
| static void | calc_sum_next (int level, uint64_t sums[32][MAX_PARTITIONS], int kmax) | 
| static uint64_t | calc_rice_params (RiceContext *rc, uint32_t udata[FLAC_MAX_BLOCKSIZE], uint64_t sums[32][MAX_PARTITIONS], int pmin, int pmax, const int32_t *data, int n, int pred_order, int exact) | 
| static int | get_max_p_order (int max_porder, int n, int order) | 
| static uint64_t | find_subframe_rice_params (FlacEncodeContext *s, FlacSubframe *sub, int pred_order) | 
| static void | encode_residual_fixed (int32_t *res, const int32_t *smp, int n, int order) | 
| static int | encode_residual_ch (FlacEncodeContext *s, int ch) | 
| static int | count_frame_header (FlacEncodeContext *s) | 
| static int | encode_frame (FlacEncodeContext *s) | 
| static void | remove_wasted_bits (FlacEncodeContext *s) | 
| static int | estimate_stereo_mode (const int32_t *left_ch, const int32_t *right_ch, int n, int max_rice_param) | 
| static void | channel_decorrelation (FlacEncodeContext *s) | 
| Perform stereo channel decorrelation.  More... | |
| static void | write_utf8 (PutBitContext *pb, uint32_t val) | 
| static void | write_frame_header (FlacEncodeContext *s) | 
| static void | write_subframes (FlacEncodeContext *s) | 
| static void | write_frame_footer (FlacEncodeContext *s) | 
| static int | write_frame (FlacEncodeContext *s, AVPacket *avpkt) | 
| static int | update_md5_sum (FlacEncodeContext *s, const void *samples) | 
| static int | flac_encode_frame (AVCodecContext *avctx, AVPacket *avpkt, const AVFrame *frame, int *got_packet_ptr) | 
| static av_cold int | flac_encode_close (AVCodecContext *avctx) | 
Variables | |
| static const AVOption | options [] | 
| static const AVClass | flac_encoder_class | 
| AVCodec | ff_flac_encoder | 
| #define MAX_PARTITIONS (1 << MAX_PARTITION_ORDER) | 
| #define COPY_SAMPLES | ( | bits | ) | 
| #define rice_encode_count | ( | sum, | |
| n, | |||
| k | |||
| ) | (((n)*((k)+1))+((sum-(n>>1))>>(k))) | 
| #define FLAGS AV_OPT_FLAG_ENCODING_PARAM | AV_OPT_FLAG_AUDIO_PARAM | 
| enum CodingMode | 
      
  | 
  static | 
Write streaminfo metadata block to byte array.
Definition at line 135 of file flacenc.c.
Referenced by flac_encode_frame(), and flac_encode_init().
Set blocksize based on samplerate.
Choose the closest predefined blocksize >= BLOCK_TIME_MS milliseconds.
Definition at line 162 of file flacenc.c.
Referenced by flac_encode_init().
      
  | 
  static | 
Definition at line 181 of file flacenc.c.
Referenced by flac_encode_init().
      
  | 
  static | 
      
  | 
  static | 
Definition at line 470 of file flacenc.c.
Referenced by decode_frame(), and flac_encode_frame().
      
  | 
  static | 
Copy channel-interleaved input samples into separate subframes.
Definition at line 515 of file flacenc.c.
Referenced by flac_encode_frame().
Definition at line 537 of file flacenc.c.
Referenced by subframe_count_exact().
      
  | 
  static | 
Definition at line 551 of file flacenc.c.
Referenced by encode_residual_ch().
Solve for d/dk(rice_encode_count) = n-((sum-(n>>1))>>(k+1)) = 0.
Definition at line 606 of file flacenc.c.
Referenced by calc_optimal_rice_params(), and estimate_stereo_mode().
      
  | 
  static | 
Definition at line 618 of file flacenc.c.
Referenced by calc_optimal_rice_params().
      
  | 
  static | 
Definition at line 635 of file flacenc.c.
Referenced by calc_rice_params().
      
  | 
  static | 
Definition at line 665 of file flacenc.c.
Referenced by calc_rice_params().
Definition at line 695 of file flacenc.c.
Referenced by calc_rice_params().
      
  | 
  static | 
Definition at line 705 of file flacenc.c.
Referenced by find_subframe_rice_params().
Definition at line 745 of file flacenc.c.
Referenced by find_subframe_rice_params().
      
  | 
  static | 
Definition at line 754 of file flacenc.c.
Referenced by encode_residual_ch().
Definition at line 771 of file flacenc.c.
Referenced by encode_residual_ch().
      
  | 
  static | 
Definition at line 822 of file flacenc.c.
Referenced by encode_frame().
      
  | 
  static | 
Definition at line 1021 of file flacenc.c.
Referenced by encode_frame().
      
  | 
  static | 
Definition at line 1057 of file flacenc.c.
Referenced by flac_encode_frame().
      
  | 
  static | 
Definition at line 1077 of file flacenc.c.
Referenced by flac_encode_frame().
      
  | 
  static | 
Definition at line 1109 of file flacenc.c.
Referenced by channel_decorrelation().
      
  | 
  static | 
Perform stereo channel decorrelation.
Definition at line 1153 of file flacenc.c.
Referenced by flac_encode_frame().
      
  | 
  static | 
Definition at line 1198 of file flacenc.c.
Referenced by write_frame_header().
      
  | 
  static | 
Definition at line 1205 of file flacenc.c.
Referenced by write_frame().
      
  | 
  static | 
Definition at line 1242 of file flacenc.c.
Referenced by write_frame().
      
  | 
  static | 
Definition at line 1302 of file flacenc.c.
Referenced by write_frame().
      
  | 
  static | 
Definition at line 1313 of file flacenc.c.
Referenced by flac_encode_frame().
      
  | 
  static | 
Definition at line 1323 of file flacenc.c.
Referenced by flac_encode_frame().
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
| AVCodec ff_flac_encoder | 
 1.8.17