Browse Source

alsdec: change channel sorting so it match reference implementation

Read channel source instead of channel target for channel sorting.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
tags/n1.1
Paul B Mahol 12 years ago
parent
commit
d4211c4722
1 changed files with 5 additions and 2 deletions
  1. +5
    -2
      libavcodec/alsdec.c

+ 5
- 2
libavcodec/alsdec.c View File

@@ -356,12 +356,15 @@ static av_cold int read_specific_config(ALSDecContext *ctx)
return AVERROR(ENOMEM); return AVERROR(ENOMEM);


for (i = 0; i < avctx->channels; i++) { for (i = 0; i < avctx->channels; i++) {
sconf->chan_pos[i] = get_bits(&gb, chan_pos_bits);
if (sconf->chan_pos[i] >= avctx->channels) {
int idx;

idx = get_bits(&gb, chan_pos_bits);
if (idx >= avctx->channels) {
av_log(avctx, AV_LOG_WARNING, "Invalid channel reordering.\n"); av_log(avctx, AV_LOG_WARNING, "Invalid channel reordering.\n");
sconf->chan_sort = 0; sconf->chan_sort = 0;
break; break;
} }
sconf->chan_pos[idx] = i;
} }


align_get_bits(&gb); align_get_bits(&gb);


Loading…
Cancel
Save