Audio::TagLib::Ogg::XiphComment - Ogg Vorbis comment implementation


Audio-TagLib documentation Contained in the Audio-TagLib distribution.

Index


Code Index:

NAME

Top

Audio::TagLib::Ogg::XiphComment - Ogg Vorbis comment implementation

SYNOPSIS

Top

  use Audio::TagLib::Ogg::XiphComment;

  my $i = Audio::TagLib::Ogg::XiphComment->new();
  $i->setGenre(Audio::TagLib::String->new("genre"));
  print $i->genre()->toCString(), "\n"; # got "genre"

DESCRIPTION

Top

This class is an implementation of the Ogg Vorbis comment specification, to be found in section 5 of the Ogg Vorbis specification. Because this format is also used in other (currently unsupported) Xiph.org formats, it has been made part of a generic implementation rather than being limited to strictly Vorbis.

Vorbis comments are a simple vector of keys and values, called fields. Multiple values for a given key are supported.

see fieldListMap()

new()

Constructs an empty Vorbis comment.

new(ByteVector $data)

Constructs a Vorbis comment from $data.

DESTROY()

Destroys this instance of the XiphComment.

String title()
String artist()
String album()
String comment()
String genre()
UV year()
UV track()
void setTitle(String $s)
void setArtist(String $s)
void setAlbum(String $s)
void setComment(String $s)
void setYear(UV $i)
void setTrack(UV $i)
BOOL isEmpty()

see Tag

UV fieldCount()

Returns the number of fields present in the comment.

FieldListMap fieldListMap()

Returns a reference to the map of field lists. Because Xiph comments support multiple fields with the same key, a pure Map would not work. As such this is a Map of string lists, keyed on the comment field name.

The standard set of Xiph/Vorbis fields (which may or may not be contained in any specific comment) is:

qw(TITLE VERSION ALBUM ARTIST PERFORMER COPYRIGHT ORGRAIZATION DESCRIPTION GENRE DATE LOCATION CONTACT ISRC)

For a more detailed description of these fields, please see the Ogg Vorbis specification, section 5.2.2.1.

NOTE The Ogg Vorbis comment specification does allow these key values to be either upper or lower case. However, it is conventional for them to be upper case. As such, Audio::TagLib, when parsing a Xiph/Vorbis comment, converts all fields to uppercase. When you are using this data structure, you will need to specify the field name in upper case.

WARNING You should not modify this data structure directly, instead use addField() and removeField().

String vendorID()

Returns the vendor ID of the Ogg Vorbis encoder. libvorbis 1.0 as the most common case always returns "Xiph.Org libVorbis I 20020717".

void addField(String $key, String $value, BOOL $replace = TRUE)

Add the field specified by $key with the data $value. If $replace is true, then all of the other fields with the same key will be removed frist.

If the field value is empty, the field will be removed.

void removeField(String $key, String $value = String::null)

Remove the field specified by $key with the data $value. If $value is null, all of the fields with the given key will be removed.

ByteVector render()

Renders the comment to a ByteVector suitable for inserting into a file.

ByteVector render(BOOL $addFramingBit)

Renders the comment to a ByteVector suitable for inserting into a file. If $addFramingBit is true the standard Vorbis comment framing bit will be appended. However some formats (notably FLAC) do not work with this in place.

EXPORT

None by default.

SEE ALSO

Top

Audio::TagLib Tag

AUTHOR

Top

Dongxu Ma, <dongxu@cpan.org>

COPYRIGHT AND LICENSE

Top


Audio-TagLib documentation Contained in the Audio-TagLib distribution.

package Audio::TagLib::Ogg::XiphComment;

use 5.008003;
use strict;
use warnings;

our $VERSION = '1.41';

use Audio::TagLib;

our @ISA = qw(Audio::TagLib::Tag);

# Preloaded methods go here.

1;
__END__
# Below is stub documentation for your module. You'd better edit it!