36 #if defined HAVE_SYS_PARAM_H
37 #include <sys/param.h>
51 size_t track = id3::v2::getTrackNum(tag);
52 String comment = id3::v2::getV1Comment(tag);
63 writer.
writeChar((
char) id3::v2::getGenreNum(tag));
73 if (frame) frame->Render(writer);
83 ID3D_WARNING(
"id3::v2::render(): no frames to render" );
87 ID3D_NOTICE(
"id3::v2::render(): rendering" );
101 ID3D_NOTICE(
"id3::v2::render(): rendering frames" );
102 renderFrames(frmWriter, tag);
107 ID3D_NOTICE(
"id3::v2::render(): rendering unsynced frames" );
109 renderFrames(uw, tag);
111 ID3D_NOTICE(
"id3::v2::render(): numsyncs = " << uw.
getNumSyncs() );
114 size_t frmSize = frms.size();
117 ID3D_WARNING(
"id3::v2::render(): rendered frame size is 0 bytes" );
123 ID3D_NOTICE(
"id3::v2::render(): padding size = " << nPadding );
131 for (
size_t i = 0; i < nPadding; ++i)
142 if (this->NumFrames() == 0)
149 size_t bytesUsed = hdr.
Size();
151 size_t frameBytes = 0;
152 for (
const_iterator cur = _frames.begin(); cur != _frames.end(); ++cur)
156 (*cur)->SetSpec(this->GetSpec());
157 frameBytes += (*cur)->Size();
166 bytesUsed += frameBytes;
168 if (this->GetUnsync())
170 bytesUsed += bytesUsed / 3;
173 bytesUsed += this->PaddingSize(bytesUsed);
188 #define ID3_PADMULTIPLE (2048)
189 #define ID3_PADMAX (4096)
222 newSize = tempSize -
ID3_GetDataSize(*
this) - this->GetAppendedBytes () -
226 return newSize - curSize;