X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fdemux%2Fflac.c;h=f402e272a5b3c635e2ab9efc73b8f04367a573e5;hb=1da8392047446063f48bfaa61c1dc08be4461df8;hp=17b45ff6cc072d6c7eeb38791efb3865047be88b;hpb=308153405596f3425c3b611ea7e9e11749f65383;p=vlc diff --git a/modules/demux/flac.c b/modules/demux/flac.c index 17b45ff6cc..f402e272a5 100644 --- a/modules/demux/flac.c +++ b/modules/demux/flac.c @@ -144,7 +144,7 @@ static int Open( vlc_object_t * p_this ) /* Load the FLAC packetizer */ /* Store STREAMINFO for the decoder and packetizer */ p_streaminfo[4] |= 0x80; /* Fake this as the last metadata block */ - es_format_Init( &fmt, AUDIO_ES, VLC_FOURCC( 'f', 'l', 'a', 'c' ) ); + es_format_Init( &fmt, AUDIO_ES, VLC_CODEC_FLAC ); fmt.i_extra = i_streaminfo; fmt.p_extra = p_streaminfo; @@ -204,7 +204,7 @@ static int Demux( demux_t *p_demux ) if( !( p_block_in = stream_Block( p_demux->s, FLAC_PACKET_SIZE ) ) ) return 0; - p_block_in->i_pts = p_block_in->i_dts = p_sys->b_start ? 1 : 0; + p_block_in->i_pts = p_block_in->i_dts = p_sys->b_start ? VLC_TS_0 : VLC_TS_INVALID; p_sys->b_start = false; while( (p_block_out = p_sys->p_packetizer->pf_packetize( @@ -223,7 +223,7 @@ static int Demux( demux_t *p_demux ) p_sys->p_es = es_out_Add( p_demux->out, &p_sys->p_packetizer->fmt_out); } - p_sys->i_pts = p_block_out->i_dts; + p_sys->i_pts = p_block_out->i_dts - VLC_TS_0; /* Correct timestamp */ p_block_out->i_pts += p_sys->i_time_offset; @@ -382,7 +382,10 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) double *pf = (double*)va_arg( args, double * ); const int64_t i_length = ControlGetLength(p_demux); if( i_length > 0 ) - *pf = (double)ControlGetTime(p_demux) / (double)i_length; + { + double current = ControlGetTime(p_demux); + *pf = current / (double)i_length; + } else *pf= 0.0; return VLC_SUCCESS;