| Commit message (Collapse) | Author | Files | Lines |
|
av_open_input_stream() has been deprecated.
|
|
AVMetadata has been deprecated.
|
|
|
|
It's a no-op and deprecated.
|
|
|
|
avcodec_decode_audio3() has been added in libavformat 52.25.0, and the
predecessor avcodec_decode_audio2() has been deprecated.
|
|
|
|
fixes build with lavc 53.
|
|
For ffmpeg < 0.5. Copied from libavutil 0.5.
|
|
avcodec_decode_audio3() has been added in libavformat 52.25.0, and the
predecessor avcodec_decode_audio2() has been deprecated.
|
|
|
|
All modern distros ship 0.5, so there's no need to support old and buggy
ffmpeg versions.
|
|
|
|
.. instead of av_get_bits_per_sample_format(). The SampleFormat enum
value is authoritative.
|
|
libavformat 0.6 does not pass the original URI pointer to the "open"
method, which leads to a crash because MPD was using a dirty hack to
pass a pointer to that method.
This patch switches to av_open_input_stream() with a custom
ByteIOContext class, instead of doing the URI string hack with
av_open_input_file().
Loosely based on a patch from Jasper St. Pierre.
|
|
Use the libavformat function av_probe_input_format() to probe the
AVInputFormat, instead of letting av_open_input_file() do it
implicitly. We will switch to av_open_input_stream() very soon, which
does not have the probing code.
Loosely based on a patch from Jasper St. Pierre.
|
|
in some formats, e.g. vorbis, the metadata is stored per-stream.
|
|
|
|
|
|
What's happening is the `ptr' argument to that function is NULL for me
every time. `ptr' is unconditionally dereferenced to generate a log
message, and this is where mpd crashes.
Attached is a simple patch that tests for NULL and omits the log. With
this patch the crash disappeared and mpd went back to working well.
|
|
|
|
|
|
Pass everything to the GLib logging library. No direct stderr access.
|
|
The pointer is invalid if av_open_input_file() fails.
|
|
|
|
|
|
|
|
Don't use the function ffmpeg_helper(), don't initialize the codec.
|
|
Fix a memory leak in some code paths.
|
|
Use input_stream.uri.
|
|
Make it X_decoder_plugin.c.
|
|
This function replaces the replay_gain_info parameter for
decoder_data(). This allows the decoder to announce replay gain
changes, instead of having to pass the same object over and over.
|
|
|
|
This patch changes the following decoder plugins to implement
stream_tag() instead of tag_dup():
faad, ffmpeg, mad, modplug, mp4ff, mpcdec, oggflac
This simplifies their code, because they do not need to take care of
opening/closing the stream.
|
|
Support deprecated MIME types such as "audio/x-ogg". Support new
types such as "audio/flac".
|
|
Remove the data_time parameter from decoder_data(). This patch
eliminates the timestamp counting in most decoder plugins, because the
MPD core will do it automatically by default.
|
|
|
|
This patch prepares support for floating point samples (and probably
other formats). It changes the meaning of the "bits" attribute from a
bit count to a symbolic value.
|
|
The plugin code tried to force libavcodec to supply stereo samples.
That however has never actually worked. By removing this code, we are
able to play surround files for the first time.
|
|
On some platforms, libavcodec wants the output buffer aligned to 16
bytes (because it uses SSE/Altivec internally). It will segfault when
you don't obey this rule.
|
|
Let the audio_check library verify the audio format in all (relevant,
i.e. non-hardcoded) plugins.
|
|
After we've been hit by Large File Support problems several times in
the past week (which only occur on 32 bit platforms, which I don't
have), this is yet another attempt to fix the issue.
|
|
libavformat gives us the song artist in the "author" field. Since we
use av_metadata_conv(), we don't need to check for "artist".
|
|
Convert the metadata with the libavformat function av_metadata_conv().
This ensures that canonical tag names are provided by libavformat, and
we can remove the "artist" vs "author" workaround.
|
|
|
|
Usually, we read our "artist" tag from ffmpeg's "author" tag. In some
cases however (e.g. APE), this tag is named "artist". This patch
implements a fallback: if no "author" is found, MPD tries to use
"artist".
|
|
|
|
It makes no difference right now, but we're about to add an endianness
flag and will want to make sure it's correctly initialised every time.
|
|
Call av_metadata_get() in a loop.
|
|
|