From 110e4f8568f241ddc191f2ae6d0ed95e0a91a934 Mon Sep 17 00:00:00 2001 From: Laurent Aimar Date: Sat, 13 Feb 2010 14:37:52 +0100 Subject: [PATCH] Do not loose pts on stream properties changes. It closes #2349. --- modules/packetizer/flac.c | 3 ++- modules/packetizer/mlp.c | 3 ++- modules/packetizer/mpeg4audio.c | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/modules/packetizer/flac.c b/modules/packetizer/flac.c index 4d29a514fe..c001ea73e8 100644 --- a/modules/packetizer/flac.c +++ b/modules/packetizer/flac.c @@ -285,8 +285,9 @@ static block_t *Packetize( decoder_t *p_dec, block_t **pp_block ) if( p_sys->i_rate != p_dec->fmt_out.audio.i_rate ) { p_dec->fmt_out.audio.i_rate = p_sys->i_rate; + const mtime_t i_end_date = date_Get( &p_sys->end_date ); date_Init( &p_sys->end_date, p_sys->i_rate, 1 ); - date_Set( &p_sys->end_date, p_sys->i_pts ); + date_Set( &p_sys->end_date, i_end_date ); } p_sys->i_state = STATE_NEXT_SYNC; p_sys->i_frame_size = p_sys->b_stream_info && p_sys->stream_info.min_framesize > 0 ? diff --git a/modules/packetizer/mlp.c b/modules/packetizer/mlp.c index ee2479b602..d466e77102 100644 --- a/modules/packetizer/mlp.c +++ b/modules/packetizer/mlp.c @@ -302,8 +302,9 @@ static block_t *Packetize( decoder_t *p_dec, block_t **pp_block ) msg_Info( p_dec, "MLP channels: %d samplerate: %d", p_sys->mlp.i_channels, p_sys->mlp.i_rate ); + const mtime_t i_end_date = date_Get( &p_sys->end_date ); date_Init( &p_sys->end_date, p_sys->mlp.i_rate, 1 ); - date_Set( &p_sys->end_date, p_sys->i_pts ); + date_Set( &p_sys->end_date, i_end_date ); } p_dec->fmt_out.audio.i_rate = p_sys->mlp.i_rate; diff --git a/modules/packetizer/mpeg4audio.c b/modules/packetizer/mpeg4audio.c index f47aecb396..3e4561c09d 100644 --- a/modules/packetizer/mpeg4audio.c +++ b/modules/packetizer/mpeg4audio.c @@ -1205,8 +1205,9 @@ static void SetupOutput( decoder_t *p_dec, block_t *p_block ) msg_Info( p_dec, "AAC channels: %d samplerate: %d", p_sys->i_channels, p_sys->i_rate ); + const mtime_t i_end_date = date_Get( &p_sys->end_date ); date_Init( &p_sys->end_date, p_sys->i_rate, 1 ); - date_Set( &p_sys->end_date, p_sys->i_pts ); + date_Set( &p_sys->end_date, i_end_date ); } p_dec->fmt_out.audio.i_rate = p_sys->i_rate; -- 2.39.2