Re: [libav-devel] [PATCH 1/9] dcadec: implement request_channel_layout.

2013-11-28 Thread Tim W.
On 28 Nov 2013, at 22:07, Anton Khirnov  wrote:

> 
> On Sun, 24 Nov 2013 00:20:05 +0100, Tim Walker  wrote:
>> ---
>> libavcodec/dcadec.c | 24 +++-
>> 1 file changed, 19 insertions(+), 5 deletions(-)
>> 
> 
> Approved by Benjamin on IRC and pushed.

Cool. I think now would be a good time to re-submit "FATE: add a test for DTS 
downmixing." :-)

Tim
___
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel


Re: [libav-devel] [PATCH 1/9] dcadec: implement request_channel_layout.

2013-11-28 Thread Anton Khirnov

On Sun, 24 Nov 2013 00:20:05 +0100, Tim Walker  wrote:
> ---
>  libavcodec/dcadec.c | 24 +++-
>  1 file changed, 19 insertions(+), 5 deletions(-)
> 

Approved by Benjamin on IRC and pushed.

-- 
Anton Khirnov
___
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel


[libav-devel] [PATCH 1/9] dcadec: implement request_channel_layout.

2013-11-23 Thread Tim Walker
---
 libavcodec/dcadec.c | 24 +++-
 1 file changed, 19 insertions(+), 5 deletions(-)

diff --git a/libavcodec/dcadec.c b/libavcodec/dcadec.c
index 7af5e5c..944736f 100644
--- a/libavcodec/dcadec.c
+++ b/libavcodec/dcadec.c
@@ -1288,7 +1288,8 @@ static int dca_filter_channels(DCAContext *s, int 
block_index)
 }
 
 /* Down mixing */
-if (s->avctx->request_channels == 2 && s->prim_channels > 2) {
+if (s->prim_channels > 2 &&
+s->avctx->request_channel_layout == AV_CH_LAYOUT_STEREO) {
 dca_downmix(s->samples_chanptr, s->amode, s->downmix_coef, 
s->channel_order_tab);
 }
 
@@ -1803,8 +1804,14 @@ static int dca_decode_frame(AVCodecContext *avctx, void 
*data,
 if (s->amode < 16) {
 avctx->channel_layout = dca_core_channel_layout[s->amode];
 
+#if FF_API_REQUEST_CHANNELS
+FF_DISABLE_DEPRECATION_WARNINGS
 if (s->xch_present && (!avctx->request_channels ||
avctx->request_channels > num_core_channels + 
!!s->lfe)) {
+FF_ENABLE_DEPRECATION_WARNINGS
+#else
+if (s->xch_present) {
+#endif
 avctx->channel_layout |= AV_CH_BACK_CENTER;
 if (s->lfe) {
 avctx->channel_layout |= AV_CH_LOW_FREQUENCY;
@@ -1826,7 +1833,8 @@ static int dca_decode_frame(AVCodecContext *avctx, void 
*data,
 s->channel_order_tab[channels - 1 - !!s->lfe] < 0)
 return AVERROR_INVALIDDATA;
 
-if (avctx->request_channels == 2 && s->prim_channels > 2) {
+if (s->prim_channels > 2 &&
+avctx->request_channel_layout == AV_CH_LAYOUT_STEREO) {
 channels = 2;
 s->output = DCA_STEREO;
 avctx->channel_layout = AV_CH_LAYOUT_STEREO;
@@ -1922,9 +1930,15 @@ static av_cold int dca_decode_init(AVCodecContext *avctx)
 avctx->sample_fmt = AV_SAMPLE_FMT_FLTP;
 
 /* allow downmixing to stereo */
-if (avctx->channels > 2 && avctx->request_channels == 2) {
-avctx->channels = avctx->request_channels;
-}
+#if FF_API_REQUEST_CHANNELS
+FF_DISABLE_DEPRECATION_WARNINGS
+if (avctx->request_channels == 2)
+avctx->request_channel_layout = AV_CH_LAYOUT_STEREO;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
+if (avctx->channels > 2 &&
+avctx->request_channel_layout == AV_CH_LAYOUT_STEREO)
+avctx->channels = 2;
 
 return 0;
 }
-- 
1.8.3.4 (Apple Git-47)

___
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel