Changeset 128f5ba7b25efb7d218df9c4da139c9a2462b39d
- Timestamp:
- 22/01/03 19:31:47
(6 years ago)
- Author:
- Christophe Massiot <massiot@videolan.org>
- git-committer:
- Christophe Massiot <massiot@videolan.org> 1043260307 +0000
- git-parent:
[dba1461123a88cb8840f11927e0adcaa76befe52]
- git-author:
- Christophe Massiot <massiot@videolan.org> 1043260307 +0000
- Message:
Reverse stereo option.
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| rec51872 |
r128f5ba |
|
| 3 | 3 | ***************************************************************************** |
|---|
| 4 | 4 | * Copyright (C) 2002 VideoLAN |
|---|
| 5 | | * $Id: audio_output.h,v 1.74 2002/12/07 23:50:30 massiot Exp $ |
|---|
| | 5 | * $Id: audio_output.h,v 1.75 2003/01/22 18:31:46 massiot Exp $ |
|---|
| 6 | 6 | * |
|---|
| 7 | 7 | * Authors: Christophe Massiot <massiot@via.ecp.fr> |
|---|
| … | … | |
| 117 | 117 | #define AOUT_CHAN_DOLBYSTEREO 0x10000 |
|---|
| 118 | 118 | #define AOUT_CHAN_DUALMONO 0x20000 |
|---|
| | 119 | #define AOUT_CHAN_REVERSESTEREO 0x40000 |
|---|
| 119 | 120 | |
|---|
| 120 | 121 | #define AOUT_CHAN_PHYSMASK 0xFFFF |
|---|
| r36ead72 |
r128f5ba |
|
| 3 | 3 | ***************************************************************************** |
|---|
| 4 | 4 | * Copyright (C) 2002 VideoLAN |
|---|
| 5 | | * $Id: trivial.c,v 1.9 2003/01/14 14:51:02 massiot Exp $ |
|---|
| | 5 | * $Id: trivial.c,v 1.10 2003/01/22 18:31:47 massiot Exp $ |
|---|
| 6 | 6 | * |
|---|
| 7 | 7 | * Authors: Christophe Massiot <massiot@via.ecp.fr> |
|---|
| … | … | |
| 135 | 135 | } |
|---|
| 136 | 136 | } |
|---|
| | 137 | else if ( p_filter->output.i_original_channels |
|---|
| | 138 | & AOUT_CHAN_REVERSESTEREO ) |
|---|
| | 139 | { |
|---|
| | 140 | /* Reverse-stereo mode */ |
|---|
| | 141 | for ( i = p_in_buf->i_nb_samples; i -= 2; ) |
|---|
| | 142 | { |
|---|
| | 143 | *p_dest++ = p_src[1]; |
|---|
| | 144 | *p_dest++ = p_src[0]; |
|---|
| | 145 | p_src += 2; |
|---|
| | 146 | } |
|---|
| | 147 | } |
|---|
| 137 | 148 | else |
|---|
| 138 | 149 | { |
|---|
| rcb4cb20 |
r128f5ba |
|
| 5 | 5 | ***************************************************************************** |
|---|
| 6 | 6 | * Copyright (C) 2001, 2002 VideoLAN |
|---|
| 7 | | * $Id: a52tofloat32.c,v 1.11 2003/01/22 09:54:28 massiot Exp $ |
|---|
| | 7 | * $Id: a52tofloat32.c,v 1.12 2003/01/22 18:31:47 massiot Exp $ |
|---|
| 8 | 8 | * |
|---|
| 9 | 9 | * Authors: Gildas Bazin <gbazin@netcourrier.com> |
|---|
| … | … | |
| 280 | 280 | |
|---|
| 281 | 281 | /***************************************************************************** |
|---|
| | 282 | * Exchange: helper function to exchange left & right channels |
|---|
| | 283 | *****************************************************************************/ |
|---|
| | 284 | static void Exchange( float * p_out, const float * p_in ) |
|---|
| | 285 | { |
|---|
| | 286 | int i; |
|---|
| | 287 | const float * p_first = p_in + 256; |
|---|
| | 288 | const float * p_second = p_in; |
|---|
| | 289 | |
|---|
| | 290 | for ( i = 0; i < 256; i++ ) |
|---|
| | 291 | { |
|---|
| | 292 | *p_out++ = *p_first++; |
|---|
| | 293 | *p_out++ = *p_second++; |
|---|
| | 294 | } |
|---|
| | 295 | } |
|---|
| | 296 | |
|---|
| | 297 | /***************************************************************************** |
|---|
| 282 | 298 | * DoWork: decode an ATSC A/52 frame. |
|---|
| 283 | 299 | *****************************************************************************/ |
|---|
| … | … | |
| 332 | 348 | p_samples ); |
|---|
| 333 | 349 | } |
|---|
| | 350 | else if ( p_filter->output.i_original_channels |
|---|
| | 351 | & AOUT_CHAN_REVERSESTEREO ) |
|---|
| | 352 | { |
|---|
| | 353 | Exchange( (float *)(p_out_buf->p_buffer + i * i_bytes_per_block), |
|---|
| | 354 | p_samples ); |
|---|
| | 355 | } |
|---|
| 334 | 356 | else |
|---|
| 335 | 357 | { |
|---|
| rabdf248 |
r128f5ba |
|
| 3 | 3 | ***************************************************************************** |
|---|
| 4 | 4 | * Copyright (C) 2002 VideoLAN |
|---|
| 5 | | * $Id: common.c,v 1.14 2003/01/20 10:59:29 massiot Exp $ |
|---|
| | 5 | * $Id: common.c,v 1.15 2003/01/22 18:31:47 massiot Exp $ |
|---|
| 6 | 6 | * |
|---|
| 7 | 7 | * Authors: Christophe Massiot <massiot@via.ecp.fr> |
|---|
| … | … | |
| 167 | 167 | return "Right"; |
|---|
| 168 | 168 | case AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT: |
|---|
| 169 | | if ( p_format->i_original_channels & AOUT_CHAN_DOLBYSTEREO ) |
|---|
| 170 | | return "Dolby"; |
|---|
| 171 | | else if ( p_format->i_original_channels & AOUT_CHAN_DUALMONO ) |
|---|
| 172 | | return "Dual-mono"; |
|---|
| 173 | | else if ( p_format->i_original_channels == AOUT_CHAN_CENTER ) |
|---|
| 174 | | return "Stereo/Mono"; |
|---|
| 175 | | else if ( !(p_format->i_original_channels & AOUT_CHAN_RIGHT) ) |
|---|
| 176 | | return "Stereo/Left"; |
|---|
| 177 | | else if ( !(p_format->i_original_channels & AOUT_CHAN_LEFT) ) |
|---|
| 178 | | return "Stereo/Right"; |
|---|
| 179 | | return "Stereo"; |
|---|
| | 169 | if ( p_format->i_original_channels & AOUT_CHAN_REVERSESTEREO ) |
|---|
| | 170 | { |
|---|
| | 171 | if ( p_format->i_original_channels & AOUT_CHAN_DOLBYSTEREO ) |
|---|
| | 172 | return "Dolby/Reverse"; |
|---|
| | 173 | return "Stereo/Reverse"; |
|---|
| | 174 | } |
|---|
| | 175 | else |
|---|
| | 176 | { |
|---|
| | 177 | if ( p_format->i_original_channels & AOUT_CHAN_DOLBYSTEREO ) |
|---|
| | 178 | return "Dolby"; |
|---|
| | 179 | else if ( p_format->i_original_channels & AOUT_CHAN_DUALMONO ) |
|---|
| | 180 | return "Dual-mono"; |
|---|
| | 181 | else if ( p_format->i_original_channels == AOUT_CHAN_CENTER ) |
|---|
| | 182 | return "Stereo/Mono"; |
|---|
| | 183 | else if ( !(p_format->i_original_channels & AOUT_CHAN_RIGHT) ) |
|---|
| | 184 | return "Stereo/Left"; |
|---|
| | 185 | else if ( !(p_format->i_original_channels & AOUT_CHAN_LEFT) ) |
|---|
| | 186 | return "Stereo/Right"; |
|---|
| | 187 | return "Stereo"; |
|---|
| | 188 | } |
|---|
| 180 | 189 | case AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_CENTER: |
|---|
| 181 | 190 | return "3F"; |
|---|
| rcb4cb20 |
r128f5ba |
|
| 3 | 3 | ***************************************************************************** |
|---|
| 4 | 4 | * Copyright (C) 2002 VideoLAN |
|---|
| 5 | | * $Id: output.c,v 1.30 2003/01/22 09:54:29 massiot Exp $ |
|---|
| | 5 | * $Id: output.c,v 1.31 2003/01/22 18:31:47 massiot Exp $ |
|---|
| 6 | 6 | * |
|---|
| 7 | 7 | * Authors: Christophe Massiot <massiot@via.ecp.fr> |
|---|
| … | … | |
| 70 | 70 | var_Get( p_aout, "audio-channels", &val ); |
|---|
| 71 | 71 | |
|---|
| 72 | | if ( !strcmp( val.psz_string, N_("Both") ) ) |
|---|
| | 72 | if ( !strcmp( val.psz_string, N_("Reverse stereo") ) ) |
|---|
| | 73 | { |
|---|
| | 74 | p_aout->output.output.i_original_channels |= |
|---|
| | 75 | AOUT_CHAN_REVERSESTEREO; |
|---|
| | 76 | } |
|---|
| | 77 | else if ( !strcmp( val.psz_string, N_("Both") ) ) |
|---|
| 73 | 78 | { |
|---|
| 74 | 79 | p_aout->output.output.i_original_channels = |
|---|
| … | … | |
| 114 | 119 | } |
|---|
| 115 | 120 | else if ( p_aout->output.output.i_physical_channels == |
|---|
| 116 | | (AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT) |
|---|
| 117 | | && (p_aout->output.output.i_original_channels |
|---|
| 118 | | & AOUT_CHAN_PHYSMASK) == (AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT) ) |
|---|
| | 121 | (AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT) ) |
|---|
| 119 | 122 | { |
|---|
| 120 | 123 | /* Stereo - create the audio-channels variable. */ |
|---|
| … | … | |
| 132 | 135 | var_Change( p_aout, "audio-channels", VLC_VAR_ADDCHOICE, &val ); |
|---|
| 133 | 136 | val.psz_string = N_("Right"); |
|---|
| | 137 | var_Change( p_aout, "audio-channels", VLC_VAR_ADDCHOICE, &val ); |
|---|
| | 138 | val.psz_string = N_("Reverse stereo"); |
|---|
| 134 | 139 | var_Change( p_aout, "audio-channels", VLC_VAR_ADDCHOICE, &val ); |
|---|
| 135 | 140 | var_AddCallback( p_aout, "audio-channels", aout_ChannelsRestart, |
|---|