~ubuntu-branches/ubuntu/lucid/ocaml-vorbis/lucid

« back to all changes in this revision

Viewing changes to src/vorbis.ml

  • Committer: Bazaar Package Importer
  • Author(s): Samuel Mimram
  • Date: 2007-09-18 21:54:19 UTC
  • mfrom: (1.1.6 upstream)
  • Revision ID: james.westby@ubuntu.com-20070918215419-v6dsdhjrrdlunswt
Tags: 0.3.1-3
Corrected link.dpatch, closes: #442961.

Show diffs side-by-side

added added

removed removed

Lines of Context:
24
24
  @author Samuel Mimram, Julien Cristau, David Baelde
25
25
  *)
26
26
 
27
 
(* $Id: vorbis.ml 2907 2007-03-02 13:32:11Z metamorph68 $ *)
 
27
(* $Id: vorbis.ml 3734 2007-05-22 11:49:18Z metamorph68 $ *)
28
28
 
29
29
(* TODO: there are too many assert(). Some of them should be handled
30
30
 more gracefully *)
91
91
 
92
92
external encode_buffer_part : encoder -> string -> int -> int -> string = "ocaml_vorbis_encode_buffer"
93
93
 
 
94
external encode_buffer_float_part : encoder -> float array array -> int -> int -> string = "ocaml_vorbis_encode_buffer_float"
 
95
 
94
96
let encode_buffer enc buf =
95
97
  encode_buffer_part enc buf 0 (String.length buf)
96
98
 
 
99
let encode_buffer_float enc buf =
 
100
  encode_buffer_float_part enc buf 0 (Array.length buf.(0))
 
101
 
97
102
type dec_params =
98
103
    {
99
104
      sample_size : int;
103
108
 
104
109
type dec_file
105
110
 
 
111
let default_dec_params =
 
112
  {
 
113
    sample_size = 16;
 
114
    big_endian = false;
 
115
    signed = true;
 
116
  }
 
117
 
106
118
external open_dec_fd : Unix.file_descr -> dec_params -> dec_file = "ocaml_vorbis_open_dec_file"
107
119
 
108
 
let open_dec_file fname =
 
120
let open_dec_fd ?(fmt = default_dec_params) fname =
 
121
  open_dec_fd fname fmt
 
122
 
 
123
let open_dec_file ?(fmt = default_dec_params) fname =
109
124
  let fd = Unix.openfile fname [Unix.O_RDONLY] 0o400 in
110
 
    open_dec_fd fd
 
125
    open_dec_fd ~fmt fd
111
126
 
112
127
external open_dec_stream : (int -> string) -> (unit -> int) -> (unit -> unit) -> (unit -> int) -> dec_params -> dec_file = "ocaml_vorbis_open_dec_stream"
113
128
 
 
129
let open_dec_stream ?(fmt = default_dec_params) read seek close tell =
 
130
  open_dec_stream read seek close tell fmt
 
131
 
114
132
external decode : dec_file -> string -> int -> int -> int = "ocaml_vorbis_decode"
115
133
 
 
134
external decode_float : dec_file -> int -> float array array = "ocaml_vorbis_decode_float"
 
135
 
116
136
external close_dec_file : dec_file -> unit = "ocaml_vorbis_close_dec_file"
117
137
 
118
138