OSDN Git Service

sbc: Fix signedness of libsbc parameters
authorJohan Hedberg <johan.hedberg@nokia.com>
Wed, 30 Jun 2010 08:55:11 +0000 (11:55 +0300)
committerMarcel Holtmann <marcel@holtmann.org>
Mon, 30 Jul 2012 02:48:29 +0000 (19:48 -0700)
The written parameter of sbc_encode can be negative so it should be
ssize_t instead of size_t.

sbc/sbc.c
sbc/sbc.h
sbc/sbcenc.c

index 569dd7c..1921585 100644 (file)
--- a/sbc/sbc.c
+++ b/sbc/sbc.c
@@ -743,7 +743,7 @@ static int sbc_analyze_audio(struct sbc_encoder_state *state,
  * -99 not implemented
  */
 
-static SBC_ALWAYS_INLINE int sbc_pack_frame_internal(uint8_t *data,
+static SBC_ALWAYS_INLINE ssize_t sbc_pack_frame_internal(uint8_t *data,
                                        struct sbc_frame *frame, size_t len,
                                        int frame_subbands, int frame_channels,
                                        int joint)
@@ -860,7 +860,7 @@ static SBC_ALWAYS_INLINE int sbc_pack_frame_internal(uint8_t *data,
        return data_ptr - data;
 }
 
-static int sbc_pack_frame(uint8_t *data, struct sbc_frame *frame, size_t len,
+static ssize_t sbc_pack_frame(uint8_t *data, struct sbc_frame *frame, size_t len,
                                                                int joint)
 {
        if (frame->subbands == 4) {
@@ -1005,10 +1005,11 @@ ssize_t sbc_decode(sbc_t *sbc, const void *input, size_t input_len,
 }
 
 ssize_t sbc_encode(sbc_t *sbc, const void *input, size_t input_len,
-                       void *output, size_t output_len, size_t *written)
+                       void *output, size_t output_len, ssize_t *written)
 {
        struct sbc_priv *priv;
-       int framelen, samples;
+       int samples;
+       ssize_t framelen;
        int (*sbc_enc_process_input)(int position,
                        const uint8_t *pcm, int16_t X[2][SBC_X_BUFFER_SIZE],
                        int nsamples, int nchannels);
index 91422a9..2f830ad 100644 (file)
--- a/sbc/sbc.h
+++ b/sbc/sbc.h
@@ -92,7 +92,7 @@ ssize_t sbc_decode(sbc_t *sbc, const void *input, size_t input_len,
 
 /* Encodes ONE input block into ONE output block */
 ssize_t sbc_encode(sbc_t *sbc, const void *input, size_t input_len,
-                       void *output, size_t output_len, size_t *written);
+                       void *output, size_t output_len, ssize_t *written);
 
 /* Returns the output block size in bytes */
 size_t sbc_get_frame_length(sbc_t *sbc);
index b5e0541..3d3a7dc 100644 (file)
@@ -50,7 +50,7 @@ static void encode(char *filename, int subbands, int bitpool, int joint,
        struct au_header au_hdr;
        sbc_t sbc;
        int fd, size, srate, codesize, nframes;
-       size_t encoded;
+       ssize_t encoded;
        ssize_t len;
 
        if (sizeof(au_hdr) != 24) {