#include <stdint.h>
#include "libavutil/crc.h"
#include "libavutil/audioconvert.h"
#include "get_bits.h"
#include "parser.h"
#include "mlp_parser.h"
#include "mlp.h"
Go to the source code of this file.
Data Structures | |
struct | MLPParseContext |
Functions | |
static int | mlp_samplerate (int in) |
static int | truehd_channels (int chanmap) |
uint64_t | ff_truehd_layout (int chanmap) |
int | ff_mlp_read_major_sync (void *log, MLPHeaderInfo *mh, GetBitContext *gb) |
Read a major sync info header - contains high level information about the stream - sample rate, channel arrangement etc. | |
static av_cold int | mlp_init (AVCodecParserContext *s) |
static int | mlp_parse (AVCodecParserContext *s, AVCodecContext *avctx, const uint8_t **poutbuf, int *poutbuf_size, const uint8_t *buf, int buf_size) |
Variables | |
static const uint8_t | mlp_quants [16] |
static const uint8_t | mlp_channels [32] |
const uint64_t | ff_mlp_layout [32] |
static const uint8_t | thd_chancount [13] |
static const uint64_t | thd_layout [13] |
AVCodecParser | ff_mlp_parser |
Definition in file mlp_parser.c.
int ff_mlp_read_major_sync | ( | void * | log, | |
MLPHeaderInfo * | mh, | |||
GetBitContext * | gb | |||
) |
Read a major sync info header - contains high level information about the stream - sample rate, channel arrangement etc.
Most of this information is not actually necessary for decoding, only for playback. gb must be a freshly initialized GetBitContext with no bits read.
Definition at line 127 of file mlp_parser.c.
Referenced by mlp_parse(), and read_major_sync().
uint64_t ff_truehd_layout | ( | int | chanmap | ) |
static av_cold int mlp_init | ( | AVCodecParserContext * | s | ) | [static] |
Definition at line 206 of file mlp_parser.c.
static int mlp_parse | ( | AVCodecParserContext * | s, | |
AVCodecContext * | avctx, | |||
const uint8_t ** | poutbuf, | |||
int * | poutbuf_size, | |||
const uint8_t * | buf, | |||
int | buf_size | |||
) | [static] |
Definition at line 212 of file mlp_parser.c.
static int mlp_samplerate | ( | int | in | ) | [static] |
static int truehd_channels | ( | int | chanmap | ) | [static] |
const uint64_t ff_mlp_layout[32] |
Initial value:
{ AV_CH_LAYOUT_MONO, AV_CH_LAYOUT_STEREO, AV_CH_LAYOUT_2_1, AV_CH_LAYOUT_QUAD, AV_CH_LAYOUT_STEREO|AV_CH_LOW_FREQUENCY, AV_CH_LAYOUT_2_1|AV_CH_LOW_FREQUENCY, AV_CH_LAYOUT_QUAD|AV_CH_LOW_FREQUENCY, AV_CH_LAYOUT_SURROUND, AV_CH_LAYOUT_4POINT0, AV_CH_LAYOUT_5POINT0_BACK, AV_CH_LAYOUT_SURROUND|AV_CH_LOW_FREQUENCY, AV_CH_LAYOUT_4POINT0|AV_CH_LOW_FREQUENCY, AV_CH_LAYOUT_5POINT1_BACK, AV_CH_LAYOUT_4POINT0, AV_CH_LAYOUT_5POINT0_BACK, AV_CH_LAYOUT_SURROUND|AV_CH_LOW_FREQUENCY, AV_CH_LAYOUT_4POINT0|AV_CH_LOW_FREQUENCY, AV_CH_LAYOUT_5POINT1_BACK, AV_CH_LAYOUT_QUAD|AV_CH_LOW_FREQUENCY, AV_CH_LAYOUT_5POINT0_BACK, AV_CH_LAYOUT_5POINT1_BACK, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
Definition at line 46 of file mlp_parser.c.
Referenced by mlp_parse(), and read_major_sync().
Initial value:
{ .codec_ids = { CODEC_ID_MLP, CODEC_ID_TRUEHD }, .priv_data_size = sizeof(MLPParseContext), .parser_init = mlp_init, .parser_parse = mlp_parse, .parser_close = ff_parse_close, }
Definition at line 351 of file mlp_parser.c.
const uint8_t mlp_channels[32] [static] |
Initial value:
{ 1, 2, 3, 4, 3, 4, 5, 3, 4, 5, 4, 5, 6, 4, 5, 4, 5, 6, 5, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }
Definition at line 41 of file mlp_parser.c.
Referenced by mlp_parse().
const uint8_t mlp_quants[16] [static] |
Initial value:
{ 16, 20, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }
Definition at line 36 of file mlp_parser.c.
Referenced by ff_mlp_read_major_sync().
const uint8_t thd_chancount[13] [static] |
Initial value:
{ 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1 }
Definition at line 71 of file mlp_parser.c.
Referenced by truehd_channels().
const uint64_t thd_layout[13] [static] |
Initial value:
{ AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT, AV_CH_FRONT_CENTER, AV_CH_LOW_FREQUENCY, AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT, AV_CH_TOP_FRONT_LEFT|AV_CH_TOP_FRONT_RIGHT, AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER, AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT, AV_CH_BACK_CENTER, AV_CH_TOP_CENTER, AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT, AV_CH_WIDE_LEFT|AV_CH_WIDE_RIGHT, AV_CH_TOP_FRONT_CENTER, AV_CH_LOW_FREQUENCY }
Definition at line 76 of file mlp_parser.c.
Referenced by ff_truehd_layout().