FFmpeg
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
Examples
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
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 sreams ("2-channel presentation")
46
int
channel_modifier_thd_stream1
;
///< Channel modifier for substream 1 of TrueHD sreams ("6-channel presentation")
47
int
channel_modifier_thd_stream2
;
///< Channel modifier for substream 2 of TrueHD sreams ("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 */
Generated on Fri Dec 5 2014 04:41:58 for FFmpeg by
1.8.2