summaryrefslogtreecommitdiffstats
path: root/libmpcodecs
diff options
context:
space:
mode:
authormichael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-01-24 23:50:41 +0000
committermichael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-01-24 23:50:41 +0000
commit1cba4675fa7968212c53483021b5f10bec01ecce (patch)
treedfc16ac97ac347738ffdafa4c7a157da2b053f46 /libmpcodecs
parent86906645350677d4354dead889f2f6dc9286e357 (diff)
downloadmpv-1cba4675fa7968212c53483021b5f10bec01ecce.tar.bz2
mpv-1cba4675fa7968212c53483021b5f10bec01ecce.tar.xz
vglobal so the user can tell the encoder that she wants global headers ... one step closer to correct mov/mp4 muxing
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17479 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpcodecs')
-rw-r--r--libmpcodecs/ve_lavc.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/libmpcodecs/ve_lavc.c b/libmpcodecs/ve_lavc.c
index 2c4823816e..c2aedd59db 100644
--- a/libmpcodecs/ve_lavc.c
+++ b/libmpcodecs/ve_lavc.c
@@ -160,7 +160,7 @@ static int lavc_param_turbo = 0;
static int lavc_param_brd_scale = 0;
static int lavc_param_bidir_refine = 0;
static int lavc_param_sc_factor = 1;
-
+static int lavc_param_video_global_header= 0;
char *lavc_param_acodec = "mp2";
int lavc_param_atag = 0;
@@ -317,6 +317,7 @@ m_option_t lavcopts_conf[]={
{"brd_scale", &lavc_param_brd_scale, CONF_TYPE_INT, CONF_RANGE, 0, 10, NULL},
{"bidir_refine", &lavc_param_bidir_refine, CONF_TYPE_INT, CONF_RANGE, 0, 4, NULL},
{"sc_factor", &lavc_param_sc_factor, CONF_TYPE_INT, CONF_RANGE, 1, INT_MAX, NULL},
+ {"vglobal", &lavc_param_video_global_header, CONF_TYPE_INT, CONF_RANGE, 0, INT_MAX, NULL},
{NULL, NULL, 0, 0, 0, 0, NULL}
};
#endif
@@ -632,6 +633,14 @@ static int config(struct vf_instance_s* vf,
lavc_venc_context->brd_scale = lavc_param_brd_scale;
lavc_venc_context->bidir_refine = lavc_param_bidir_refine;
lavc_venc_context->scenechange_factor = lavc_param_sc_factor;
+ if((lavc_param_video_global_header&1)
+ /*|| (video_global_header==0 && (oc->oformat->flags & AVFMT_GLOBALHEADER))*/){
+ lavc_venc_context->flags |= CODEC_FLAG_GLOBAL_HEADER;
+ }
+ if(lavc_param_video_global_header&2){
+ lavc_venc_context->flags2 |= CODEC_FLAG2_LOCAL_HEADER;
+ }
+
switch(lavc_param_format)
{
case IMGFMT_YV12:
@@ -750,6 +759,7 @@ static int config(struct vf_instance_s* vf,
if(lavc_venc_context->bits_per_sample)
mux_v->bih->biBitCount= lavc_venc_context->bits_per_sample;
if(lavc_venc_context->extradata_size){
+ mux_v->bih= realloc(mux_v->bih, sizeof(BITMAPINFOHEADER) + lavc_venc_context->extradata_size);
memcpy(mux_v->bih + 1, lavc_venc_context->extradata, lavc_venc_context->extradata_size);
mux_v->bih->biSize= sizeof(BITMAPINFOHEADER) + lavc_venc_context->extradata_size;
}