diff options
author | michael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-08-10 21:48:41 +0000 |
---|---|---|
committer | michael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-08-10 21:48:41 +0000 |
commit | b85ad74dc94a27a6f0181a0c7a75d08798ec8e1d (patch) | |
tree | f9c52fccb5d3ecc50d667d3229183b69db6ae7c5 | |
parent | 0fb68cc0725695193565774843855906872f49c2 (diff) | |
download | mpv-b85ad74dc94a27a6f0181a0c7a75d08798ec8e1d.tar.bz2 mpv-b85ad74dc94a27a6f0181a0c7a75d08798ec8e1d.tar.xz |
pass average bitrate from encoder to (lavf) muxer
this fixes some problems with muxing mp4 files for the psp
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19366 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r-- | libmpcodecs/ae_lavc.c | 1 | ||||
-rw-r--r-- | libmpcodecs/ve_lavc.c | 2 | ||||
-rw-r--r-- | libmpdemux/muxer.h | 1 | ||||
-rw-r--r-- | libmpdemux/muxer_lavf.c | 3 |
4 files changed, 5 insertions, 2 deletions
diff --git a/libmpcodecs/ae_lavc.c b/libmpcodecs/ae_lavc.c index 69b3530b3d..be909aa26e 100644 --- a/libmpcodecs/ae_lavc.c +++ b/libmpcodecs/ae_lavc.c @@ -38,6 +38,7 @@ static int bind_lavc(audio_encoder_t *encoder, muxer_stream_t *mux_a) mux_a->wf->nChannels = lavc_actx->channels; mux_a->wf->nSamplesPerSec = lavc_actx->sample_rate; mux_a->wf->nAvgBytesPerSec = (lavc_actx->bit_rate / 8); + mux_a->avg_rate= lavc_actx->bit_rate; mux_a->h.dwRate = mux_a->wf->nAvgBytesPerSec; if(lavc_actx->block_align) mux_a->h.dwSampleSize = mux_a->h.dwScale = lavc_actx->block_align; diff --git a/libmpcodecs/ve_lavc.c b/libmpcodecs/ve_lavc.c index 5bf123daa2..dcfc7f4243 100644 --- a/libmpcodecs/ve_lavc.c +++ b/libmpcodecs/ve_lavc.c @@ -331,7 +331,7 @@ static int config(struct vf_instance_s* vf, else lavc_venc_context->bit_rate = 800000; /* default */ - //mux_v->wf->nAvgBytesPerSec= lavc_venc_context->bit_rate/8; + mux_v->avg_rate= lavc_venc_context->bit_rate; lavc_venc_context->bit_rate_tolerance= lavc_param_vrate_tolerance*1000; lavc_venc_context->time_base= (AVRational){mux_v->h.dwScale, mux_v->h.dwRate}; diff --git a/libmpdemux/muxer.h b/libmpdemux/muxer.h index 7f3779d6d1..1dae84ec8e 100644 --- a/libmpdemux/muxer.h +++ b/libmpdemux/muxer.h @@ -48,6 +48,7 @@ typedef struct { int vbv_size; int max_rate; + int avg_rate; } muxer_stream_t; typedef struct { diff --git a/libmpdemux/muxer_lavf.c b/libmpdemux/muxer_lavf.c index c8601738e3..09794c7573 100644 --- a/libmpdemux/muxer_lavf.c +++ b/libmpdemux/muxer_lavf.c @@ -185,7 +185,8 @@ static void fix_parameters(muxer_stream_t *stream) ctx = spriv->avstream->codec; - if(stream->wf && stream->wf->nAvgBytesPerSec) + ctx->bit_rate= stream->avg_rate; + if(stream->wf && stream->wf->nAvgBytesPerSec && !ctx->bit_rate) ctx->bit_rate = stream->wf->nAvgBytesPerSec * 8; ctx->rc_buffer_size= stream->vbv_size; ctx->rc_max_rate= stream->max_rate; |