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.002001';
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
;
77 require Audio
::Opusfile
::PictureTag
;
79 # Preloaded methods go here.
82 my ($class, $file) = @_;
93 Audio::Opusfile - Very incomplete interface to the libopusfile Ogg Opus library
98 my $of = Audio::Opusfile->new_from_file('silence.opus');
100 say $tags->query('TITLE'); # Cellule
104 Opus is a totally open, royalty-free, highly versatile audio codec.
105 Opus is unmatched for interactive speech and music transmission over
106 the Internet, but is also intended for storage and streaming
107 applications. It is standardized by the Internet Engineering Task
108 Force (IETF) as RFC 6716 which incorporated technology from Skype's
109 SILK codec and Xiph.Org's CELT codec.
111 libopusfile is a library for decoding and basic manipulation of Ogg
114 Audio::Opusfile is an interface to libopusfile. At the moment its only
115 function is reading metadata and tags from an Ogg Opus file. Future
116 versions will give access to a larger part of the libopusfile API.
118 Expect the API to change in future versions.
124 =item Audio::Opusfile->B<new_from_file>(I<$file>)
126 Creates a new Audio::Opusfile object from an Ogg Opus file.
128 Dies if the given file does not exist or is not a valid Ogg Opus file.
132 Returns an L<Audio::Opusfile::Head> object corresponding to the file.
136 Returns an L<Audio::Opusfile::Tags> object corresponding to the file.
142 All constants are exported by default:
144 OPUS_CHANNEL_COUNT_MAX
163 OP_GET_SERVER_INFO_REQUEST
166 OP_HTTP_PROXY_HOST_REQUEST
167 OP_HTTP_PROXY_PASS_REQUEST
168 OP_HTTP_PROXY_PORT_REQUEST
169 OP_HTTP_PROXY_USER_REQUEST
173 OP_PIC_FORMAT_UNKNOWN
175 OP_SSL_SKIP_CERTIFICATE_CHECK_REQUEST
181 L<Audio::Opusfile::Tags>,
182 L<http://opus-codec.org/>,
183 L<http://opus-codec.org/docs/opusfile_api-0.7/index.html>
187 Marius Gavrilescu, E<lt>marius@ieval.roE<gt>
189 =head1 COPYRIGHT AND LICENSE
191 Copyright (C) 2016 by Marius Gavrilescu
193 This library is free software; you can redistribute it and/or modify
194 it under the same terms as Perl itself, either Perl version 5.24.0 or,
195 at your option, any later version of Perl 5 you may have available.