mirror of
https://github.com/mpv-player/mpv
synced 2025-03-21 10:51:51 +00:00
moved to fix_parameters() the code that decides if the PSM is needed
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24933 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
2edf5a5ad3
commit
d48b6c6cf5
@ -666,7 +666,7 @@ static int write_mpeg_psm(muxer_t *muxer, char *buff)
|
||||
|
||||
static int psm_is_late(muxer_priv_t *priv)
|
||||
{
|
||||
return (priv->scr >= priv->last_psm_scr + 27000000ULL);
|
||||
return (!priv->data_size || (priv->scr >= priv->last_psm_scr + 27000000ULL));
|
||||
}
|
||||
|
||||
static int write_mpeg_pes_header(muxer_headers_t *h, uint8_t *pes_id, uint8_t *buff, uint16_t plen, int stuffing_len, int mux_type)
|
||||
@ -2227,9 +2227,11 @@ static void fix_parameters(muxer_stream_t *stream)
|
||||
muxer_headers_t *spriv = stream->priv;
|
||||
muxer_t *muxer = stream->muxer;
|
||||
muxer_priv_t *priv = muxer->priv;
|
||||
uint32_t stream_format;
|
||||
|
||||
if(stream->type == MUXER_TYPE_AUDIO)
|
||||
{
|
||||
stream_format = stream->wf->wFormatTag;
|
||||
spriv->is_ready = 1;
|
||||
if(conf_abuf_size)
|
||||
spriv->max_buffer_size = conf_abuf_size*1024;
|
||||
@ -2251,6 +2253,7 @@ static void fix_parameters(muxer_stream_t *stream)
|
||||
}
|
||||
else //video
|
||||
{
|
||||
stream_format = stream->bih->biCompression;
|
||||
if(conf_vbuf_size)
|
||||
spriv->max_buffer_size = conf_vbuf_size*1024;
|
||||
else
|
||||
@ -2270,6 +2273,12 @@ static void fix_parameters(muxer_stream_t *stream)
|
||||
else
|
||||
spriv->is_ready = 1;
|
||||
}
|
||||
|
||||
if(priv->is_genmpeg2)
|
||||
{
|
||||
add_to_psm(priv, spriv->id, stream_format);
|
||||
priv->psm_streams_cnt++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -2371,16 +2380,6 @@ static void mpegfile_write_chunk(muxer_stream_t *s,size_t len,unsigned int flags
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(spriv->psm_fixed == 0)
|
||||
{
|
||||
add_to_psm(priv, spriv->id, stream_format);
|
||||
spriv->psm_fixed = 1;
|
||||
priv->psm_streams_cnt++;
|
||||
if((priv->psm_streams_cnt == muxer->num_videos + muxer->num_audios) && priv->use_psm)
|
||||
write_psm_block(muxer, muxer->stream);
|
||||
}
|
||||
|
||||
flush_buffers(muxer, 0);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user