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 |
