Age | Commit message (Collapse) | Author |
|
--HG--
rename : src/xine-engine/xine_internal.h => include/xine/xine_internal.h
rename : src/demuxers/demux_ogg.c => src/combined/xine_ogg_demuxer.c
|
|
--HG--
rename : src/libdts/xine_dts_decoder.c => src/audio_dec/xine_dts_decoder.c
rename : src/libmusepack/xine_musepack_decoder.c => src/audio_dec/xine_musepack_decoder.c
|
|
--HG--
rename : src/xine-engine/buffer.h => include/xine/buffer.h
|
|
|
|
|
|
Codec was never opened when using mpeg12 mode.
|
|
This makes HEADERS optional for codecs that don't require extradata.
imported patch 10124.diff
|
|
imported patch 10123.diff
|
|
imported patch 10121.diff
|
|
imported patch 10120.diff
|
|
imported patch 10119.diff
|
|
imported patch 10116.diff
|
|
imported patch 10115.diff
|
|
|
|
handling to separate function.
|
|
--HG--
rename : src/xine-engine/buffer.h => include/xine/buffer.h
rename : src/libxineadec/xine_lpcm_decoder.c => src/audio_dec/xine_lpcm_decoder.c
rename : src/libspuhdmv/xine_hdmv_decoder.c => src/spu_dec/spuhdmv_decoder.c
|
|
|
|
|
|
Certain ffmpeg audio decoders use 32 bit float samples internally (wma,
eac3, ...). They are then exported to the calling application as 16 bit
integer.
That conversion is done by faster sse2 code if your processor supports it.
However, sse2 instructions require data buffers to be 16 byte aligned, or
hit a segfault otherwise.
Plain malloc() / realloc() ensures only 8 byte alignment, giving a 50%
chance of a crash.
FFmpeg internally uses aligned buffers a lot. It seems to be a good idea to
do likewise for input buffers as well, even if current version does not
strictly need it yet.
Libavutil/av_realloc() has a bug that can break the alignment when enlarging
an existing buffer. Thus I included a fixed version of it within
ff_audio_decoder.c.
|
|
audio channels. So we must keep discarding packets that cannot be used to
initialise the codec until we receive one that can be.
|
|
|
|
|
|
|
|
|
|
I've now tested this patch on Fedora 15 (FFmpeg 0.7) and Fedora 14 (FFmpeg
0.6), and am happy to report that it works fine on F15 and doesn't break
xine-lib on F14. On F14, it also has the happy side effect of no longer
trying to decode an LATM AAC stream with the xineplug_decode_faad.so plugin.
(Which was something which never ended well anyway.)
|
|
|
|
|
|
avcodec_thread_init() was deprecated in lavc 52.112.0 (2011-02-09)
|
|
This is a backport of the 1.2 code that was commited to utilize the new API
provided by FFmpeg for awhile now but this is especially important because
the old API has been eliminated all together from said copies of FFmpeg.
|
|
|
|
|
|
|
|
input_vdr.c cannot send buffers with preview flag set after a decoder
reset. Therefore, the decoder didn't get initialized anymore. So we
need to call ff_handle_preview_buffer() even with real data as long
as we are in decoder_init_mode to get a decoder initialized.
|
|
--HG--
rename : doc/hackersguide/internals.sgml => doc/hackersguide/internals.docbook
rename : doc/hackersguide/library.sgml => doc/hackersguide/library.docbook
rename : include/xine.h.in => include/xine.h
rename : src/xine-engine/buffer.h => include/xine/buffer.h
rename : src/demuxers/demux_ogg.c => src/combined/xine_ogg_demuxer.c
|
|
|
|
|
|
--HG--
rename : src/libspudec/xine_spu_decoder.c => src/spu_dec/spu_decoder.c
rename : src/libspudec/spu.c => src/spu_dec/spudec.c
rename : src/libspudec/spu.h => src/spu_dec/spudec.h
|
|
|
|
|
|
--HG--
rename : src/xine-engine/buffer.h => include/xine/buffer.h
rename : src/libxineadec/xine_lpcm_decoder.c => src/audio_dec/xine_lpcm_decoder.c
|
|
Rename "wmav3" to "wmapro" in xine-lib's internals to line up xine-lib's
nomenclature with what everyone else calls it and knows it as.
[Tweaked by ds to avoid API change.]
Tell xine-lib that when it finds wmapro, look to ffmpeg.
ffmpeg's wmapro decoder is unique in that it puts out samples that
are floats, not 16-bit ints. These need to be converted.
This requires external ffmpeg.
|
|
|
|
|
|
|
|
|
|
We pretend that it's 16-bit to avoid "audio device unavailable" (ALSA).
Also, the clock is a bit fast.
|
|
|
|
|
|
|
|
There are two tricks to make VC1 decoding work:
1) VC1 sequence and entry point headers must be present in context->extradata.
2) video width and height must be known when opening decoder.
Some container formats store required extra data, but mpeg-ts does not.
1) is fixed by scanning the stream for headers and discarding all data until
proper headers are found.
2) is fixed by re-opening decoder with width and height information from
first open.
|