diff --git a/modules/demux/mpeg/h26x.c b/modules/demux/mpeg/h26x.c
index 8d6403a7b88ef88bb4587f2fb6159828a48d956e..bf0be713950f554f8d4bca38f6889f5a1d8dca11 100644
--- a/modules/demux/mpeg/h26x.c
+++ b/modules/demux/mpeg/h26x.c
@@ -458,22 +458,14 @@ static int Demux( demux_t *p_demux)
             es_out_Send( p_demux->out, p_sys->p_es, p_block_out );
             if( frame )
             {
-                if( !p_sys->frame_rate_den )
+                if( p_sys->p_packetizer->fmt_out.video.i_frame_rate_base &&
+                    p_sys->p_packetizer->fmt_out.video.i_frame_rate_base != p_sys->frame_rate_den &&
+                    p_sys->p_packetizer->fmt_out.video.i_frame_rate &&
+                    p_sys->p_packetizer->fmt_out.video.i_frame_rate_base != p_sys->frame_rate_num )
                 {
-                    /* Use packetizer's one */
-                    if( p_sys->p_packetizer->fmt_out.video.i_frame_rate_base &&
-                        p_sys->p_packetizer->fmt_out.video.i_frame_rate )
-                    {
-                        p_sys->frame_rate_num = p_sys->p_packetizer->fmt_out.video.i_frame_rate;
-                        p_sys->frame_rate_den = p_sys->p_packetizer->fmt_out.video.i_frame_rate_base;
-                    }
-                    else
-                    {
-                        p_sys->frame_rate_num = 25000;
-                        p_sys->frame_rate_den = 1000;
-                    }
-                    date_Init( &p_sys->dts, 2 * p_sys->frame_rate_num, p_sys->frame_rate_den );
-                    date_Set( &p_sys->dts, VLC_TICK_0 );
+                    p_sys->frame_rate_num = p_sys->p_packetizer->fmt_out.video.i_frame_rate;
+                    p_sys->frame_rate_den = p_sys->p_packetizer->fmt_out.video.i_frame_rate_base;
+                    date_Change( &p_sys->dts, 2 * p_sys->frame_rate_num, p_sys->frame_rate_den );
                     msg_Dbg( p_demux, "using %.2f fps", (double) p_sys->frame_rate_num / p_sys->frame_rate_den );
                 }