X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Faudio_filter%2Fconverter%2Fdtstofloat32.c;h=56f08a298ce7e1c0c4076bd0981950ba2f7e241d;hb=6ee1e193fd896ab9a4729fde14f009d9ce629815;hp=1d7c79a1fffe22d84b6d17467c7e8eb5f5ee6864;hpb=79f9f30aba459bede4709275b10336089161ead0;p=vlc diff --git a/modules/audio_filter/converter/dtstofloat32.c b/modules/audio_filter/converter/dtstofloat32.c index 1d7c79a1ff..56f08a298c 100644 --- a/modules/audio_filter/converter/dtstofloat32.c +++ b/modules/audio_filter/converter/dtstofloat32.c @@ -28,13 +28,11 @@ *****************************************************************************/ #include -#include /* malloc(), free() */ -#include /* strdup() */ -#include /* libdca header file */ +#include /* libdca header file */ -#include -#include "aout_internal.h" +#include +#include #include "vlc_filter.h" /***************************************************************************** @@ -66,7 +64,7 @@ static const uint32_t pi_channels_out[] = *****************************************************************************/ struct filter_sys_t { - dts_state_t * p_libdts; /* libdca internal structure */ + dca_state_t * p_libdca; /* libdca internal structure */ vlc_bool_t b_dynrng; /* see below */ int i_flags; /* libdca flags, see dtsdec/doc/libdts.txt */ vlc_bool_t b_dontwarn; @@ -140,7 +138,7 @@ static int Create( vlc_object_t *p_this ) } /***************************************************************************** - * Open: + * Open: *****************************************************************************/ static int Open( vlc_object_t *p_this, filter_sys_t *p_sys, audio_format_t input, audio_format_t output ) @@ -158,50 +156,50 @@ static int Open( vlc_object_t *p_this, filter_sys_t *p_sys, || (output.i_original_channels & (AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT)) ) { - p_sys->i_flags = DTS_MONO; + p_sys->i_flags = DCA_MONO; } break; case AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT: if ( output.i_original_channels & AOUT_CHAN_DOLBYSTEREO ) { - p_sys->i_flags = DTS_DOLBY; + p_sys->i_flags = DCA_DOLBY; } else if ( input.i_original_channels == AOUT_CHAN_CENTER ) { - p_sys->i_flags = DTS_MONO; + p_sys->i_flags = DCA_MONO; } else if ( input.i_original_channels & AOUT_CHAN_DUALMONO ) { - p_sys->i_flags = DTS_CHANNEL; + p_sys->i_flags = DCA_CHANNEL; } else { - p_sys->i_flags = DTS_STEREO; + p_sys->i_flags = DCA_STEREO; } break; case AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_CENTER: - p_sys->i_flags = DTS_3F; + p_sys->i_flags = DCA_3F; break; case AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_REARCENTER: - p_sys->i_flags = DTS_2F1R; + p_sys->i_flags = DCA_2F1R; break; case AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_CENTER | AOUT_CHAN_REARCENTER: - p_sys->i_flags = DTS_3F1R; + p_sys->i_flags = DCA_3F1R; break; case AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT: - p_sys->i_flags = DTS_2F2R; + p_sys->i_flags = DCA_2F2R; break; case AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_CENTER | AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT: - p_sys->i_flags = DTS_3F2R; + p_sys->i_flags = DCA_3F2R; break; default: @@ -211,13 +209,13 @@ static int Open( vlc_object_t *p_this, filter_sys_t *p_sys, } if ( output.i_physical_channels & AOUT_CHAN_LFE ) { - p_sys->i_flags |= DTS_LFE; + p_sys->i_flags |= DCA_LFE; } - //p_sys->i_flags |= DTS_ADJUST_LEVEL; + //p_sys->i_flags |= DCA_ADJUST_LEVEL; /* Initialize libdca */ - p_sys->p_libdts = dts_init( 0 ); - if( p_sys->p_libdts == NULL ) + p_sys->p_libdca = dca_init( 0 ); + if( p_sys->p_libdca == NULL ) { msg_Err( p_this, "unable to initialize libdca" ); return VLC_EGENERIC; @@ -300,7 +298,7 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter, /* Needs to be called so the decoder knows which type of bitstream it is * dealing with. */ int i_sample_rate, i_bit_rate, i_frame_length; - if( !dts_syncinfo( p_sys->p_libdts, p_in_buf->p_buffer, &i_flags, + if( !dca_syncinfo( p_sys->p_libdca, p_in_buf->p_buffer, &i_flags, &i_sample_rate, &i_bit_rate, &i_frame_length ) ) { msg_Warn( p_aout, "libdca couldn't sync on frame" ); @@ -309,39 +307,39 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter, } i_flags = p_sys->i_flags; - dts_frame( p_sys->p_libdts, p_in_buf->p_buffer, + dca_frame( p_sys->p_libdca, p_in_buf->p_buffer, &i_flags, &i_sample_level, 0 ); - if ( (i_flags & DTS_CHANNEL_MASK) != (p_sys->i_flags & DTS_CHANNEL_MASK) + if ( (i_flags & DCA_CHANNEL_MASK) != (p_sys->i_flags & DCA_CHANNEL_MASK) && !p_sys->b_dontwarn ) { msg_Warn( p_aout, "libdca couldn't do the requested downmix 0x%x->0x%x", - p_sys->i_flags & DTS_CHANNEL_MASK, - i_flags & DTS_CHANNEL_MASK ); + p_sys->i_flags & DCA_CHANNEL_MASK, + i_flags & DCA_CHANNEL_MASK ); p_sys->b_dontwarn = 1; } if( 0)//!p_sys->b_dynrng ) { - dts_dynrng( p_sys->p_libdts, NULL, NULL ); + dca_dynrng( p_sys->p_libdca, NULL, NULL ); } - for ( i = 0; i < dts_blocks_num(p_sys->p_libdts); i++ ) + for ( i = 0; i < dca_blocks_num(p_sys->p_libdca); i++ ) { sample_t * p_samples; - if( dts_block( p_sys->p_libdts ) ) + if( dca_block( p_sys->p_libdca ) ) { - msg_Warn( p_aout, "dts_block failed for block %d", i ); + msg_Warn( p_aout, "dca_block failed for block %d", i ); break; } - p_samples = dts_samples( p_sys->p_libdts ); + p_samples = dca_samples( p_sys->p_libdca ); - if ( (p_sys->i_flags & DTS_CHANNEL_MASK) == DTS_MONO - && (p_filter->output.i_physical_channels + if ( (p_sys->i_flags & DCA_CHANNEL_MASK) == DCA_MONO + && (p_filter->output.i_physical_channels & (AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT)) ) { Duplicate( (float *)(p_out_buf->p_buffer + i * i_bytes_per_block), @@ -373,12 +371,12 @@ static void Destroy( vlc_object_t *p_this ) aout_filter_t *p_filter = (aout_filter_t *)p_this; filter_sys_t *p_sys = (filter_sys_t *)p_filter->p_sys; - dts_free( p_sys->p_libdts ); + dca_free( p_sys->p_libdca ); free( p_sys ); } /***************************************************************************** - * OpenFilter: + * OpenFilter: *****************************************************************************/ static int OpenFilter( vlc_object_t *p_this ) { @@ -427,7 +425,7 @@ static void CloseFilter( vlc_object_t *p_this ) filter_t *p_filter = (filter_t *)p_this; filter_sys_t *p_sys = p_filter->p_sys; - dts_free( p_sys->p_libdts ); + dca_free( p_sys->p_libdca ); free( p_sys ); }