Commit 75b67bf9 authored by michaelni's avatar michaelni

aspect ratio encoding for mpeg1


git-svn-id: file:///var/local/repositories/ffmpeg/trunk@1319 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
parent 92dff8bf
......@@ -131,8 +131,12 @@ static void mpeg1_encode_sequence_header(MpegEncContext *s)
{
unsigned int vbv_buffer_size;
unsigned int fps, v;
int n;
int n, i;
UINT64 time_code;
float best_aspect_error= 1E10;
float aspect_ratio= s->avctx->aspect_ratio;
if(aspect_ratio==0.0) aspect_ratio= s->width / (float)s->height; //pixel aspect 1:1 (VGA)
if (s->current_picture.key_frame) {
/* mpeg1 header repeated every gop */
......@@ -154,7 +158,18 @@ static void mpeg1_encode_sequence_header(MpegEncContext *s)
put_bits(&s->pb, 12, s->width);
put_bits(&s->pb, 12, s->height);
put_bits(&s->pb, 4, 1); /* 1/1 aspect ratio */
for(i=1; i<15; i++){
float error= mpeg1_aspect[i] - s->width/(s->height*aspect_ratio);
error= ABS(error);
if(error < best_aspect_error){
best_aspect_error= error;
s->aspect_ratio_info= i;
}
}
put_bits(&s->pb, 4, s->aspect_ratio_info);
put_bits(&s->pb, 4, s->frame_rate_index);
v = s->bit_rate / 400;
if (v > 0x3ffff)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment