]> iEval git - audio-opusfile.git/blobdiff - Opusfile.xs
Bump version and update Changes
[audio-opusfile.git] / Opusfile.xs
index c1f6353e51b25437fc90033f47c3103e5f55ef0b..43ab5a608fe34a6a016fc38d98cbaea41d433452 100644 (file)
@@ -21,19 +21,55 @@ op_open_file(path)
        const char *path;
 PREINIT:
        int err;
-CODE:
-       RETVAL = op_open_file(path, &err);
+C_ARGS:
+       path, &err
+POSTCALL:
        if(err)
                croak("op_open_file returned error %d\n", err);
+
+OggOpusFile*
+op_open_memory(const char *data, size_t length(data))
+PREINIT:
+       int err;
+C_ARGS:
+       data, XSauto_length_of_data, &err
+POSTCALL:
+       if(err)
+               croak("op_open_memory returned error %d\n", err);
+
+bool
+op_test(const char *data, size_t length(data))
+PROTOTYPE: $
+PREINIT:
+       int ret;
+CODE:
+       ret = op_test (NULL, data, XSauto_length_of_data);
+       if(ret < 0 && ret != OP_ENOTFORMAT && ret != OP_EBADHEADER)
+               croak("op_test returned error %d\n", RETVAL);
+       RETVAL = !ret;
 OUTPUT:
        RETVAL
 
+
 void
 DESTROY(of)
        OggOpusFile *of;
 CODE:
        op_free(of);
 
+bool
+op_seekable(of)
+       OggOpusFile* of;
+
+int
+op_link_count(of)
+       OggOpusFile* of;
+
+int
+op_serialno(of, li = -1)
+       OggOpusFile* of;
+       int li;
+
 const OpusHead*
 op_head(of, li = -1)
        OggOpusFile *of;
@@ -56,3 +92,172 @@ opus_tags_query(tags, tag, count = 0)
        const OpusTags* tags;
        const char* tag;
        int count;
+
+MODULE = Audio::Opusfile               PACKAGE = Audio::Opusfile::PictureTag           PREFIX = opus_picture_tag_
+
+const OpusPictureTag*
+opus_picture_tag_parse(tag)
+       const char *tag;
+PREINIT:
+       OpusPictureTag *pic;
+       int err;
+CODE:
+       Newx(pic, 1, OpusPictureTag);
+       if(err = opus_picture_tag_parse(pic, tag))
+               croak("opus_picture_tag_parse returned error %d\n", err);
+       RETVAL = pic;
+OUTPUT:
+       RETVAL
+
+void
+DESTROY(pic)
+       const OpusPictureTag* pic
+CODE:
+       Safefree(pic);
+
+int
+type(pic)
+       const OpusPictureTag *pic;
+CODE:
+       RETVAL = pic->type;
+OUTPUT:
+       RETVAL
+
+const char*
+mime_type(pic)
+       const OpusPictureTag *pic;
+CODE:
+       RETVAL = pic->mime_type;
+OUTPUT:
+       RETVAL
+
+const char*
+description(pic)
+       const OpusPictureTag *pic;
+CODE:
+       RETVAL = pic->description;
+OUTPUT:
+       RETVAL
+
+int
+width(pic)
+       const OpusPictureTag *pic;
+CODE:
+       RETVAL = pic->width;
+OUTPUT:
+       RETVAL
+
+int
+height(pic)
+       const OpusPictureTag *pic;
+CODE:
+       RETVAL = pic->height;
+OUTPUT:
+       RETVAL
+
+int
+depth(pic)
+       const OpusPictureTag *pic;
+CODE:
+       RETVAL = pic->depth;
+OUTPUT:
+       RETVAL
+
+int
+colors(pic)
+       const OpusPictureTag *pic;
+CODE:
+       RETVAL = pic->colors;
+OUTPUT:
+       RETVAL
+
+int
+data_length(pic)
+       const OpusPictureTag *pic;
+CODE:
+       RETVAL = pic->data_length;
+OUTPUT:
+       RETVAL
+
+SV*
+data(pic)
+       const OpusPictureTag *pic;
+CODE:
+       RETVAL = newSVpvn(pic->data, pic->data_length);
+OUTPUT:
+       RETVAL
+
+int
+format(pic)
+       const OpusPictureTag *pic;
+CODE:
+       RETVAL = pic->format;
+OUTPUT:
+       RETVAL
+
+MODULE = Audio::Opusfile               PACKAGE = Audio::Opusfile::Head
+
+int
+version(head)
+       const OpusHead* head;
+CODE:
+       RETVAL = head->version;
+OUTPUT:
+       RETVAL
+
+int
+channel_count(head)
+       const OpusHead* head;
+CODE:
+       RETVAL = head->channel_count;
+OUTPUT:
+       RETVAL
+
+unsigned
+pre_skip(head)
+       const OpusHead* head;
+CODE:
+       RETVAL = head->pre_skip;
+OUTPUT:
+       RETVAL
+
+unsigned
+input_sample_rate(head)
+       const OpusHead* head;
+CODE:
+       RETVAL = head->input_sample_rate;
+OUTPUT:
+       RETVAL
+
+int
+mapping_family(head)
+       const OpusHead* head;
+CODE:
+       RETVAL = head->mapping_family;
+OUTPUT:
+       RETVAL
+
+int
+stream_count(head)
+       const OpusHead* head;
+CODE:
+       RETVAL = head->stream_count;
+OUTPUT:
+       RETVAL
+
+int
+coupled_count(head)
+       const OpusHead* head;
+CODE:
+       RETVAL = head->coupled_count;
+OUTPUT:
+       RETVAL
+
+int
+mapping(head, k)
+       const OpusHead* head;
+       int k;
+CODE:
+       RETVAL = (int) head->mapping[k];
+OUTPUT:
+       RETVAL
This page took 0.027767 seconds and 4 git commands to generate.