Subject: Re: how must I align buffers passed to
mad_stream_buffer? - msg#00003
On Sat, 2003-11-15 at 09:18, Jedediah Smith wrote:
> My decoder uses an arbitrary buffer length and passes data blocks of this
> size, read from the MP3 file, to mad_stream_buffer. However, MAD throws a
> "lost synchronization" error immediately after returning from the input
> callback which feeds the data to mad_stream_buffer. The resulting decoded
> audio has artifacts at the equivelant locations.
>
> Clearly mad expects the MP3 data to be aligned, perhaps on frame
> boundaries, but I can't find any mention of this in the source comments.
I'll save Rob the trouble of repeating himself and quote what he wrote
to me when I asked the same question:
"Each time you refill your buffer, you need to preserve the data in your
existing buffer from stream.next_frame to the end.
"This usually amounts to calling memmove() on this unconsumed portion of
the buffer and appending new data after it, before calling
mad_stream_buffer()"
Josh
Thread at a glance:
Previous Message by Date:
Re: [mad-user] Build problem with cygwin/mingw
This doesn't work.. error looks like this:
/usr/bin/install -c .libs/libmad.lai
c:\source\vc\mixer\libmad/lib/libmad.la
/usr/bin/install: cannot create regular file
`c:sourcevcmixerlibmad/lib/libmad.la': No such file or directory
Those windows paths just aren't making it through everything without
getting mangled.
How exactly would I install manually? Just copy libmad.a?
On Fri, 14 Nov 2003 14:22:02 -0800, Rob Leslie <rob@xxxxxxxx> wrote:
[Note Reply-To.]
On Nov 14, 2003, at 12:52 PM, Jedediah Smith wrote:
Following steps were followed:
./configure --host=mingw32 --prefix==/cygdrive/c/source/vc/mixer/libmad
Configure step goes fine. The prefix is the dir I want to install to
e.g. c:\source\vc\mixer\libmad which already exists.
[...]
ranlib /cygdrive/c/source/vc/mixer/libmad/lib/libmad.a
c:\mingw\bin\ranlib.exe:
/cygdrive/c/source/vc/mixer/libmad/lib/libmad.a: No such file or
directory
[...]
It looks like ranlib is being passed the cygwin version of the path but
it doesn't recognize it as it's part of mingw and only allows normal
Windows paths. What shall I do about this?
I think both Cygwin and Mingw understand Windows paths, so try:
./configure --host=mingw32 --prefix='C:\\source\\vc\\mixer\\libmad'
If not you can just install the library by hand; libmad doesn't hardcode
any paths from the configured prefix, so it's safe to omit.
Next Message by Date:
Re: Build problem with cygwin/mingw
On Nov 15, 2003, at 6:28 AM, Jedediah Smith wrote:
This doesn't work.. error looks like this:
/usr/bin/install -c .libs/libmad.lai
c:\source\vc\mixer\libmad/lib/libmad.la
/usr/bin/install: cannot create regular file
`c:sourcevcmixerlibmad/lib/libmad.la': No such file or directory
Those windows paths just aren't making it through everything without
getting mangled.
I guess you could try using forward slashes instead of backslashes. I
think both are legal path separators under DOS/Windows.
How exactly would I install manually? Just copy libmad.a?
Yes. You may also want to copy the mad.h header file.
--
Rob Leslie
rob@xxxxxxxx
Previous Message by Thread:
how must I align buffers passed to mad_stream_buffer?
My decoder uses an arbitrary buffer length and passes data blocks of this
size, read from the MP3 file, to mad_stream_buffer. However, MAD throws a
"lost synchronization" error immediately after returning from the input
callback which feeds the data to mad_stream_buffer. The resulting decoded
audio has artifacts at the equivelant locations.
Clearly mad expects the MP3 data to be aligned, perhaps on frame
boundaries, but I can't find any mention of this in the source comments.
Next Message by Thread:
Re: [mad-user] Build problem with cygwin/mingw
This doesn't work.. error looks like this:
/usr/bin/install -c .libs/libmad.lai
c:\source\vc\mixer\libmad/lib/libmad.la
/usr/bin/install: cannot create regular file
`c:sourcevcmixerlibmad/lib/libmad.la': No such file or directory
Those windows paths just aren't making it through everything without
getting mangled.
How exactly would I install manually? Just copy libmad.a?
On Fri, 14 Nov 2003 14:22:02 -0800, Rob Leslie <rob@xxxxxxxx> wrote:
[Note Reply-To.]
On Nov 14, 2003, at 12:52 PM, Jedediah Smith wrote:
Following steps were followed:
./configure --host=mingw32 --prefix==/cygdrive/c/source/vc/mixer/libmad
Configure step goes fine. The prefix is the dir I want to install to
e.g. c:\source\vc\mixer\libmad which already exists.
[...]
ranlib /cygdrive/c/source/vc/mixer/libmad/lib/libmad.a
c:\mingw\bin\ranlib.exe:
/cygdrive/c/source/vc/mixer/libmad/lib/libmad.a: No such file or
directory
[...]
It looks like ranlib is being passed the cygwin version of the path but
it doesn't recognize it as it's part of mingw and only allows normal
Windows paths. What shall I do about this?
I think both Cygwin and Mingw understand Windows paths, so try:
./configure --host=mingw32 --prefix='C:\\source\\vc\\mixer\\libmad'
If not you can just install the library by hand; libmad doesn't hardcode
any paths from the configured prefix, so it's safe to omit.