[FFmpeg-devel] [PATCH] avcodec/libdcadec: export matrix encoding side data

Hendrik Leppkes h.leppkes at gmail.com
Tue Jul 7 00:02:56 CEST 2015


On Mon, Jul 6, 2015 at 10:25 PM, James Almer <jamrial at gmail.com> wrote:
> Signed-off-by: James Almer <jamrial at gmail.com>
> ---
>  libavcodec/libdcadec.c | 21 +++++++++++++++++++++
>  1 file changed, 21 insertions(+)
>
> diff --git a/libavcodec/libdcadec.c b/libavcodec/libdcadec.c
> index 890d270..9d4b9e8 100644
> --- a/libavcodec/libdcadec.c
> +++ b/libavcodec/libdcadec.c
> @@ -41,6 +41,7 @@ static int dcadec_decode_frame(AVCodecContext *avctx, void *data,
>  {
>      DCADecContext *s = avctx->priv_data;
>      AVFrame *frame = data;
> +    struct dcadec_exss_info *exss;
>      int ret, i, k;
>      int **samples, nsamples, channel_mask, sample_rate, bits_per_sample, profile;
>      uint32_t mrk;
> @@ -127,6 +128,26 @@ static int dcadec_decode_frame(AVCodecContext *avctx, void *data,
>      } else
>          avctx->bit_rate = 0;
>
> +    if (exss = dcadec_context_get_exss_info(s->ctx)) {
> +        enum AVMatrixEncoding matrix_encoding;
> +
> +        switch(exss->matrix_encoding) {
> +        case DCADEC_MATRIX_ENCODING_SURROUND:
> +            matrix_encoding = AV_MATRIX_ENCODING_DOLBY;
> +            break;
> +        case DCADEC_MATRIX_ENCODING_HEADPHONE:
> +            matrix_encoding = AV_MATRIX_ENCODING_DOLBYHEADPHONE;
> +            break;
> +        default:
> +            matrix_encoding = AV_MATRIX_ENCODING_NONE;
> +            break;
> +        }

I think Dolby would disagree. ;)

Maybe we should just not set anything when the expected value is NONE?
Not that it really matters. but sending an "empty" value all the time
may not be required?

- Hendrik


More information about the ffmpeg-devel mailing list