Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
9cd4bc41
Commit
9cd4bc41
authored
Feb 15, 2014
by
Tim Walker
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ac3dec: set AV_FRAME_DATA_DOWNMIX_INFO side data.
parent
c98f3169
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
39 additions
and
2 deletions
+39
-2
ac3dec.c
libavcodec/ac3dec.c
+38
-0
eac3dec.c
libavcodec/eac3dec.c
+0
-1
version.h
libavcodec/version.h
+1
-1
No files found.
libavcodec/ac3dec.c
View file @
9cd4bc41
...
...
@@ -31,6 +31,7 @@
#include "libavutil/channel_layout.h"
#include "libavutil/crc.h"
#include "libavutil/downmix_info.h"
#include "libavutil/opt.h"
#include "internal.h"
#include "aac_ac3_parser.h"
...
...
@@ -77,6 +78,15 @@ static const float gain_levels[9] = {
LEVEL_MINUS_9DB
};
/** Adjustments in dB gain (LFE, +10 to -21 dB) */
static
const
float
gain_levels_lfe
[
32
]
=
{
3
.
162275
,
2
.
818382
,
2
.
511886
,
2
.
238719
,
1
.
995261
,
1
.
778278
,
1
.
584893
,
1
.
412536
,
1
.
258924
,
1
.
122018
,
1
.
000000
,
0
.
891251
,
0
.
794328
,
0
.
707946
,
0
.
630957
,
0
.
562341
,
0
.
501187
,
0
.
446683
,
0
.
398107
,
0
.
354813
,
0
.
316227
,
0
.
281838
,
0
.
251188
,
0
.
223872
,
0
.
199526
,
0
.
177828
,
0
.
158489
,
0
.
141253
,
0
.
125892
,
0
.
112201
,
0
.
100000
,
0
.
089125
};
/**
* Table for default stereo downmixing coefficients
* reference: Section 7.8.2 Downmixing Into Two Channels
...
...
@@ -1308,6 +1318,7 @@ static int ac3_decode_frame(AVCodecContext * avctx, void *data,
const
uint8_t
*
channel_map
;
const
float
*
output
[
AC3_MAX_CHANNELS
];
enum
AVMatrixEncoding
matrix_encoding
;
AVDownmixInfo
*
downmix_info
;
/* copy input buffer to decoder context to avoid reading past the end
of the buffer, which can be caused by a damaged input stream. */
...
...
@@ -1478,6 +1489,33 @@ static int ac3_decode_frame(AVCodecContext * avctx, void *data,
if
((
ret
=
ff_side_data_update_matrix_encoding
(
frame
,
matrix_encoding
))
<
0
)
return
ret
;
/* AVDownmixInfo */
if
((
downmix_info
=
av_downmix_info_update_side_data
(
frame
)))
{
switch
(
s
->
preferred_downmix
)
{
case
AC3_DMIXMOD_LTRT
:
downmix_info
->
preferred_downmix_type
=
AV_DOWNMIX_TYPE_LTRT
;
break
;
case
AC3_DMIXMOD_LORO
:
downmix_info
->
preferred_downmix_type
=
AV_DOWNMIX_TYPE_LORO
;
break
;
case
AC3_DMIXMOD_DPLII
:
downmix_info
->
preferred_downmix_type
=
AV_DOWNMIX_TYPE_DPLII
;
break
;
default:
downmix_info
->
preferred_downmix_type
=
AV_DOWNMIX_TYPE_UNKNOWN
;
break
;
}
downmix_info
->
center_mix_level
=
gain_levels
[
s
->
center_mix_level
];
downmix_info
->
center_mix_level_ltrt
=
gain_levels
[
s
->
center_mix_level_ltrt
];
downmix_info
->
surround_mix_level
=
gain_levels
[
s
->
surround_mix_level
];
downmix_info
->
surround_mix_level_ltrt
=
gain_levels
[
s
->
surround_mix_level_ltrt
];
if
(
s
->
lfe_mix_level_exists
)
downmix_info
->
lfe_mix_level
=
gain_levels_lfe
[
s
->
lfe_mix_level
];
else
downmix_info
->
lfe_mix_level
=
0
.
0
;
// -inf dB
}
else
return
AVERROR
(
ENOMEM
);
*
got_frame_ptr
=
1
;
return
FFMIN
(
buf_size
,
s
->
frame_size
);
...
...
libavcodec/eac3dec.c
View file @
9cd4bc41
...
...
@@ -360,7 +360,6 @@ int ff_eac3_parse_header(AC3DecodeContext *s)
/* lfe mix level */
if
(
s
->
lfe_on
&&
(
s
->
lfe_mix_level_exists
=
get_bits1
(
gbc
)))
{
// TODO: use LFE mix level
s
->
lfe_mix_level
=
get_bits
(
gbc
,
5
);
}
...
...
libavcodec/version.h
View file @
9cd4bc41
...
...
@@ -30,7 +30,7 @@
#define LIBAVCODEC_VERSION_MAJOR 55
#define LIBAVCODEC_VERSION_MINOR 34
#define LIBAVCODEC_VERSION_MICRO
0
#define LIBAVCODEC_VERSION_MICRO
1
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
LIBAVCODEC_VERSION_MINOR, \
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment