FFmpeg
4.0
libavcodec
mlp_parser.h
Go to the documentation of this file.
1
/*
2
* MLP parser prototypes
3
* Copyright (c) 2007 Ian Caulfield
4
*
5
* This file is part of FFmpeg.
6
*
7
* FFmpeg is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU Lesser General Public
9
* License as published by the Free Software Foundation; either
10
* version 2.1 of the License, or (at your option) any later version.
11
*
12
* FFmpeg is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* Lesser General Public License for more details.
16
*
17
* You should have received a copy of the GNU Lesser General Public
18
* License along with FFmpeg; if not, write to the Free Software
19
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
*/
21
22
/**
23
* @file
24
* MLP parser prototypes
25
*/
26
27
#ifndef AVCODEC_MLP_PARSER_H
28
#define AVCODEC_MLP_PARSER_H
29
30
#include "
get_bits.h
"
31
32
typedef
struct
MLPHeaderInfo
33
{
34
int
stream_type
;
///< 0xBB for MLP, 0xBA for TrueHD
35
int
header_size
;
///< Size of the major sync header, in bytes
36
37
int
group1_bits
;
///< The bit depth of the first substream
38
int
group2_bits
;
///< Bit depth of the second substream (MLP only)
39
40
int
group1_samplerate
;
///< Sample rate of first substream
41
int
group2_samplerate
;
///< Sample rate of second substream (MLP only)
42
43
int
channel_arrangement
;
44
45
int
channel_modifier_thd_stream0
;
///< Channel modifier for substream 0 of TrueHD streams ("2-channel presentation")
46
int
channel_modifier_thd_stream1
;
///< Channel modifier for substream 1 of TrueHD streams ("6-channel presentation")
47
int
channel_modifier_thd_stream2
;
///< Channel modifier for substream 2 of TrueHD streams ("8-channel presentation")
48
49
int
channels_mlp
;
///< Channel count for MLP streams
50
int
channels_thd_stream1
;
///< Channel count for substream 1 of TrueHD streams ("6-channel presentation")
51
int
channels_thd_stream2
;
///< Channel count for substream 2 of TrueHD streams ("8-channel presentation")
52
uint64_t
channel_layout_mlp
;
///< Channel layout for MLP streams
53
uint64_t
channel_layout_thd_stream1
;
///< Channel layout for substream 1 of TrueHD streams ("6-channel presentation")
54
uint64_t
channel_layout_thd_stream2
;
///< Channel layout for substream 2 of TrueHD streams ("8-channel presentation")
55
56
int
access_unit_size
;
///< Number of samples per coded frame
57
int
access_unit_size_pow2
;
///< Next power of two above number of samples per frame
58
59
int
is_vbr
;
///< Stream is VBR instead of CBR
60
int
peak_bitrate
;
///< Peak bitrate for VBR, actual bitrate (==peak) for CBR
61
62
int
num_substreams
;
///< Number of substreams within stream
63
}
MLPHeaderInfo
;
64
65
66
int
ff_mlp_read_major_sync
(
void
*log,
MLPHeaderInfo
*
mh
,
GetBitContext
*gb);
67
uint64_t
ff_truehd_layout
(
int
chanmap);
68
69
extern
const
uint64_t
ff_mlp_layout
[32];
70
71
#endif
/* AVCODEC_MLP_PARSER_H */
MLPHeaderInfo::channels_thd_stream1
int channels_thd_stream1
Channel count for substream 1 of TrueHD streams ("6-channel presentation")
Definition:
mlp_parser.h:50
ff_mlp_layout
const uint64_t ff_mlp_layout[32]
Definition:
mlp_parser.c:47
MLPHeaderInfo::num_substreams
int num_substreams
Number of substreams within stream.
Definition:
mlp_parser.h:62
MLPHeaderInfo::channel_layout_mlp
uint64_t channel_layout_mlp
Channel layout for MLP streams.
Definition:
mlp_parser.h:52
MLPHeaderInfo::access_unit_size
int access_unit_size
Number of samples per coded frame.
Definition:
mlp_parser.h:56
MLPHeaderInfo::peak_bitrate
int peak_bitrate
Peak bitrate for VBR, actual bitrate (==peak) for CBR.
Definition:
mlp_parser.h:60
MLPHeaderInfo::channel_modifier_thd_stream0
int channel_modifier_thd_stream0
Channel modifier for substream 0 of TrueHD streams ("2-channel presentation")
Definition:
mlp_parser.h:45
MLPHeaderInfo
Definition:
mlp_parser.h:32
get_bits.h
bitstream reader API header.
MLPHeaderInfo::channel_arrangement
int channel_arrangement
Definition:
mlp_parser.h:43
ff_mlp_read_major_sync
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...
Definition:
mlp_parser.c:145
MLPHeaderInfo::channel_modifier_thd_stream2
int channel_modifier_thd_stream2
Channel modifier for substream 2 of TrueHD streams ("8-channel presentation")
Definition:
mlp_parser.h:47
MLPHeaderInfo::channels_mlp
int channels_mlp
Channel count for MLP streams.
Definition:
mlp_parser.h:49
MLPHeaderInfo::is_vbr
int is_vbr
Stream is VBR instead of CBR.
Definition:
mlp_parser.h:59
MLPHeaderInfo::stream_type
int stream_type
0xBB for MLP, 0xBA for TrueHD
Definition:
mlp_parser.h:34
MLPHeaderInfo::access_unit_size_pow2
int access_unit_size_pow2
Next power of two above number of samples per frame.
Definition:
mlp_parser.h:57
MLPHeaderInfo::channel_modifier_thd_stream1
int channel_modifier_thd_stream1
Channel modifier for substream 1 of TrueHD streams ("6-channel presentation")
Definition:
mlp_parser.h:46
MLPHeaderInfo::group2_bits
int group2_bits
Bit depth of the second substream (MLP only)
Definition:
mlp_parser.h:38
MLPHeaderInfo::channels_thd_stream2
int channels_thd_stream2
Channel count for substream 2 of TrueHD streams ("8-channel presentation")
Definition:
mlp_parser.h:51
ff_truehd_layout
uint64_t ff_truehd_layout(int chanmap)
Definition:
mlp_parser.c:111
GetBitContext
Definition:
get_bits.h:56
MLPHeaderInfo::channel_layout_thd_stream1
uint64_t channel_layout_thd_stream1
Channel layout for substream 1 of TrueHD streams ("6-channel presentation")
Definition:
mlp_parser.h:53
MLPHeaderInfo::channel_layout_thd_stream2
uint64_t channel_layout_thd_stream2
Channel layout for substream 2 of TrueHD streams ("8-channel presentation")
Definition:
mlp_parser.h:54
MLPHeaderInfo::header_size
int header_size
Size of the major sync header, in bytes.
Definition:
mlp_parser.h:35
MLPHeaderInfo::group1_bits
int group1_bits
The bit depth of the first substream.
Definition:
mlp_parser.h:37
MLPHeaderInfo::group1_samplerate
int group1_samplerate
Sample rate of first substream.
Definition:
mlp_parser.h:40
MLPHeaderInfo::group2_samplerate
int group2_samplerate
Sample rate of second substream (MLP only)
Definition:
mlp_parser.h:41
mh
#define mh
Definition:
vf_colormatrix.c:107
Generated on Tue May 22 2018 07:06:37 for FFmpeg by
1.8.13