[FFmpeg-cvslog] dcadec: Use correct channel count in stereo downmix check
Tim Walker
git at videolan.org
Sun May 11 16:40:30 CEST 2014
ffmpeg | branch: release/2.2 | Tim Walker <tdskywalker at gmail.com> | Sat Apr 12 22:11:53 2014 +0200| [194d12345d86c15b20b7e44a3679c9df3075d7f6] | committer: Tim Walker
dcadec: Use correct channel count in stereo downmix check
s->prim_channels is greater than num_core_channels
when an XCh extension is present in the bitstream.
Signed-off-by: Luca Barbato <lu_zero at gentoo.org>
(cherry picked from commit 801c39e1e3058fc4ba822bfb5d8612d777111e32)
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=194d12345d86c15b20b7e44a3679c9df3075d7f6
---
libavcodec/dcadec.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/libavcodec/dcadec.c b/libavcodec/dcadec.c
index cfce654..ce8660d 100644
--- a/libavcodec/dcadec.c
+++ b/libavcodec/dcadec.c
@@ -1896,7 +1896,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
s->channel_order_tab[channels - 1 - !!s->lfe] < 0)
return AVERROR_INVALIDDATA;
- if (s->prim_channels + !!s->lfe > 2 &&
+ if (num_core_channels + !!s->lfe > 2 &&
avctx->request_channel_layout == AV_CH_LAYOUT_STEREO) {
channels = 2;
s->output = s->prim_channels == 2 ? s->amode : DCA_STEREO;
@@ -1910,7 +1910,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
if (s->core_downmix && (s->core_downmix_amode == DCA_STEREO ||
s->core_downmix_amode == DCA_STEREO_TOTAL)) {
int sign, code;
- for (i = 0; i < s->prim_channels + !!s->lfe; i++) {
+ for (i = 0; i < num_core_channels + !!s->lfe; i++) {
sign = s->core_downmix_codes[i][0] & 0x100 ? 1 : -1;
code = s->core_downmix_codes[i][0] & 0x0FF;
s->downmix_coef[i][0] = (!code ? 0.0f :
@@ -1928,19 +1928,19 @@ FF_ENABLE_DEPRECATION_WARNINGS
"Invalid channel mode %d\n", am);
return AVERROR_INVALIDDATA;
}
- if (s->prim_channels + !!s->lfe >
+ if (num_core_channels + !!s->lfe >
FF_ARRAY_ELEMS(dca_default_coeffs[0])) {
avpriv_request_sample(s->avctx, "Downmixing %d channels",
s->prim_channels + !!s->lfe);
return AVERROR_PATCHWELCOME;
}
- for (i = 0; i < s->prim_channels + !!s->lfe; i++) {
+ for (i = 0; i < num_core_channels + !!s->lfe; i++) {
s->downmix_coef[i][0] = dca_default_coeffs[am][i][0];
s->downmix_coef[i][1] = dca_default_coeffs[am][i][1];
}
}
av_dlog(s->avctx, "Stereo downmix coeffs:\n");
- for (i = 0; i < s->prim_channels + !!s->lfe; i++) {
+ for (i = 0; i < num_core_channels + !!s->lfe; i++) {
av_dlog(s->avctx, "L, input channel %d = %f\n", i,
s->downmix_coef[i][0]);
av_dlog(s->avctx, "R, input channel %d = %f\n", i,
More information about the ffmpeg-cvslog
mailing list