Blocked revisions 72597 via svnmerge
[asterisk/asterisk.git] / formats / format_ogg_vorbis.c
index 69a43f0..3868c5a 100644 (file)
  * \ingroup formats
  */
 
+/* the order of these dependencies is important... it also specifies
+   the link order of the libraries during linking
+*/
+
+/*** MODULEINFO
+       <depend>vorbis</depend>
+       <depend>ogg</depend>
+ ***/
+
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
+
 #include <sys/types.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
 #include <fcntl.h>
 #endif
 
-#include "asterisk.h"
-
-ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
-
 #include "asterisk/lock.h"
 #include "asterisk/channel.h"
 #include "asterisk/file.h"
 #include "asterisk/logger.h"
 #include "asterisk/module.h"
+#include "asterisk/options.h"
 
 /*
  * this is the number of samples we deal with. Samples are converted
@@ -80,7 +90,7 @@ struct vorbis_desc {  /* format specific parameters */
 
 /*!
  * \brief Create a new OGG/Vorbis filestream and set it up for reading.
- * \param f File that points to on disk storage of the OGG/Vorbis data.
+ * \param s File that points to on disk storage of the OGG/Vorbis data.
  * \return The new filestream.
  */
 static int ogg_vorbis_open(struct ast_filestream *s)
@@ -166,9 +176,9 @@ error:
        }
        
        for (ptr = tmp->vc.user_comments; *ptr; ptr++)
-               ast_log(LOG_DEBUG, "OGG/Vorbis comment: %s\n", *ptr);
-       ast_log(LOG_DEBUG, "OGG/Vorbis bitstream is %d channel, %ldHz\n", tmp->vi.channels, tmp->vi.rate);
-       ast_log(LOG_DEBUG, "OGG/Vorbis file encoded by: %s\n", tmp->vc.vendor);
+               ast_debug(1, "OGG/Vorbis comment: %s\n", *ptr);
+               ast_debug(1, "OGG/Vorbis bitstream is %d channel, %ldHz\n", tmp->vi.channels, tmp->vi.rate);
+               ast_debug(1, "OGG/Vorbis file encoded by: %s\n", tmp->vc.vendor);
 
        if (tmp->vi.channels != 1) {
                ast_log(LOG_ERROR, "Only monophonic OGG/Vorbis files are currently supported!\n");
@@ -190,7 +200,7 @@ error:
 
 /*!
  * \brief Create a new OGG/Vorbis filestream and set it up for writing.
- * \param f File pointer that points to on-disk storage.
+ * \param s File pointer that points to on-disk storage.
  * \param comment Comment that should be embedded in the OGG/Vorbis file.
  * \return A new filestream.
  */
@@ -241,7 +251,8 @@ static int ogg_vorbis_rewrite(struct ast_filestream *s,
 
 /*!
  * \brief Write out any pending encoded data.
- * \param s A OGG/Vorbis filestream.
+ * \param s An OGG/Vorbis filestream.
+ * \param f The file to write to.
  */
 static void write_stream(struct vorbis_desc *s, FILE *f)
 {
@@ -267,9 +278,9 @@ static void write_stream(struct vorbis_desc *s, FILE *f)
 
 /*!
  * \brief Write audio data from a frame to an OGG/Vorbis filestream.
- * \param s A OGG/Vorbis filestream.
- * \param f An frame containing audio to be written to the filestream.
- * \return -1 ifthere was an error, 0 on success.
+ * \param fs An OGG/Vorbis filestream.
+ * \param f A frame containing audio to be written to the filestream.
+ * \return -1 if there was an error, 0 on success.
  */
 static int ogg_vorbis_write(struct ast_filestream *fs, struct ast_frame *f)
 {
@@ -311,7 +322,7 @@ static int ogg_vorbis_write(struct ast_filestream *fs, struct ast_frame *f)
 
 /*!
  * \brief Close a OGG/Vorbis filestream.
- * \param s A OGG/Vorbis filestream.
+ * \param fs A OGG/Vorbis filestream.
  */
 static void ogg_vorbis_close(struct ast_filestream *fs)
 {
@@ -337,7 +348,7 @@ static void ogg_vorbis_close(struct ast_filestream *fs)
 
 /*!
  * \brief Get audio data.
- * \param s An OGG/Vorbis filestream.
+ * \param fs An OGG/Vorbis filestream.
  * \param pcm Pointer to a buffere to store audio data in.
  */
 
@@ -416,7 +427,7 @@ static int read_samples(struct ast_filestream *fs, float ***pcm)
 
 /*!
  * \brief Read a frame full of audio data from the filestream.
- * \param s The filestream.
+ * \param fs The filestream.
  * \param whennext Number of sample times to schedule the next call.
  * \return A pointer to a frame containing audio data or NULL ifthere is no more audio data.
  */
@@ -431,12 +442,13 @@ static struct ast_frame *ogg_vorbis_read(struct ast_filestream *fs,
        int samples_in;
        int samples_out = 0;
        struct vorbis_desc *s = (struct vorbis_desc *)fs->private;
-       short *buf = (short *)(fs->fr.data);    /* SLIN data buffer */
+       short *buf;     /* SLIN data buffer */
 
        fs->fr.frametype = AST_FRAME_VOICE;
        fs->fr.subclass = AST_FORMAT_SLINEAR;
        fs->fr.mallocd = 0;
        AST_FRAME_SET_BUFFER(&fs->fr, fs->buf, AST_FRIENDLY_OFFSET, BUF_SIZE);
+       buf = (short *)(fs->fr.data);   /* SLIN data buffer */
 
        while (samples_out != SAMPLES_MAX) {
                float **pcm;
@@ -537,27 +549,17 @@ static const struct ast_format vorbis_f = {
        .close = ogg_vorbis_close,
        .buf_size = BUF_SIZE + AST_FRIENDLY_OFFSET,
        .desc_size = sizeof(struct vorbis_desc),
-       .module = &mod_data, /* XXX */
 };
 
-static int load_module(void *mod)
+static int load_module(void)
 {
        return ast_format_register(&vorbis_f);
 }
 
-static int unload_module(void *mod)
+static int unload_module(void)
 {
        return ast_format_unregister(vorbis_f.name);
 }
 
-static const char *description(void)
-{
-       return "OGG/Vorbis audio";
-}
-
-static const char *key(void)
-{
-       return ASTERISK_GPL_KEY;
-}
+AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "OGG/Vorbis audio");
 
-STD_MOD1;