<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=utf-8" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.6001.19393"><LINK rel=stylesheet 
href="BLOCKQUOTE{margin-Top: 0px; margin-Bottom: 0px; margin-Left: 2em}"></HEAD>
<BODY style="MARGIN: 10px; FONT-FAMILY: verdana; FONT-SIZE: 10pt">
<DIV><FONT size=2 face=Verdana>Hi</FONT></DIV>
<DIV> </DIV>
<DIV><FONT size=2 face=Verdana>I have extended live555 media server to support 
mp4 file.when playing using vlc,I click the pause button and then click play 
button.The time that had played at vlc panel becomes 00:00.</FONT></DIV>
<DIV>I played the mpg file to test this issue and the time that had played at 
vlc panel is ok.</DIV>
<DIV>Why the issue only occured in playing my mp4 file(h264 aac 1080p)?Is there 
any steps that missed in my *ServerMediaSubsession for mp4 file or any other 
question:</DIV>
<DIV> </DIV>
<DIV>
<DIV>/*</DIV>
<DIV> * ffmpeg_H264_server_media_subsession.cpp</DIV>
<DIV> *</DIV>
<DIV> */</DIV>
<DIV>#include "BasicUsageEnvironment.hh"</DIV>
<DIV>#include "liveMedia.hh"</DIV>
<DIV>#include "../ffmpeg_demux.h"</DIV>
<DIV>#include "../ffmpeg_server_demux.h"</DIV>
<DIV>#include "../ffmpeg_demuxed_elementary_stream.h"</DIV>
<DIV>#include "ffmpeg_h264_server_media_subsession.h"</DIV>
<DIV></DIV>
<DIV>FfmpegH264ServerMediaSubsession *FfmpegH264ServerMediaSubsession::CreateNew(</DIV>
<DIV>        FfmpegServerDemux& demux, u_int8_t stream_id, Boolean reuse_source)</DIV>
<DIV>{</DIV>
<DIV>    return new FfmpegH264ServerMediaSubsession(demux, stream_id, reuse_source);</DIV>
<DIV>}</DIV>
<DIV></DIV>
<DIV></DIV>
<DIV>FfmpegH264ServerMediaSubsession::~FfmpegH264ServerMediaSubsession() {</DIV>
<DIV>    // TODO Auto-generated destructor stub</DIV>
<DIV>//delete (FfmpegServerDemux*)(&ffmpeg_demux_);</DIV>
<DIV>Medium::close((FfmpegServerDemux*)(&ffmpeg_demux_));</DIV>
<DIV>}</DIV>
<DIV></DIV>
<DIV>FfmpegH264ServerMediaSubsession::FfmpegH264ServerMediaSubsession(</DIV>
<DIV>        FfmpegServerDemux& demux, u_int8_t stream_id, Boolean reuse_source):</DIV>
<DIV>        H264VideoFileServerMediaSubsession(demux.envir(), NULL, reuse_source),</DIV>
<DIV>        ffmpeg_demux_(demux),</DIV>
<DIV>        stream_id_(stream_id)</DIV>
<DIV>{</DIV>
<DIV>    // TODO Auto-generated constructor stub</DIV>
<DIV></DIV>
<DIV>}</DIV>
<DIV></DIV>
<DIV>FramedSource *FfmpegH264ServerMediaSubsession::createNewStreamSource(</DIV>
<DIV>        unsigned  clientSessionId, unsigned& estBitrate)</DIV>
<DIV>{</DIV>
<DIV>    estBitrate = 500; //kbps��estimate</DIV>
<DIV></DIV>
<DIV>    FramedSource* es = ffmpeg_demux_.NewElementaryStream(clientSessionId, stream_id_);</DIV>
<DIV>    if (es == NULL)  return NULL;</DIV>
<DIV></DIV>
<DIV>    //return H264VideoStreamDiscreteFramer::createNew(envir(), es);</DIV>
<DIV>    return H264VideoStreamFramer::createNew(envir(), es);</DIV>
<DIV>}</DIV>
<DIV></DIV>
<DIV>void FfmpegH264ServerMediaSubsession</DIV>
<DIV>::seekStreamSource(FramedSource* inputSource, double& seekNPT, double /*streamDuration*/, u_int64_t& /*numBytes*/) {</DIV>
<DIV>  H264VideoStreamFramer* framer = (H264VideoStreamFramer*)inputSource;</DIV>
<DIV>     framer->flushInput();</DIV>
<DIV></DIV>
<DIV>  // "inputSource" is a filter; its input source is the original elem stream source:</DIV>
<DIV>     FfmpegDemuxedElementaryStream* elemStreamSource</DIV>
<DIV>    = (FfmpegDemuxedElementaryStream*)(((FramedFilter*)inputSource)->inputSource());</DIV>
<DIV></DIV>
<DIV>  // Next, get the original source demux:</DIV>
<DIV>  FfmpegDemux& sourceDemux = elemStreamSource->sourceDemux();</DIV>
<DIV></DIV>
<DIV>  // and flush its input buffers:</DIV>
<DIV>  sourceDemux.FlushInput();</DIV>
<DIV></DIV>
<DIV>  sourceDemux.seekStreamSource(seekNPT);</DIV>
<DIV></DIV>
<DIV>}</DIV>
<DIV></DIV>
<DIV>float FfmpegH264ServerMediaSubsession::duration() const {</DIV>
<DIV>  return ffmpeg_demux_.fileDuration();</DIV>
<DIV>}</DIV>
<DIV></DIV>
<DIV></DIV>
<DIV></DIV></DIV>
<DIV> </DIV>
<DIV align=left><FONT color=#c0c0c0 size=2 face=Verdana>2013-01-14 
</FONT></DIV><FONT size=2 face=Verdana>
<HR style="WIDTH: 122px; HEIGHT: 2px" align=left SIZE=2>

<DIV><FONT color=#c0c0c0 size=2 face=Verdana><SPAN>kingaceck</SPAN> 
</FONT></DIV></FONT></BODY></HTML>