MP4-File
view release on metacpan or search on metacpan
MP4FILE::new()
CODE:
Newxz(RETVAL, 1, MP4FILE);
RETVAL->fh = MP4_INVALID_FILE_HANDLE;
OUTPUT:
RETVAL
void
MP4FILE::DESTROY()
PPCODE:
if (MP4_IS_VALID_FILE_HANDLE(THIS->fh))
{
MP4Close(THIS->fh);
}
Safefree(THIS);
bool
MP4FILE::Close()
PPCODE:
if (MP4_IS_VALID_FILE_HANDLE(THIS->fh))
{
MP4Close(THIS->fh);
THIS->fh = MP4_INVALID_FILE_HANDLE;
}
XSRETURN_YES;
bool
MP4FILE::Read(fileName, verbosity = 0)
const char *fileName;
CODE:
RETVAL = MP4GetVerbosity(THIS->fh);
OUTPUT:
RETVAL
void
MP4FILE::SetVerbosity(verbosity)
u_int32_t verbosity;
PPCODE:
MP4SetVerbosity(THIS->fh, verbosity);
MP4TrackId
MP4FILE::FindTrackId(index, type = NULL, subType = 0)
u_int16_t index;
const char *type;
u_int8_t subType;
CODE:
RETVAL = MP4FindTrackId(THIS->fh, index, type, subType);
MP4GetMetadataWriter,
MP4GetMetadataComment,
MP4GetMetadataTool,
MP4GetMetadataYear,
MP4GetMetadataAlbum,
MP4GetMetadataGenre,
MP4GetMetadataGrouping
};
char *value;
PPCODE:
if (fp[ix](THIS->fh, &value) && value != NULL)
{
ST(0) = newSVpv(value, 0);
SvUTF8_on(ST(0));
free(value);
XSRETURN(1);
}
XSRETURN_UNDEF;
RETVAL
void
MP4FILE::GetMetadataCoverArt(index = 0)
u_int32_t index
PREINIT:
u_int8_t *data;
u_int32_t length;
PPCODE:
if (MP4GetMetadataCoverArt(THIS->fh, &data, &length _v19ARG(index)))
{
if (data != NULL)
{
ST(0) = newSVpvn((const char *) data, length);
free(data);
}
else
{
ST(0) = newSVpvn("", 0);
ALIAS:
GetMetadataDisk = 1
PREINIT:
static bool (*fp[])(MP4FileHandle, u_int16_t *, u_int16_t *) = {
MP4GetMetadataTrack,
MP4GetMetadataDisk
};
u_int16_t curr, total;
PPCODE:
if (fp[ix](THIS->fh, &curr, &total))
{
EXTEND(SP, 2);
ST(0) = newSVuv(curr);
ST(1) = newSVuv(total);
XSRETURN(2);
}
XSRETURN_EMPTY;
RETVAL = fp[ix](THIS->fh, curr, total);
OUTPUT:
RETVAL
void
MP4FILE::GetMetadataTempo()
PREINIT:
u_int16_t tempo;
PPCODE:
if (MP4GetMetadataTempo(THIS->fh, &tempo))
{
XSRETURN_UV(tempo);
}
XSRETURN_UNDEF;
bool
MP4FILE::SetMetadataTempo(tempo)
u_int16_t tempo
RETVAL = MP4SetMetadataTempo(THIS->fh, tempo);
OUTPUT:
RETVAL
void
MP4FILE::GetMetadataCompilation()
PREINIT:
u_int8_t cpl;
PPCODE:
if (MP4GetMetadataCompilation(THIS->fh, &cpl))
{
if (cpl)
XSRETURN_YES;
else
XSRETURN_NO;
}
XSRETURN_UNDEF;
( run in 2.008 seconds using v1.01-cache-2.11-cpan-5511b514fd6 )