Changeset 128f5ba7b25efb7d218df9c4da139c9a2462b39d

Show
Ignore:
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
  • include/audio_output.h

    rec51872 r128f5ba  
    33 ***************************************************************************** 
    44 * 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 $ 
    66 * 
    77 * Authors: Christophe Massiot <massiot@via.ecp.fr> 
     
    117117#define AOUT_CHAN_DOLBYSTEREO       0x10000 
    118118#define AOUT_CHAN_DUALMONO          0x20000 
     119#define AOUT_CHAN_REVERSESTEREO     0x40000 
    119120 
    120121#define AOUT_CHAN_PHYSMASK          0xFFFF 
  • modules/audio_filter/channel_mixer/trivial.c

    r36ead72 r128f5ba  
    33 ***************************************************************************** 
    44 * 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 $ 
    66 * 
    77 * Authors: Christophe Massiot <massiot@via.ecp.fr> 
     
    135135            } 
    136136        } 
     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        } 
    137148        else 
    138149        { 
  • modules/audio_filter/converter/a52tofloat32.c

    rcb4cb20 r128f5ba  
    55 ***************************************************************************** 
    66 * 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 $ 
    88 * 
    99 * Authors: Gildas Bazin <gbazin@netcourrier.com> 
     
    280280 
    281281/***************************************************************************** 
     282 * Exchange: helper function to exchange left & right channels 
     283 *****************************************************************************/ 
     284static 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/***************************************************************************** 
    282298 * DoWork: decode an ATSC A/52 frame. 
    283299 *****************************************************************************/ 
     
    332348                       p_samples ); 
    333349        } 
     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        } 
    334356        else 
    335357        { 
  • src/audio_output/common.c

    rabdf248 r128f5ba  
    33 ***************************************************************************** 
    44 * 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 $ 
    66 * 
    77 * Authors: Christophe Massiot <massiot@via.ecp.fr> 
     
    167167        return "Right"; 
    168168    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        } 
    180189    case AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_CENTER: 
    181190        return "3F"; 
  • src/audio_output/output.c

    rcb4cb20 r128f5ba  
    33 ***************************************************************************** 
    44 * 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 $ 
    66 * 
    77 * Authors: Christophe Massiot <massiot@via.ecp.fr> 
     
    7070        var_Get( p_aout, "audio-channels", &val ); 
    7171 
    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") ) ) 
    7378        { 
    7479            p_aout->output.output.i_original_channels = 
     
    114119    } 
    115120    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) ) 
    119122    { 
    120123        /* Stereo - create the audio-channels variable. */ 
     
    132135        var_Change( p_aout, "audio-channels", VLC_VAR_ADDCHOICE, &val ); 
    133136        val.psz_string = N_("Right"); 
     137        var_Change( p_aout, "audio-channels", VLC_VAR_ADDCHOICE, &val ); 
     138        val.psz_string = N_("Reverse stereo"); 
    134139        var_Change( p_aout, "audio-channels", VLC_VAR_ADDCHOICE, &val ); 
    135140        var_AddCallback( p_aout, "audio-channels", aout_ChannelsRestart,