Re: [FFmpeg-devel] [PATCH] avcodec: add libdcadec decoder

2015-03-19 Thread Michael Niedermayer
On Thu, Mar 19, 2015 at 11:56:22PM +0100, Hendrik Leppkes wrote:
> ---
>  configure  |   4 +
>  libavcodec/Makefile|   1 +
>  libavcodec/allcodecs.c |   1 +
>  libavcodec/libdcadec.c | 197 
> +
>  4 files changed, 203 insertions(+)
>  create mode 100644 libavcodec/libdcadec.c

applied

thanks

[...]
-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

The real ebay dictionary, page 3
"Rare item" - "Common item with rare defect or maybe just a lie"
"Professional" - "'Toy' made in china, not functional except as doorstop"
"Experts will know" - "The seller hopes you are not an expert"


signature.asc
Description: Digital signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] avcodec: add libdcadec decoder

2015-03-17 Thread Derek Buitenhuis
On 3/17/2015 4:26 PM, James Almer wrote:
> We don't have a generic decorrelate dsp?
> I think there was something in fmtconvert, but libav nuked it for being 
> unused.

Can we not just use a different return format?

- Derek
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] avcodec: add libdcadec decoder

2015-03-17 Thread James Almer
On 17/03/15 1:07 PM, Hendrik Leppkes wrote:
> diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
> index cdc8aa1..48e212f 100644
> --- a/libavcodec/avcodec.h
> +++ b/libavcodec/avcodec.h
> @@ -2851,6 +2851,7 @@ typedef struct AVCodecContext {
>  #define FF_PROFILE_DTS_96_24   40
>  #define FF_PROFILE_DTS_HD_HRA  50
>  #define FF_PROFILE_DTS_HD_MA   60
> +#define FF_PROFILE_DTS_EXPRESS 70

Maybe a separate patch?

[...]

> +static int dcadec_decode_frame(AVCodecContext *avctx, void *data,
> +   int *got_frame_ptr, AVPacket *avpkt)
> +{
> +DCADecContext *s = avctx->priv_data;
> +AVFrame *frame = data;
> +int ret, i, k;
> +int **samples, nsamples, channel_mask, sample_rate, bits_per_sample, 
> profile;
> +
> +if ((ret = dcadec_context_parse(s->ctx, avpkt->data, avpkt->size)) < 0) {
> +av_log(avctx, AV_LOG_ERROR, "dcadec_context_parse() failed: %d\n", 
> -ret);
> +return AVERROR_UNKNOWN;

AVERROR_EXTERNAL, or maybe translate the DCADEC_E* error values.

[...]

> +frame->nb_samples = nsamples;
> +if ((ret = ff_get_buffer(avctx, frame, 0)) < 0)
> +return ret;
> +
> +for (i = 0; i < avctx->channels; i++) {
> +if (frame->format == AV_SAMPLE_FMT_S16P) {
> +int16_t *plane = (int16_t *)frame->extended_data[i];
> +for (k = 0; k < nsamples; k++)
> +plane[k] = samples[i][k];
> +} else {
> +int32_t *plane = (int32_t *)frame->extended_data[i];
> +int shift = 32 - bits_per_sample;
> +for (k = 0; k < nsamples; k++)
> +plane[k] = samples[i][k] << shift;
> +}
> +}

We don't have a generic decorrelate dsp?
I think there was something in fmtconvert, but libav nuked it for being unused.

[...]

> +AVCodec ff_libdcadec_decoder = {
> +.name   = "libdcadec",
> +.long_name  = NULL_IF_CONFIG_SMALL("dcadec DCA decoder"),
> +.type   = AVMEDIA_TYPE_AUDIO,
> +.id = AV_CODEC_ID_DTS,
> +.priv_data_size = sizeof(DCADecContext),
> +.init   = dcadec_init,
> +.decode = dcadec_decode_frame,
> +.close  = dcadec_close,
> +.flush  = dcadec_flush,
> +.capabilities   = CODEC_CAP_DR1 | CODEC_CAP_CHANNEL_CONF,
> +.sample_fmts= (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S32P, 
> AV_SAMPLE_FMT_S16P,
> +  AV_SAMPLE_FMT_NONE },
> +.profiles   = NULL_IF_CONFIG_SMALL(profiles),
> +};

Missing version bump and changelog entry.

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel