.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Header 3pm" .TH Header 3pm 2024-03-07 "perl v5.38.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH NAME Audio::FLAC::Header \- interface to FLAC header metadata. .SH SYNOPSIS .IX Header "SYNOPSIS" .Vb 2 \& use Audio::FLAC::Header; \& my $flac = Audio::FLAC::Header\->new("song.flac"); \& \& my $info = $flac\->info(); \& \& foreach (keys %$info) { \& print "$_: $info\->{$_}\en"; \& } \& \& my $tags = $flac\->tags(); \& \& foreach (keys %$tags) { \& print "$_: $tags\->{$_}\en"; \& } .Ve .SH DESCRIPTION .IX Header "DESCRIPTION" This module returns a hash containing basic information about a FLAC file, a representation of the embedded cue sheet if one exists, as well as tag information contained in the FLAC file's Vorbis tags. There is no complete list of tag keys for Vorbis tags, as they can be defined by the user; the basic set of tags used for FLAC files include: .PP .Vb 7 \& ALBUM \& ARTIST \& TITLE \& DATE \& GENRE \& TRACKNUMBER \& COMMENT .Ve .PP The information returned by Audio::FLAC::info is keyed by: .PP .Vb 9 \& MINIMUMBLOCKSIZE \& MAXIMUMBLOCKSIZE \& MINIMUMFRAMESIZE \& MAXIMUMFRAMESIZE \& TOTALSAMPLES \& SAMPLERATE \& NUMCHANNELS \& BITSPERSAMPLE \& MD5CHECKSUM .Ve .PP Information stored in the main hash that relates to the file itself or is calculated from some of the information fields is keyed by: .PP .Vb 6 \& trackLengthMinutes : minutes field of track length \& trackLengthSeconds : seconds field of track length \& trackLengthFrames : frames field of track length (base 75) \& trackTotalLengthSeconds : total length of track in fractional seconds \& bitRate : average bits per second of file \& fileSize : file size, in bytes .Ve .SH CONSTRUCTORS .IX Header "CONSTRUCTORS" .ie n .SS """new ($filename)""" .el .SS "\f(CWnew ($filename)\fP" .IX Subsection "new ($filename)" Opens a FLAC file, ensuring that it exists and is actually an FLAC stream, then loads the information and comment fields. .SH "INSTANCE METHODS" .IX Header "INSTANCE METHODS" .IP \(bu 4 info( [$key] ) .Sp Returns a hashref containing information about the FLAC file from the file's information header. .Sp The optional parameter, key, allows you to retrieve a single value from the info hash. Returns \f(CW\*(C`undef\*(C'\fR if the key is not found. .IP \(bu 4 tags( [$key] ) .Sp Returns a hashref containing tag keys and values of the FLAC file from the file's Vorbis Comment header. .Sp The optional parameter, key, allows you to retrieve a single value from the tag hash. Returns \f(CW\*(C`undef\*(C'\fR if the key is not found. .IP \(bu 4 cuesheet( ) .Sp Returns an arrayref which contains a textual representation of the cuesheet metada block. Each element in the array corresponds to one line in a .cue file. If there is no cuesheet block in this FLAC file the array will be empty. The resulting cuesheet should match the output of metaflac's \-\-export\-cuesheet\-to option, with the exception of the FILE line, which includes the actual file name instead of "dummy.wav". .IP \(bu 4 seektable( ) .Sp Returns the seektable. Currently disabled for performance. .IP \(bu 4 application( \f(CW$appId\fR ) .Sp Returns the application block for the passed id. .IP \(bu 4 picture( [$type ] ) .Sp Returns a hash containing data from a PICTURE block if found. .Sp Defaults to type 3 \- "Front Cover" .Sp When the passed variable is 'all', an array of hashes containing picture data from all PICTURE blocks is returned. Allows for multiple instances of the same picture type. .IP \(bu 4 set_separator( ) .Sp For multi-value ID3 tags, set the separator string. Defaults to '/' .IP \(bu 4 vendor_string( ) .Sp Returns the vendor string. .IP \(bu 4 set_vendor_string( \f(CW$string\fR ) .Sp Set the vendor string. Will be written on \fBwrite()\fR .IP \(bu 4 write( ) .Sp Writes the current contents of the tag hash to the FLAC file, given that there's enough space in the header to do so. If there's insufficient space available (using pre-existing padding), the file will remain unchanged, and the function will return a zero value. .SH "SEE ALSO" .IX Header "SEE ALSO" .SH AUTHORS .IX Header "AUTHORS" Dan Sully, .SH COPYRIGHT .IX Header "COPYRIGHT" Pure perl code Copyright (c) 2003\-2004, Erik Reckase. .PP Pure perl code Copyright (c) 2003\-2007, Dan Sully & Slim Devices. Pure perl code Copyright (c) 2008\-2009, Dan Sully .PP XS code Copyright (c) 2004\-2007, Dan Sully & Slim Devices. XS code Copyright (c) 2008\-2009, Dan Sully .PP This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.2 or, at your option, any later version of Perl 5 you may have available.