Audio-TagLib

 view release on metacpan or  search on metacpan

lib/Audio/TagLib/ID3v2/Header.pm  view on Meta::CPAN

=item I<UV majorVersion()>

Returns the major version number. (Note: This is the 4, not the 2 in
 ID3v2.4.0. The 2 is implied.)

=item I<UV revisionNumber()>

Returns the revision number. (Note: This is the 0, not the 4 in
ID3v2.4.0. The 2 is implied.)

=item I<BOOL unsynchronisation()>

Returns true if unsynchronisation has been applied to all frames.

=item I<BOOL extendedHeader()>

Returns true if an extended header is present in the tag.

=item I<BOOL experimentalIndicator()>

Returns true if the experimental indicator flag is set.

=item I<BOOL footerPresent()>

t/TagLib_ID3v2_Header.t  view on Meta::CPAN

    # which is not accessible at this point
    while ( $l < $bv->size() ) {
        push @unpacked_bv, unpack 'C', $$iter;
        $iter->next();
        $l++;
    }
    return \@unpacked_bv;
}

my @methods = qw(new DESTROY majorVersion revisionNumber
unsynchronisation extendedHeader experimentalIndicator footerPresent
tagSize completeTagSize setTagSize setData render size fileIdentifier);
can_ok("Audio::TagLib::ID3v2::Header", @methods) 							or 
	diag("can_ok failed");

cmp_ok(Audio::TagLib::ID3v2::Header->size(), '==', 10)                                                or
    diag("static method size() failed");
cmp_ok(Audio::TagLib::ID3v2::Header->fileIdentifier(), 'eq', Audio::TagLib::ByteVector->new('ID3'))                                                or
    diag("static method fileIdentifier() failed");

my $i = Audio::TagLib::ID3v2::Header->new();
isa_ok($i, "Audio::TagLib::ID3v2::Header") 								    or 
	diag("method new() failed");
cmp_ok($i->majorVersion(), '==', 4)                                         or
	diag("method majorVersion() failed");
cmp_ok($i->revisionNumber(), '==', 0)                                       or
	diag("method revisionNumber() failed");
cmp_ok($i->unsynchronisation(), '==', 0)                                    or
	diag("method unsynchronisation() failed");
cmp_ok($i->experimentalIndicator(), '==', 0)                                or
	diag("method experimentalIndicator() failed");
cmp_ok($i->extendedHeader(), '==', 0)                                       or
	diag("method extendedHeader() failed");
cmp_ok($i->footerPresent(), '==', 0)                                        or
	diag("method footerPresent() failed");
cmp_ok($i->tagSize(), '==', 0)                                              or
    diag("method tagSize() failed");
cmp_ok($i->completeTagSize(), '==', 10)                                     or
    diag("method completeTagSize() failed");

t/TagLib_ID3v2_Header.t  view on Meta::CPAN

my $data = Audio::TagLib::ByteVector->new($head, 10);
$i = Audio::TagLib::ID3v2::Header->new($data);
isa_ok($i, "Audio::TagLib::ID3v2::Header") 								    or 
	diag("method new(bytevector) failed");
cmp_ok($i->size(), '==', 10)                                                or
	diag("method new(bytevector) failed");
cmp_ok($i->majorVersion(), '==', 2)                                         or
	diag("method majorVersion() failed");
cmp_ok($i->revisionNumber(), '==', 3)                                       or
	diag("method revisionNumber() failed");
cmp_ok($i->unsynchronisation(), '==', 1)                                    or
	diag("method unsynchronisation() failed");
cmp_ok($i->experimentalIndicator(), '==', 1)                                or
	diag("method experimentalIndicator() failed");
cmp_ok($i->extendedHeader(), '==', 1)                                       or
	diag("method extendedHeader() failed");
cmp_ok($i->footerPresent(), '==', 1)                                        or
	diag("method footerPresent() failed");

chomp(my $ver = qx{taglib-config --version});
$is18 = $ver >= version->declare('1.8');

t/TagLib_ID3v2_Header.t  view on Meta::CPAN


# Patch Festus-03 rt.cpan.org #79942
#$new_head = "ID3\x{04}\x{0}\x{20}\x{0}\x{0}\x{0}\x{0}";
# 9/25/2012
# According to taglib-1.8/taglib/mpeg/id3v2/id3v2header.cpp:render()
# The version is always set to 2.4.0 (4.0), however as of taglib-1.8
#   The majorVersion is carried through as is.
#   The revisionNumber is set to 0 (Zero).
#   The experimentalIndicator flag is carried through as is.
#   The rest are unsupported by taglib therfore set to false:
#     unsynchronisation
#     extendedHeader
#     footerPresent
#

# Mod for 1.63 - Make the data version-dependent

$new_head = $is18 ? "ID3\x{02}\x{0}\x{20}\x{0}\x{0}\x{0}\x{0}" :
                    "ID3\x{04}\x{0}\x{20}\x{0}\x{0}\x{0}\x{0}";
$new_data = Audio::TagLib::ByteVector->new($new_head, 10);
$new = convert_bytevector($new_data);

xs/id3v2header.xs  view on Meta::CPAN

	RETVAL

unsigned int 
TagLib::ID3v2::Header::revisionNumber()
CODE:
	RETVAL = THIS->revisionNumber();
OUTPUT:
	RETVAL

bool 
TagLib::ID3v2::Header::unsynchronisation()
CODE:
	RETVAL = THIS->unsynchronisation();
OUTPUT:
	RETVAL

bool 
TagLib::ID3v2::Header::extendedHeader()
CODE:
	RETVAL = THIS->extendedHeader();
OUTPUT:
	RETVAL



( run in 0.891 second using v1.01-cache-2.11-cpan-9581c071862 )