diff options
| author | Zidan Wang <b50113@freescale.com> | 2015-01-05 16:13:14 +0800 |
|---|---|---|
| committer | Otavio Salvador <otavio@ossystems.com.br> | 2015-01-05 08:37:30 -0200 |
| commit | 6576538864c20382dba3331ba6a5b8d2b2d30e31 (patch) | |
| tree | 2c9f8ab953b23944a4215d2403c30c41895145e2 /meta-fsl-arm | |
| parent | 1d1d9b0c7fa69ad99d6ad9edac4754257ecf7e80 (diff) | |
| download | meta-freescale-6576538864c20382dba3331ba6a5b8d2b2d30e31.tar.gz | |
fsl-alsa-plugins: update output buffer size for asrc_pair
When input size larger than DMA_MAX_BYTES the output size should be updated.
Otherwise the asrc have will not have enough data, then it will be timeout.
Signed-off-by: Zidan Wang <b50113@freescale.com>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Diffstat (limited to 'meta-fsl-arm')
| -rw-r--r-- | meta-fsl-arm/recipes-multimedia/alsa/fsl-alsa-plugins/0001-asrc_pair-update-output-buffer-size.patch | 47 | ||||
| -rw-r--r-- | meta-fsl-arm/recipes-multimedia/alsa/fsl-alsa-plugins_1.0.25.bb | 3 |
2 files changed, 50 insertions, 0 deletions
diff --git a/meta-fsl-arm/recipes-multimedia/alsa/fsl-alsa-plugins/0001-asrc_pair-update-output-buffer-size.patch b/meta-fsl-arm/recipes-multimedia/alsa/fsl-alsa-plugins/0001-asrc_pair-update-output-buffer-size.patch new file mode 100644 index 000000000..d76c74d44 --- /dev/null +++ b/meta-fsl-arm/recipes-multimedia/alsa/fsl-alsa-plugins/0001-asrc_pair-update-output-buffer-size.patch | |||
| @@ -0,0 +1,47 @@ | |||
| 1 | From 9acab46fe307ec71d4a4dbe447e356f90b6a4a09 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Shengjiu Wang <shengjiu.wang@freescale.com> | ||
| 3 | Date: Fri, 12 Dec 2014 14:58:06 +0800 | ||
| 4 | Subject: [PATCH] [asrc_pair] update output buffer size | ||
| 5 | |||
| 6 | When input size larger than DMA_MAX_BYTES the output size should be updated. | ||
| 7 | Otherwise the asrc have will not have enough data, then it will be timeout. | ||
| 8 | |||
| 9 | Upstream Status: Inappropriate [platform specific] | ||
| 10 | |||
| 11 | Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com> | ||
| 12 | --- | ||
| 13 | asrc/asrc_pair.c | 11 ++++++++--- | ||
| 14 | 1 file changed, 8 insertions(+), 3 deletions(-) | ||
| 15 | |||
| 16 | diff --git a/asrc/asrc_pair.c b/asrc/asrc_pair.c | ||
| 17 | index e3df027..e74e8b1 100644 | ||
| 18 | --- a/asrc/asrc_pair.c | ||
| 19 | +++ b/asrc/asrc_pair.c | ||
| 20 | @@ -139,7 +139,7 @@ asrc_pair *asrc_pair_create(unsigned int channels, ssize_t in_period_frames, | ||
| 21 | config.dma_buffer_size = dma_buffer_size; | ||
| 22 | config.input_sample_rate = in_rate; | ||
| 23 | config.output_sample_rate = out_rate; | ||
| 24 | - config.buffer_num = 1; | ||
| 25 | + config.buffer_num = buf_num; | ||
| 26 | config.input_word_width = ASRC_WIDTH_16_BIT; | ||
| 27 | config.output_word_width = ASRC_WIDTH_16_BIT; | ||
| 28 | config.inclk = INCLK_NONE; | ||
| 29 | @@ -303,8 +303,13 @@ void asrc_pair_convert_s16(asrc_pair *pair, const int16_t *src, unsigned int src | ||
| 30 | |||
| 31 | while (src_left > 0) | ||
| 32 | { | ||
| 33 | - in_len = src_left > pair->buf_size ? pair->buf_size : src_left; | ||
| 34 | - out_len = dst_left; | ||
| 35 | + if (src_left > pair->buf_size) { | ||
| 36 | + in_len = pair->buf_size; | ||
| 37 | + out_len = dst_left * in_len/src_left; | ||
| 38 | + } else { | ||
| 39 | + in_len = src_left; | ||
| 40 | + out_len = dst_left; | ||
| 41 | + } | ||
| 42 | |||
| 43 | buf_info.input_buffer_vaddr = s; | ||
| 44 | buf_info.input_buffer_length = in_len; | ||
| 45 | -- | ||
| 46 | 1.9.1 | ||
| 47 | |||
diff --git a/meta-fsl-arm/recipes-multimedia/alsa/fsl-alsa-plugins_1.0.25.bb b/meta-fsl-arm/recipes-multimedia/alsa/fsl-alsa-plugins_1.0.25.bb index 331ccdbc8..556884dea 100644 --- a/meta-fsl-arm/recipes-multimedia/alsa/fsl-alsa-plugins_1.0.25.bb +++ b/meta-fsl-arm/recipes-multimedia/alsa/fsl-alsa-plugins_1.0.25.bb | |||
| @@ -14,6 +14,8 @@ SRC_URI = "${FSL_MIRROR}/${PN}-${PV}.tar.gz" | |||
| 14 | SRC_URI[md5sum] = "b1ca7a250a8cd5da07062081b30b4118" | 14 | SRC_URI[md5sum] = "b1ca7a250a8cd5da07062081b30b4118" |
| 15 | SRC_URI[sha256sum] = "902df92255d755e8eb08b3c3db0c7b9d70d26d9659b219373bee425ffdc34245" | 15 | SRC_URI[sha256sum] = "902df92255d755e8eb08b3c3db0c7b9d70d26d9659b219373bee425ffdc34245" |
| 16 | 16 | ||
| 17 | SRC_URI_append_mx6 = " file://0001-asrc_pair-update-output-buffer-size.patch" | ||
| 18 | |||
| 17 | INCLUDE_DIR = "-I${STAGING_KERNEL_DIR}/include/uapi -I${STAGING_KERNEL_DIR}/include" | 19 | INCLUDE_DIR = "-I${STAGING_KERNEL_DIR}/include/uapi -I${STAGING_KERNEL_DIR}/include" |
| 18 | 20 | ||
| 19 | EXTRA_OECONF = "CFLAGS="${INCLUDE_DIR}"" | 21 | EXTRA_OECONF = "CFLAGS="${INCLUDE_DIR}"" |
| @@ -25,3 +27,4 @@ FILES_${PN}-dbg += "${libdir}/alsa-lib/.debug" | |||
| 25 | FILES_${PN}-dev += "${libdir}/alsa-lib/*.la" | 27 | FILES_${PN}-dev += "${libdir}/alsa-lib/*.la" |
| 26 | 28 | ||
| 27 | COMPATIBLE_MACHINE = "(mx6)" | 29 | COMPATIBLE_MACHINE = "(mx6)" |
| 30 | PACKAGE_ARCH_mx6 = "${MACHINE_SOCARCH}" | ||
