delete iter;
if( p_sys->i_track <= 0 ) i_return = VLC_EGENERIC;
-#if (LIVEMEDIA_LIBRARY_VERSION_INT >= 9999999999)
+#if (LIVEMEDIA_LIBRARY_VERSION_INT >= 1199404800)
/* Retrieve the starttime if possible */
p_sys->i_npt_start = (int64_t)( p_sys->ms->playStartTime() * (double)1000000.0 );
#else
if( p_sys->i_npt_start < 0 )
p_sys->i_npt_start = -1;
-#if (LIVEMEDIA_LIBRARY_VERSION_INT >= 9999999999)
+#if (LIVEMEDIA_LIBRARY_VERSION_INT >= 1199404800)
/* Retrieve the duration if possible */
p_sys->i_npt_length = (int64_t)( p_sys->ms->playEndTime() * (double)1000000.0 );
#else
p_sys->i_timeout = p_sys->rtsp->sessionTimeoutParameter();
if( p_sys->i_timeout <= 0 )
p_sys->i_timeout = 60; /* default value from RFC2326 */
- if( !p_sys->p_timeout )
+
+ /* start timeout-thread only on x-asf streams (wms), it has rtcp support but doesn't
+ * seem to use it for liveness/keep-alive, get_parameter seems to work for it. get_parameter
+ * doesn't work with dss 5.5.4 & 5.5.5, they seems to work with rtcp */
+ if( !p_sys->p_timeout && p_sys->p_out_asf )
{
msg_Dbg( p_demux, "We have a timeout of %d seconds", p_sys->i_timeout );
p_sys->p_timeout = (timeout_thread_t *)vlc_object_create( p_demux, sizeof(timeout_thread_t) );
}
#endif
-#if (LIVEMEDIA_LIBRARY_VERSION_INT >= 9999999999)
+#if (LIVEMEDIA_LIBRARY_VERSION_INT >= 1199404800)
/* Retrieve the starttime if possible */
p_sys->i_npt_start = (int64_t)( p_sys->ms->playStartTime() * (double)1000000.0 );
#else
else
p_sys->i_npt = p_sys->i_npt_start;
-#if (LIVEMEDIA_LIBRARY_VERSION_INT >= 9999999999)
+#if (LIVEMEDIA_LIBRARY_VERSION_INT >= 1199404800)
/* Retrieve the duration if possible */
p_sys->i_npt_length = (int64_t)( p_sys->ms->playEndTime() * (double)1000000.0 );
#else
msg_Info( p_demux, "set pos startseq: %u", p_sys->track[i]->i_start_seq );
}
#endif
-#if (LIVEMEDIA_LIBRARY_VERSION_INT >= 9999999999)
+#if (LIVEMEDIA_LIBRARY_VERSION_INT >= 1199404800)
/* Retrieve the starttime if possible */
p_sys->i_npt_start = (int64_t)( p_sys->ms->playStartTime() * (double)1000000.0 );
#else
else
p_sys->i_npt = p_sys->i_npt_start;
-#if (LIVEMEDIA_LIBRARY_VERSION_INT >= 9999999999)
+#if (LIVEMEDIA_LIBRARY_VERSION_INT >= 1199404800)
/* Retrieve the duration if possible */
p_sys->i_npt_length = (int64_t)( p_sys->ms->playEndTime() * (double)1000000.0 );
#else
msg_Info( p_demux, "set pause startseq: %u", p_sys->track[i]->i_start_seq );
}
#endif
-#if (LIVEMEDIA_LIBRARY_VERSION_INT >= 9999999999)
+#if (LIVEMEDIA_LIBRARY_VERSION_INT >= 1199404800)
/* Retrieve the starttime if possible */
p_sys->i_npt_start = (int64_t)( p_sys->ms->playStartTime() * (double)1000000.0 );
#else
else
p_sys->i_npt = p_sys->i_npt_start;
-#if (LIVEMEDIA_LIBRARY_VERSION_INT >= 9999999999)
+#if (LIVEMEDIA_LIBRARY_VERSION_INT >= 1199404800)
/* Retrieve the duration if possible */
p_sys->i_npt_length = (int64_t)( p_sys->ms->playEndTime() * (double)1000000.0 );
#else
if( (i_pts != tk->i_pts) && (!tk->b_muxed) )
{
- p_block->i_dts = ( tk->fmt.i_cat == VIDEO_ES ) ? 0 : i_pts;
p_block->i_pts = i_pts;
}
+ if( !tk->b_muxed )
+ {
+ /*FIXME: for h264 you should check that packetization-mode=1 in sdp-file */
+ p_block->i_dts = ( tk->fmt.i_codec == VLC_FOURCC( 'm', 'p', 'g', 'v' ) ) ? 0 : i_pts;
+ }
if( tk->b_muxed )
{