logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Audio::FLAC::Header - interface to FLAC header metadata.

Authors

       Dan Sully, <daniel@cpan.org>

Constructors

"new($filename)"
       Opens a FLAC file, ensuring that it exists and is actually an FLAC stream, then loads the information and
       comment fields.

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:

               ALBUM
               ARTIST
               TITLE
               DATE
               GENRE
               TRACKNUMBER
               COMMENT

       The information returned by Audio::FLAC::info is keyed by:

               MINIMUMBLOCKSIZE
               MAXIMUMBLOCKSIZE
               MINIMUMFRAMESIZE
               MAXIMUMFRAMESIZE
               TOTALSAMPLES
               SAMPLERATE
               NUMCHANNELS
               BITSPERSAMPLE
               MD5CHECKSUM

       Information stored in the main hash that relates to the file itself or is calculated from some of the
       information fields is keyed by:

               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

Instance Methods

       •   info( [$key] )

           Returns a hashref containing information about the FLAC file from the file's information header.

           The  optional  parameter,  key,  allows  you  to retrieve a single value from the info hash.  Returns
           "undef" if the key is not found.

       •   tags( [$key] )

           Returns a hashref containing tag keys and values of the FLAC file  from  the  file's  Vorbis  Comment
           header.

           The  optional  parameter,  key,  allows  you  to  retrieve a single value from the tag hash.  Returns
           "undef" if the key is not found.

       •   cuesheet( )

           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".

       •   seektable( )

           Returns the seektable. Currently disabled for performance.

       •   application( $appId )

           Returns the application block for the passed id.

       •   picture( [$type ] )

           Returns a hash containing data from a PICTURE block if found.

           Defaults to type 3 - "Front Cover"

           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.

       •   set_separator( )

           For multi-value ID3 tags, set the separator string. Defaults to '/'

       •   vendor_string( )

           Returns the vendor string.

       •   set_vendor_string( $string )

           Set the vendor string. Will be written on write()

       •   write( )

           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.

Name

       Audio::FLAC::Header - interface to FLAC header metadata.

See Also

Synopsis

               use Audio::FLAC::Header;
               my $flac = Audio::FLAC::Header->new("song.flac");

               my $info = $flac->info();

               foreach (keys %$info) {
                       print "$_: $info->{$_}\n";
               }

               my $tags = $flac->tags();

               foreach (keys %$tags) {
                       print "$_: $tags->{$_}\n";
               }

See Also