osdir.com
mailing list archive F.A.Q. -since 2001!



Subject: Re: how must I align buffers passed to
mad_stream_buffer? - msg#00003

List: audio.mad.devel

Mail Archive Navigation:
by Date: Prev Next Date Index by Thread: Prev Next Thread Index

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.
blog comments powered by Disqus

Home | News | Sitemap | FAQ | advertise | OSDir is an Inevitable website. GBiz & git.net are too!