Mercurial > libavcodec.hg
comparison mpeg12.c @ 3391:d60dc0a7dee6 libavcodec
staric frame_rate_tab -> non static ff_frame_rate_tab part of the cavs patch by (Stefan Gehrer stefan.gehrer gmx de)
author | michael |
---|---|
date | Sun, 02 Jul 2006 14:50:23 +0000 |
parents | 5e2c69db0ef7 |
children | 1843a85123b7 |
comparison
equal
deleted
inserted
replaced
3390:63a4adcaf226 | 3391:d60dc0a7dee6 |
---|---|
198 int i; | 198 int i; |
199 int64_t dmin= INT64_MAX; | 199 int64_t dmin= INT64_MAX; |
200 int64_t d; | 200 int64_t d; |
201 | 201 |
202 for(i=1;i<14;i++) { | 202 for(i=1;i<14;i++) { |
203 int64_t n0= 1001LL/frame_rate_tab[i].den*frame_rate_tab[i].num*s->avctx->time_base.num; | 203 int64_t n0= 1001LL/ff_frame_rate_tab[i].den*ff_frame_rate_tab[i].num*s->avctx->time_base.num; |
204 int64_t n1= 1001LL*s->avctx->time_base.den; | 204 int64_t n1= 1001LL*s->avctx->time_base.den; |
205 if(s->avctx->strict_std_compliance > FF_COMPLIANCE_INOFFICIAL && i>=9) break; | 205 if(s->avctx->strict_std_compliance > FF_COMPLIANCE_INOFFICIAL && i>=9) break; |
206 | 206 |
207 d = ABS(n0 - n1); | 207 d = ABS(n0 - n1); |
208 if(d < dmin){ | 208 if(d < dmin){ |
260 int constraint_parameter_flag; | 260 int constraint_parameter_flag; |
261 | 261 |
262 if(aspect_ratio==0.0) aspect_ratio= 1.0; //pixel aspect 1:1 (VGA) | 262 if(aspect_ratio==0.0) aspect_ratio= 1.0; //pixel aspect 1:1 (VGA) |
263 | 263 |
264 if (s->current_picture.key_frame) { | 264 if (s->current_picture.key_frame) { |
265 AVRational framerate= frame_rate_tab[s->frame_rate_index]; | 265 AVRational framerate= ff_frame_rate_tab[s->frame_rate_index]; |
266 | 266 |
267 /* mpeg1 header repeated every gop */ | 267 /* mpeg1 header repeated every gop */ |
268 put_header(s, SEQ_START_CODE); | 268 put_header(s, SEQ_START_CODE); |
269 | 269 |
270 put_bits(&s->pb, 12, s->width); | 270 put_bits(&s->pb, 12, s->width); |
2119 //that behave like P frames | 2119 //that behave like P frames |
2120 avctx->has_b_frames = !(s->low_delay); | 2120 avctx->has_b_frames = !(s->low_delay); |
2121 | 2121 |
2122 if(avctx->sub_id==1){//s->codec_id==avctx->codec_id==CODEC_ID | 2122 if(avctx->sub_id==1){//s->codec_id==avctx->codec_id==CODEC_ID |
2123 //mpeg1 fps | 2123 //mpeg1 fps |
2124 avctx->time_base.den = frame_rate_tab[s->frame_rate_index].num; | 2124 avctx->time_base.den= ff_frame_rate_tab[s->frame_rate_index].num; |
2125 avctx->time_base.num= frame_rate_tab[s->frame_rate_index].den; | 2125 avctx->time_base.num= ff_frame_rate_tab[s->frame_rate_index].den; |
2126 //mpeg1 aspect | 2126 //mpeg1 aspect |
2127 avctx->sample_aspect_ratio= av_d2q( | 2127 avctx->sample_aspect_ratio= av_d2q( |
2128 1.0/mpeg1_aspect[s->aspect_ratio_info], 255); | 2128 1.0/mpeg1_aspect[s->aspect_ratio_info], 255); |
2129 | 2129 |
2130 }else{//mpeg2 | 2130 }else{//mpeg2 |
2131 //mpeg2 fps | 2131 //mpeg2 fps |
2132 av_reduce( | 2132 av_reduce( |
2133 &s->avctx->time_base.den, | 2133 &s->avctx->time_base.den, |
2134 &s->avctx->time_base.num, | 2134 &s->avctx->time_base.num, |
2135 frame_rate_tab[s->frame_rate_index].num * s1->frame_rate_ext.num, | 2135 ff_frame_rate_tab[s->frame_rate_index].num * s1->frame_rate_ext.num, |
2136 frame_rate_tab[s->frame_rate_index].den * s1->frame_rate_ext.den, | 2136 ff_frame_rate_tab[s->frame_rate_index].den * s1->frame_rate_ext.den, |
2137 1<<30); | 2137 1<<30); |
2138 //mpeg2 aspect | 2138 //mpeg2 aspect |
2139 if(s->aspect_ratio_info > 1){ | 2139 if(s->aspect_ratio_info > 1){ |
2140 if( (s1->pan_scan.width == 0 )||(s1->pan_scan.height == 0) ){ | 2140 if( (s1->pan_scan.width == 0 )||(s1->pan_scan.height == 0) ){ |
2141 s->avctx->sample_aspect_ratio= | 2141 s->avctx->sample_aspect_ratio= |
3250 CODEC_ID_MPEG1VIDEO, | 3250 CODEC_ID_MPEG1VIDEO, |
3251 sizeof(MpegEncContext), | 3251 sizeof(MpegEncContext), |
3252 encode_init, | 3252 encode_init, |
3253 MPV_encode_picture, | 3253 MPV_encode_picture, |
3254 MPV_encode_end, | 3254 MPV_encode_end, |
3255 .supported_framerates= frame_rate_tab+1, | 3255 .supported_framerates= ff_frame_rate_tab+1, |
3256 .pix_fmts= (enum PixelFormat[]){PIX_FMT_YUV420P, -1}, | 3256 .pix_fmts= (enum PixelFormat[]){PIX_FMT_YUV420P, -1}, |
3257 .capabilities= CODEC_CAP_DELAY, | 3257 .capabilities= CODEC_CAP_DELAY, |
3258 }; | 3258 }; |
3259 | 3259 |
3260 AVCodec mpeg2video_encoder = { | 3260 AVCodec mpeg2video_encoder = { |
3263 CODEC_ID_MPEG2VIDEO, | 3263 CODEC_ID_MPEG2VIDEO, |
3264 sizeof(MpegEncContext), | 3264 sizeof(MpegEncContext), |
3265 encode_init, | 3265 encode_init, |
3266 MPV_encode_picture, | 3266 MPV_encode_picture, |
3267 MPV_encode_end, | 3267 MPV_encode_end, |
3268 .supported_framerates= frame_rate_tab+1, | 3268 .supported_framerates= ff_frame_rate_tab+1, |
3269 .pix_fmts= (enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_YUV422P, -1}, | 3269 .pix_fmts= (enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_YUV422P, -1}, |
3270 .capabilities= CODEC_CAP_DELAY, | 3270 .capabilities= CODEC_CAP_DELAY, |
3271 }; | 3271 }; |
3272 #endif | 3272 #endif |
3273 | 3273 |