1 package Audio
::Opusfile
;
8 use parent qw
/Exporter/;
12 qw
/OPUS_CHANNEL_COUNT_MAX
31 OP_GET_SERVER_INFO_REQUEST
34 OP_HTTP_PROXY_HOST_REQUEST
35 OP_HTTP_PROXY_PASS_REQUEST
36 OP_HTTP_PROXY_PORT_REQUEST
37 OP_HTTP_PROXY_USER_REQUEST
43 OP_SSL_SKIP_CERTIFICATE_CHECK_REQUEST
46 our @EXPORT_OK = @constants;
47 our @EXPORT = @constants;
49 our $VERSION = '0.001';
52 # This AUTOLOAD is used to 'autoload' constants from the constant()
57 ($constname = $AUTOLOAD) =~ s/.*:://;
58 croak
"&Audio::Opusfile::constant not defined" if $constname eq 'constant';
59 my ($error, $val) = constant
($constname);
60 if ($error) { croak
$error; }
63 # Fixed between 5.005_53 and 5.005_61
64 #XXX if ($] >= 5.00561) {
65 #XXX *$AUTOLOAD = sub () { $val };
68 *$AUTOLOAD = sub { $val };
75 XSLoader
::load
('Audio::Opusfile', $VERSION);
76 require Audio
::Opusfile
::Tags
;
78 # Preloaded methods go here.
81 my ($class, $file) = @_;
92 Audio::Opusfile - Very incomplete interface to the libopusfile Ogg Opus library
97 my $of = Audio::Opusfile->new_from_file('silence.opus');
99 say $tags->query('TITLE'); # Cellule
103 Opus is a totally open, royalty-free, highly versatile audio codec.
104 Opus is unmatched for interactive speech and music transmission over
105 the Internet, but is also intended for storage and streaming
106 applications. It is standardized by the Internet Engineering Task
107 Force (IETF) as RFC 6716 which incorporated technology from Skype's
108 SILK codec and Xiph.Org's CELT codec.
110 libopusfile is a library for decoding and basic manipulation of Ogg
113 Audio::Opusfile is an interface to libopusfile. At the moment its only
114 function is reading tags from an Ogg Opus file. Future versions will
115 give access to a larger part of the libopusfile API.
117 Expect the API to change in future versions.
123 =item Audio::Opusfile->B<new_from_file>(I<$file>)
125 Creates a new Audio::Opusfile object from an Ogg Opus file.
127 Dies if the given file does not exist or is not a valid Ogg Opus file.
131 Returns an L<Audio::Opusfile::Tags> object corresponding to the file.
137 All constants are exported by default:
139 OPUS_CHANNEL_COUNT_MAX
158 OP_GET_SERVER_INFO_REQUEST
161 OP_HTTP_PROXY_HOST_REQUEST
162 OP_HTTP_PROXY_PASS_REQUEST
163 OP_HTTP_PROXY_PORT_REQUEST
164 OP_HTTP_PROXY_USER_REQUEST
168 OP_PIC_FORMAT_UNKNOWN
170 OP_SSL_SKIP_CERTIFICATE_CHECK_REQUEST
176 L<Audio::Opusfile::Tags>,
177 L<http://opus-codec.org/>,
178 L<http://opus-codec.org/docs/opusfile_api-0.7/index.html>
182 Marius Gavrilescu, E<lt>marius@ieval.roE<gt>
184 =head1 COPYRIGHT AND LICENSE
186 Copyright (C) 2016 by Marius Gavrilescu
188 This library is free software; you can redistribute it and/or modify
189 it under the same terms as Perl itself, either Perl version 5.24.0 or,
190 at your option, any later version of Perl 5 you may have available.