Audio::TagLib::ID3v2::Frame - ID3v2 frame implementation


This class is the main ID3v2 frame implementation. In ID3v2, a tag is split between a collection of frames (which are in turn split into fields. This class provides an API for gathering information about and modifying ID3v2 frames. Funtionallity specific to a given frame type is handed in one of the many subclasses.


Destroys this Frame instance.

ByteVector frameID()

Returns the Frame ID.

UV size()

Returns the size of the frame.

UV headerSize() [static]

Returns the size of the frame header.

This is only accurate for ID3v2.3 or ID3v2.4. Please use the call below which accepts an ID3v2 version number. In the next non-binary compatible release this will be made into a non-static member that checks the internal ID3v2 version.

UV headerSize(UV version) [static]

Returns the size of the frame header for the given ID3v2 version.

Please see the explanation above.

void setData(ByteVector $data)

Sets the data that will be used as the frame. Since the length is not known before the frame has been parsed, this should just be a pointer to the first byte of the frame. It will determine the length internally and make that available through size().

void setText(String $text)

Set the text of frame in the sanest way possible. This should only be reimplemented in frames where there is some logical mapping to text.

NOTE If the frame type supports multiple text encodings, this will not change the text encoding of the frame; the string will be converted to that frame's encoding. Please use the specific APIs of the frame types to set the encoding if that is desired.

String toString() [pure virtual]

This returns the textual representation of the data in the frame. Subclasses must reimplement this method to provide a string representation of the frame's data.

ByteVector render()

Render the frame back to its binary format in a ByteVector.

ByteVector textDelimiter(PV $t) [static]

Returns the text delimiter that is used between fields for the string type $t.


None by default.




Dongxu Ma, <>


Copyright (C) 2005 by Dongxu Ma

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.7 or, at your option, any later version of Perl 5 you may have available.