summaryrefslogtreecommitdiffstats
path: root/libmpdemux/muxer_mpeg.c
diff options
context:
space:
mode:
authornicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-11-21 22:53:14 +0000
committernicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-11-21 22:53:14 +0000
commit7a8f8317fd501364b3c76156189c2100d338097f (patch)
treecb87cf317d3646b72ff50a0cb45d1a89142fd430 /libmpdemux/muxer_mpeg.c
parent76b842a3c1afc5385ac9dc060be99fae43121eaa (diff)
downloadmpv-7a8f8317fd501364b3c76156189c2100d338097f.tar.bz2
mpv-7a8f8317fd501364b3c76156189c2100d338097f.tar.xz
buffering in the muxer layer; patch by Corey Hickey (bugfood-ml ad fatooh punctum org) plus small fixes by me
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17024 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/muxer_mpeg.c')
-rw-r--r--libmpdemux/muxer_mpeg.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/libmpdemux/muxer_mpeg.c b/libmpdemux/muxer_mpeg.c
index edd9b75ee6..4086a1d9c7 100644
--- a/libmpdemux/muxer_mpeg.c
+++ b/libmpdemux/muxer_mpeg.c
@@ -1991,7 +1991,6 @@ static size_t parse_mpeg12_video(muxer_stream_t *s, muxer_priv_t *priv, muxer_he
if(s->buffer[3])
{ // Sequence or GOP -- scan for Picture
- s->gop_start = s->h.dwLength;
while (ptr < len-5 &&
(s->buffer[ptr] != 0 || s->buffer[ptr+1] != 0 || s->buffer[ptr+2] != 1 || s->buffer[ptr+3] != 0))
ptr++;
@@ -2454,10 +2453,8 @@ static void mpegfile_write_chunk(muxer_stream_t *s,size_t len,unsigned int flags
priv->vbytes += len;
sz <<= 1;
- s->h.dwLength++;
- s->size += len;
- s->timer = (double)s->h.dwLength*s->h.dwScale/s->h.dwRate;
} else { // MUXER_TYPE_AUDIO
+ double fake_timer;
spriv->type = 0;
stream_format = s->wf->wFormatTag;
@@ -2522,9 +2519,7 @@ static void mpegfile_write_chunk(muxer_stream_t *s,size_t len,unsigned int flags
}
}
- parse_audio(s, 0, &nf, &(s->timer));
- s->h.dwLength += nf;
- s->size += len;
+ parse_audio(s, 0, &nf, &fake_timer);
sz = max(len, 2 * priv->packet_size);
}
@@ -2557,12 +2552,13 @@ static void mpegfile_write_chunk(muxer_stream_t *s,size_t len,unsigned int flags
static void mpegfile_write_index(muxer_t *muxer)
{
int i, nf;
+ double fake_timer;
muxer_priv_t *priv = (muxer_priv_t *) muxer->priv;
for(i = 0; i < muxer->avih.dwStreams; i++)
{
if(muxer->streams[i]->type == MUXER_TYPE_AUDIO)
- parse_audio(muxer->streams[i], 1, &nf, &(muxer->streams[i]->timer));
+ parse_audio(muxer->streams[i], 1, &nf, &fake_timer);
}
while(flush_buffers(muxer, 0) > 0);
flush_buffers(muxer, 1);