⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 format.h

📁 在x86平台上运行不可信任代码的sandbox。
💻 H
📖 第 1 页 / 共 3 页
字号:
	const FLAC__int32 *residual;	/**< The residual signal, length == (blocksize minus order) samples. */} FLAC__Subframe_Fixed;/** LPC subframe.  (c.f. <A HREF="../format.html#subframe_lpc">format specification</A>) */typedef struct {	FLAC__EntropyCodingMethod entropy_coding_method;	/**< The residual coding method. */	unsigned order;	/**< The FIR order. */	unsigned qlp_coeff_precision;	/**< Quantized FIR filter coefficient precision in bits. */	int quantization_level;	/**< The qlp coeff shift needed. */	FLAC__int32 qlp_coeff[FLAC__MAX_LPC_ORDER];	/**< FIR filter coefficients. */	FLAC__int32 warmup[FLAC__MAX_LPC_ORDER];	/**< Warmup samples to prime the predictor, length == order. */	const FLAC__int32 *residual;	/**< The residual signal, length == (blocksize minus order) samples. */} FLAC__Subframe_LPC;extern FLAC_API const unsigned FLAC__SUBFRAME_LPC_QLP_COEFF_PRECISION_LEN; /**< == 4 (bits) */extern FLAC_API const unsigned FLAC__SUBFRAME_LPC_QLP_SHIFT_LEN; /**< == 5 (bits) *//** FLAC subframe structure.  (c.f. <A HREF="../format.html#subframe">format specification</A>) */typedef struct {	FLAC__SubframeType type;	union {		FLAC__Subframe_Constant constant;		FLAC__Subframe_Fixed fixed;		FLAC__Subframe_LPC lpc;		FLAC__Subframe_Verbatim verbatim;	} data;	unsigned wasted_bits;} FLAC__Subframe;extern FLAC_API const unsigned FLAC__SUBFRAME_ZERO_PAD_LEN; /**< == 1 (bit) */extern FLAC_API const unsigned FLAC__SUBFRAME_TYPE_LEN; /**< == 6 (bits) */extern FLAC_API const unsigned FLAC__SUBFRAME_WASTED_BITS_FLAG_LEN; /**< == 1 (bit) */extern FLAC_API const unsigned FLAC__SUBFRAME_TYPE_CONSTANT_BYTE_ALIGNED_MASK; /* = 0x00 */extern FLAC_API const unsigned FLAC__SUBFRAME_TYPE_VERBATIM_BYTE_ALIGNED_MASK; /* = 0x02 */extern FLAC_API const unsigned FLAC__SUBFRAME_TYPE_FIXED_BYTE_ALIGNED_MASK; /* = 0x10 */extern FLAC_API const unsigned FLAC__SUBFRAME_TYPE_LPC_BYTE_ALIGNED_MASK; /* = 0x40 *//*****************************************************************************//***************************************************************************** * * Frame structures * *****************************************************************************//** An enumeration of the available channel assignments. */typedef enum {	FLAC__CHANNEL_ASSIGNMENT_INDEPENDENT = 0, /**< independent channels */	FLAC__CHANNEL_ASSIGNMENT_LEFT_SIDE = 1, /**< left+side stereo */	FLAC__CHANNEL_ASSIGNMENT_RIGHT_SIDE = 2, /**< right+side stereo */	FLAC__CHANNEL_ASSIGNMENT_MID_SIDE = 3 /**< mid+side stereo */} FLAC__ChannelAssignment;/** Maps a FLAC__ChannelAssignment to a C string. * *  Using a FLAC__ChannelAssignment as the index to this array will *  give the string equivalent.  The contents should not be modified. */extern FLAC_API const char * const FLAC__ChannelAssignmentString[];/** An enumeration of the possible frame numbering methods. */typedef enum {	FLAC__FRAME_NUMBER_TYPE_FRAME_NUMBER, /**< number contains the frame number */	FLAC__FRAME_NUMBER_TYPE_SAMPLE_NUMBER /**< number contains the sample number of first sample in frame */} FLAC__FrameNumberType;/** Maps a FLAC__FrameNumberType to a C string. * *  Using a FLAC__FrameNumberType as the index to this array will *  give the string equivalent.  The contents should not be modified. */extern FLAC_API const char * const FLAC__FrameNumberTypeString[];/** FLAC frame header structure.  (c.f. <A HREF="../format.html#frame_header">format specification</A>) */typedef struct {	unsigned blocksize;	/**< The number of samples per subframe. */	unsigned sample_rate;	/**< The sample rate in Hz. */	unsigned channels;	/**< The number of channels (== number of subframes). */	FLAC__ChannelAssignment channel_assignment;	/**< The channel assignment for the frame. */	unsigned bits_per_sample;	/**< The sample resolution. */	FLAC__FrameNumberType number_type;	/**< The numbering scheme used for the frame. */	union {		FLAC__uint32 frame_number;		FLAC__uint64 sample_number;	} number;	/**< The frame number or sample number of first sample in frame;	 * use the \a number_type value to determine which to use. */	FLAC__uint8 crc;	/**< CRC-8 (polynomial = x^8 + x^2 + x^1 + x^0, initialized with 0)	 * of the raw frame header bytes, meaning everything before the CRC byte	 * including the sync code.	 */} FLAC__FrameHeader;extern FLAC_API const unsigned FLAC__FRAME_HEADER_SYNC; /**< == 0x3ffe; the frame header sync code */extern FLAC_API const unsigned FLAC__FRAME_HEADER_SYNC_LEN; /**< == 14 (bits) */extern FLAC_API const unsigned FLAC__FRAME_HEADER_RESERVED_LEN; /**< == 2 (bits) */extern FLAC_API const unsigned FLAC__FRAME_HEADER_BLOCK_SIZE_LEN; /**< == 4 (bits) */extern FLAC_API const unsigned FLAC__FRAME_HEADER_SAMPLE_RATE_LEN; /**< == 4 (bits) */extern FLAC_API const unsigned FLAC__FRAME_HEADER_CHANNEL_ASSIGNMENT_LEN; /**< == 4 (bits) */extern FLAC_API const unsigned FLAC__FRAME_HEADER_BITS_PER_SAMPLE_LEN; /**< == 3 (bits) */extern FLAC_API const unsigned FLAC__FRAME_HEADER_ZERO_PAD_LEN; /**< == 1 (bit) */extern FLAC_API const unsigned FLAC__FRAME_HEADER_CRC_LEN; /**< == 8 (bits) *//** FLAC frame footer structure.  (c.f. <A HREF="../format.html#frame_footer">format specification</A>) */typedef struct {	FLAC__uint16 crc;	/**< CRC-16 (polynomial = x^16 + x^15 + x^2 + x^0, initialized with	 * 0) of the bytes before the crc, back to and including the frame header	 * sync code.	 */} FLAC__FrameFooter;extern FLAC_API const unsigned FLAC__FRAME_FOOTER_CRC_LEN; /**< == 16 (bits) *//** FLAC frame structure.  (c.f. <A HREF="../format.html#frame">format specification</A>) */typedef struct {	FLAC__FrameHeader header;	FLAC__Subframe subframes[FLAC__MAX_CHANNELS];	FLAC__FrameFooter footer;} FLAC__Frame;/*****************************************************************************//***************************************************************************** * * Meta-data structures * *****************************************************************************//** An enumeration of the available metadata block types. */typedef enum {	FLAC__METADATA_TYPE_STREAMINFO = 0,	/**< <A HREF="../format.html#metadata_block_streaminfo">STREAMINFO</A> block */	FLAC__METADATA_TYPE_PADDING = 1,	/**< <A HREF="../format.html#metadata_block_padding">PADDING</A> block */	FLAC__METADATA_TYPE_APPLICATION = 2,	/**< <A HREF="../format.html#metadata_block_application">APPLICATION</A> block */	FLAC__METADATA_TYPE_SEEKTABLE = 3,	/**< <A HREF="../format.html#metadata_block_seektable">SEEKTABLE</A> block */	FLAC__METADATA_TYPE_VORBIS_COMMENT = 4,	/**< <A HREF="../format.html#metadata_block_vorbis_comment">VORBISCOMMENT</A> block */	FLAC__METADATA_TYPE_CUESHEET = 5,	/**< <A HREF="../format.html#metadata_block_cuesheet">CUESHEET</A> block */	FLAC__METADATA_TYPE_UNDEFINED = 6	/**< marker to denote beginning of undefined type range; this number will increase as new metadata types are added */} FLAC__MetadataType;/** Maps a FLAC__MetadataType to a C string. * *  Using a FLAC__MetadataType as the index to this array will *  give the string equivalent.  The contents should not be modified. */extern FLAC_API const char * const FLAC__MetadataTypeString[];/** FLAC STREAMINFO structure.  (c.f. <A HREF="../format.html#metadata_block_streaminfo">format specification</A>) */typedef struct {	unsigned min_blocksize, max_blocksize;	unsigned min_framesize, max_framesize;	unsigned sample_rate;	unsigned channels;	unsigned bits_per_sample;	FLAC__uint64 total_samples;	FLAC__byte md5sum[16];} FLAC__StreamMetadata_StreamInfo;extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_MIN_BLOCK_SIZE_LEN; /**< == 16 (bits) */extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_MAX_BLOCK_SIZE_LEN; /**< == 16 (bits) */extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_MIN_FRAME_SIZE_LEN; /**< == 24 (bits) */extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_MAX_FRAME_SIZE_LEN; /**< == 24 (bits) */extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_SAMPLE_RATE_LEN; /**< == 20 (bits) */extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_CHANNELS_LEN; /**< == 3 (bits) */extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_BITS_PER_SAMPLE_LEN; /**< == 5 (bits) */extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_TOTAL_SAMPLES_LEN; /**< == 36 (bits) */extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_MD5SUM_LEN; /**< == 128 (bits) *//** The total stream length of the STREAMINFO block in bytes. */#define FLAC__STREAM_METADATA_STREAMINFO_LENGTH (34u)/** FLAC PADDING structure.  (c.f. <A HREF="../format.html#metadata_block_padding">format specification</A>) */typedef struct {	int dummy;	/**< Conceptually this is an empty struct since we don't store the	 * padding bytes.  Empty structs are not allowed by some C compilers,	 * hence the dummy.	 */} FLAC__StreamMetadata_Padding;/** FLAC APPLICATION structure.  (c.f. <A HREF="../format.html#metadata_block_application">format specification</A>) */typedef struct {	FLAC__byte id[4];	FLAC__byte *data;} FLAC__StreamMetadata_Application;extern FLAC_API const unsigned FLAC__STREAM_METADATA_APPLICATION_ID_LEN; /**< == 32 (bits) *//** SeekPoint structure used in SEEKTABLE blocks.  (c.f. <A HREF="../format.html#seekpoint">format specification</A>) */typedef struct {	FLAC__uint64 sample_number;	/**<  The sample number of the target frame. */	FLAC__uint64 stream_offset;	/**< The offset, in bytes, of the target frame with respect to	 * beginning of the first frame. */	unsigned frame_samples;	/**< The number of samples in the target frame. */} FLAC__StreamMetadata_SeekPoint;extern FLAC_API const unsigned FLAC__STREAM_METADATA_SEEKPOINT_SAMPLE_NUMBER_LEN; /**< == 64 (bits) */extern FLAC_API const unsigned FLAC__STREAM_METADATA_SEEKPOINT_STREAM_OFFSET_LEN; /**< == 64 (bits) */extern FLAC_API const unsigned FLAC__STREAM_METADATA_SEEKPOINT_FRAME_SAMPLES_LEN; /**< == 16 (bits) *//** The total stream length of a seek point in bytes. */#define FLAC__STREAM_METADATA_SEEKPOINT_LENGTH (18u)/** The value used in the \a sample_number field of *  FLAC__StreamMetadataSeekPoint used to indicate a placeholder *  point (== 0xffffffffffffffff). */extern FLAC_API const FLAC__uint64 FLAC__STREAM_METADATA_SEEKPOINT_PLACEHOLDER;/** FLAC SEEKTABLE structure.  (c.f. <A HREF="../format.html#metadata_block_seektable">format specification</A>) * * \note From the format specification: * - The seek points must be sorted by ascending sample number. * - Each seek point's sample number must be the first sample of the *   target frame. * - Each seek point's sample number must be unique within the table. * - Existence of a SEEKTABLE block implies a correct setting of *   total_samples in the stream_info block. * - Behavior is undefined when more than one SEEKTABLE block is

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -