Audio-Scan
view release on metacpan or search on metacpan
- ASF: Fixed bug with empty script command names.
- ASF: Support Extended Content Encryption.
0.04 2009-04-12 16:10:00
- ASF: Support for Content Encryption, Extended Content
Encryption, Script Command, and Digital Signature objects.
- ASF: Fixed handling of multiple WM/Picture tags.
0.03 2009-04-11 14:30:00
- Fixed big-endian GUID issues with ASF.
- (libid3tag) Updated to latest config.guess.
0.02 2009-04-10 17:15:00
- ASF (WMA/WMV) parsing support.
- Improved directory structure.
- Added build instructions for Win32.
- Skip FLAC tests if FLAC support was not built.
- Don't try and build Universal Binary on PPC Macs.
- Fixed #define MIN for platforms that don't have it.
0.01 2009-04-03 11:00:00
include/ppport.h view on Meta::CPAN
#ifndef UV_MAX
# define UV_MAX PERL_ULONG_MAX
#endif
#endif
#ifndef IVSIZE
# ifdef LONGSIZE
# define IVSIZE LONGSIZE
# else
# define IVSIZE 4 /* A bold guess, but the best we can make. */
# endif
#endif
#ifndef UVTYPE
# define UVTYPE unsigned IVTYPE
#endif
#ifndef UVSIZE
# define UVSIZE IVSIZE
#endif
int8_t encoding = -1;
uint8_t buffer_art = ( !strcmp(id, "APIC") ) ? 1 : 0;
uint8_t skip_art = ( buffer_art && _env_true("AUDIO_SCAN_NO_ARTWORK") ) ? 1 : 0;
// Bug 16703, a completely empty frame is against the rules, skip it
if (!size)
return 1;
if (skip_art) {
// Only buffer enough for the APIC header fields, this is only a rough guess
// because the description could technically be very long
if ( !_check_buf(id3->infile, id3->buf, 128, ID3_BLOCK_SIZE) ) {
return 0;
}
DEBUG_TRACE(" partial read due to AUDIO_SCAN_NO_ARTWORK\n");
}
else {
// Use a special buffering mode for binary artwork, to avoid
// using 2x the memory of the APIC frame (once for buffer, once for SV)
if (buffer_art) {
src/jenkins_hash.c view on Meta::CPAN
on 1 byte), but shoehorning those bytes into integers efficiently is messy.
-------------------------------------------------------------------------------
*/
#ifdef linux
#include <sys/param.h> /* attempt to define endianness */
#include <endian.h> /* attempt to define endianness */
#endif
/*
* My best guess at if you are big-endian or little-endian. This may
* need adjustment.
*/
#if (defined(__BYTE_ORDER) && defined(__LITTLE_ENDIAN) && \
__BYTE_ORDER == __LITTLE_ENDIAN) || \
(defined(i386) || defined(__i386__) || defined(__i486__) || \
defined(__i586__) || defined(__i686__) || defined(vax) || defined(MIPSEL))
# define HASH_LITTLE_ENDIAN 1
# define HASH_BIG_ENDIAN 0
#elif (defined(__BYTE_ORDER) && defined(__BIG_ENDIAN) && \
__BYTE_ORDER == __BIG_ENDIAN) || \
uint16_t genre_num = buffer_get_short(mp4->buf);
if (genre_num > 0 && genre_num < NGENRES + 1) {
genre_string = _id3_genre_index(genre_num - 1);
my_hv_store_ent( mp4->tags, key, newSVpv( genre_string, 0 ) );
}
return 1;
}
else {
// Other binary type, try to guess type based on size
uint32_t dsize = size - 8;
if (dsize == 1) {
value = newSVuv( buffer_get_char(mp4->buf) );
}
else if (dsize == 2) {
value = newSVuv( buffer_get_short(mp4->buf) );
}
else if (dsize == 4) {
value = newSVuv( buffer_get_int(mp4->buf) );
( run in 0.787 second using v1.01-cache-2.11-cpan-702932259ff )