Changeset e9e8b069d0538fd3551bae5f0c30fb7457939a7e
- Timestamp:
- 21/11/02 22:37:46
(6 years ago)
- Author:
- Gildas Bazin <gbazin@videolan.org>
- git-committer:
- Gildas Bazin <gbazin@videolan.org> 1037914666 +0000
- git-parent:
[8e3e302dffe73b199cbfbb5faf6ce95cc0247a3f]
- git-author:
- Gildas Bazin <gbazin@videolan.org> 1037914666 +0000
- Message:
* modules/codec/Modules.am, configure.ac.in, modules/codec/vorbis.c: added
a tremor decoder module using libvorbisidec (aka tremor) from xiph.org.
This module allows decoding vorbis audio on hardware without a fpu
(--enable-tremor).
* modules/LIST: added entries for tremor and theora.
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r1fdc92c |
re9e8b06 |
|
| 1503 | 1503 | PLUGINS="${PLUGINS} vorbis" |
|---|
| 1504 | 1504 | LDFLAGS_vorbis="${LDFLAGS_vorbis} -lvorbis -logg" |
|---|
| | 1505 | ],[]) |
|---|
| | 1506 | fi |
|---|
| | 1507 | |
|---|
| | 1508 | dnl |
|---|
| | 1509 | dnl Tremor plugin |
|---|
| | 1510 | dnl |
|---|
| | 1511 | AC_ARG_ENABLE(tremor, |
|---|
| | 1512 | [ --enable-tremor Tremor decoder support (default disabled)]) |
|---|
| | 1513 | if test "x${enable_tremor}" = "xyes" |
|---|
| | 1514 | then |
|---|
| | 1515 | AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [ |
|---|
| | 1516 | PLUGINS="${PLUGINS} tremor" |
|---|
| | 1517 | LDFLAGS_tremor="${LDFLAGS_tremor} -lvorbisidec -logg" |
|---|
| 1505 | 1518 | ],[]) |
|---|
| 1506 | 1519 | fi |
|---|
| r62fd025 |
re9e8b06 |
|
| 1 | 1 | List of vlc plugins |
|---|
| 2 | | $Id: LIST,v 1.4 2002/11/18 13:02:16 gbazin Exp $ |
|---|
| | 2 | $Id: LIST,v 1.5 2002/11/21 21:37:46 gbazin Exp $ |
|---|
| 3 | 3 | |
|---|
| 4 | 4 | * a52_system: input module for A52 decapsulation. |
|---|
| … | … | |
| 138 | 138 | * spudec: DVD subtitles decoder. |
|---|
| 139 | 139 | |
|---|
| | 140 | * theora: a theora video decoder using the libtheora library. |
|---|
| | 141 | |
|---|
| | 142 | * tremor: a vorbis audio decoder using the libvorbisidec (aka tremor) library. |
|---|
| | 143 | |
|---|
| 140 | 144 | * vcd: input module for accessing Video CDs. |
|---|
| 141 | 145 | |
|---|
| r36b7d8e |
re9e8b06 |
|
| 5 | 5 | SOURCES_tarkin = modules/codec/tarkin.c |
|---|
| 6 | 6 | SOURCES_theora = modules/codec/theora.c |
|---|
| | 7 | SOURCES_tremor = modules/codec/vorbis.c |
|---|
| 7 | 8 | SOURCES_dv = modules/codec/dv.c |
|---|
| 8 | 9 | SOURCES_xvid = modules/codec/xvid.c |
|---|
| r42c7869 |
re9e8b06 |
|
| 3 | 3 | ***************************************************************************** |
|---|
| 4 | 4 | * Copyright (C) 1999-2001 VideoLAN |
|---|
| 5 | | * $Id: vorbis.c,v 1.6 2002/11/15 00:41:00 gbazin Exp $ |
|---|
| | 5 | * $Id: vorbis.c,v 1.7 2002/11/21 21:37:46 gbazin Exp $ |
|---|
| 6 | 6 | * |
|---|
| 7 | 7 | * Authors: Gildas Bazin <gbazin@netcourrier.com> |
|---|
| … | … | |
| 36 | 36 | |
|---|
| 37 | 37 | #include <ogg/ogg.h> |
|---|
| | 38 | #ifdef MODULE_NAME_IS_tremor |
|---|
| | 39 | #include <tremor/ivorbiscodec.h> |
|---|
| | 40 | #else |
|---|
| 38 | 41 | #include <vorbis/codec.h> |
|---|
| | 42 | #endif |
|---|
| 39 | 43 | |
|---|
| 40 | 44 | /***************************************************************************** |
|---|
| … | … | |
| 96 | 100 | static int GetOggPacket ( dec_thread_t *, ogg_packet *, mtime_t * ); |
|---|
| 97 | 101 | |
|---|
| | 102 | #ifdef MODULE_NAME_IS_tremor |
|---|
| | 103 | static void Interleave ( int32_t *, const int32_t **, int, int ); |
|---|
| | 104 | #else |
|---|
| 98 | 105 | static void Interleave ( float *, const float **, int, int ); |
|---|
| | 106 | #endif |
|---|
| 99 | 107 | |
|---|
| 100 | 108 | /***************************************************************************** |
|---|
| … | … | |
| 185 | 193 | vorbis_block_init( &p_dec->vd, &p_dec->vb ); |
|---|
| 186 | 194 | |
|---|
| | 195 | #ifdef MODULE_NAME_IS_tremor |
|---|
| | 196 | p_dec->output_format.i_format = VLC_FOURCC('f','i','3','2'); |
|---|
| | 197 | #else |
|---|
| 187 | 198 | p_dec->output_format.i_format = VLC_FOURCC('f','l','3','2'); |
|---|
| | 199 | #endif |
|---|
| 188 | 200 | p_dec->output_format.i_physical_channels = |
|---|
| 189 | 201 | p_dec->output_format.i_original_channels = |
|---|
| … | … | |
| 242 | 254 | aout_buffer_t *p_aout_buffer; |
|---|
| 243 | 255 | ogg_packet oggpacket; |
|---|
| | 256 | #ifdef MODULE_NAME_IS_tremor |
|---|
| | 257 | int32_t **pp_pcm; |
|---|
| | 258 | #else |
|---|
| 244 | 259 | float **pp_pcm; |
|---|
| | 260 | #endif |
|---|
| 245 | 261 | int i_samples; |
|---|
| 246 | 262 | mtime_t i_pts; |
|---|
| … | … | |
| 279 | 295 | |
|---|
| 280 | 296 | /* Interleave the samples */ |
|---|
| 281 | | Interleave( (float *)p_aout_buffer->p_buffer, (const float **)pp_pcm, |
|---|
| 282 | | p_dec->vi.channels, i_samples ); |
|---|
| | 297 | #ifdef MODULE_NAME_IS_tremor |
|---|
| | 298 | Interleave( (int32_t *)p_aout_buffer->p_buffer, |
|---|
| | 299 | (const int32_t **)pp_pcm, p_dec->vi.channels, i_samples ); |
|---|
| | 300 | #else |
|---|
| | 301 | Interleave( (float *)p_aout_buffer->p_buffer, |
|---|
| | 302 | (const float **)pp_pcm, p_dec->vi.channels, i_samples ); |
|---|
| | 303 | #endif |
|---|
| 283 | 304 | |
|---|
| 284 | 305 | /* Tell libvorbis how many samples we actually consumed */ |
|---|
| … | … | |
| 325 | 346 | * Interleave: helper function to interleave channels |
|---|
| 326 | 347 | *****************************************************************************/ |
|---|
| 327 | | static void Interleave( float *p_out, const float **pp_in, int i_nb_channels, |
|---|
| 328 | | int i_samples ) |
|---|
| | 348 | #ifdef MODULE_NAME_IS_tremor |
|---|
| | 349 | static void Interleave( int32_t *p_out, const int32_t **pp_in, |
|---|
| | 350 | #else |
|---|
| | 351 | static void Interleave( float *p_out, const float **pp_in, |
|---|
| | 352 | #endif |
|---|
| | 353 | int i_nb_channels, int i_samples ) |
|---|
| 329 | 354 | { |
|---|
| 330 | 355 | int i, j; |
|---|