diff --git a/src/opus.h b/src/opus.h
index 420f96b8561832ebe6721e48e2451f6ed77a1e82..a74b0a34e097879710e4629f8f4b6d2350ca9614 100644
--- a/src/opus.h
+++ b/src/opus.h
@@ -200,6 +200,15 @@ OPUS_EXPORT int opus_encode(
     int max_data_bytes          /* Allocated memory for payload; don't use for controlling bitrate */
 );
 
+/* Returns length of the data payload (in bytes) */
+OPUS_EXPORT int opus_encode_float(
+    OpusEncoder *st,            /* Encoder state */
+    const float *pcm,           /* Input signal (interleaved if 2 channels). length is frame_size*channels 0dbFS range of +/-1.0*/
+    int frame_size,             /* Number of samples per frame of input signal */
+    unsigned char *data,        /* Output payload (no more than max_data_bytes long) */
+    int max_data_bytes          /* Allocated memory for payload; don't use for controlling bitrate */
+);
+
 OPUS_EXPORT void opus_encoder_destroy(OpusEncoder *st);
 
 OPUS_EXPORT int opus_encoder_ctl(OpusEncoder *st, int request, ...);
@@ -225,6 +234,17 @@ OPUS_EXPORT int opus_decode(
                                 /* decoded. If no such data is available the frame is decoded as if it were lost. */
 );
 
+/* Returns the number of samples decoded or a negative error code */
+OPUS_EXPORT int opus_decode_float(
+    OpusDecoder *st,            /* Decoder state */
+    const unsigned char *data,  /* Input payload. Use a NULL pointer to indicate packet loss */
+    int len,                    /* Number of bytes in payload */
+    float *pcm,                 /* Output signal (interleaved if 2 channels). length is frame_size*channels 0dbFS range of -/+1.0*/
+    int frame_size,             /* Number of samples per frame of input signal */
+    int decode_fec              /* Flag (0/1) to request that any in-band forward error correction data be */
+                                /* decoded. If no such data is available the frame is decoded as if it were lost. */
+);
+
 OPUS_EXPORT int opus_decoder_ctl(OpusDecoder *st, int request, ...);
 
 OPUS_EXPORT void opus_decoder_destroy(OpusDecoder *st);