Mercurial > libavcodec.hg
comparison mpegvideo.c @ 2764:2b37bcabe608 libavcodec
spelling fixes
patch by Peter Robinson pbrobinson @ at @ gmail . dot . com and myself
author | diego |
---|---|
date | Fri, 17 Jun 2005 15:02:53 +0000 |
parents | 9994e07cd45f |
children | 0a8c847ad5e7 |
comparison
equal
deleted
inserted
replaced
2763:01ed2c3b8f08 | 2764:2b37bcabe608 |
---|---|
362 av_log(s->avctx, AV_LOG_ERROR, "get_buffer() failed (stride changed)\n"); | 362 av_log(s->avctx, AV_LOG_ERROR, "get_buffer() failed (stride changed)\n"); |
363 return -1; | 363 return -1; |
364 } | 364 } |
365 | 365 |
366 if(pic->linesize[1] != pic->linesize[2]){ | 366 if(pic->linesize[1] != pic->linesize[2]){ |
367 av_log(s->avctx, AV_LOG_ERROR, "get_buffer() failed (uv stride missmatch)\n"); | 367 av_log(s->avctx, AV_LOG_ERROR, "get_buffer() failed (uv stride mismatch)\n"); |
368 return -1; | 368 return -1; |
369 } | 369 } |
370 | 370 |
371 s->linesize = pic->linesize[0]; | 371 s->linesize = pic->linesize[0]; |
372 s->uvlinesize= pic->linesize[1]; | 372 s->uvlinesize= pic->linesize[1]; |
540 COPY(qscale); | 540 COPY(qscale); |
541 COPY(lambda); | 541 COPY(lambda); |
542 COPY(lambda2); | 542 COPY(lambda2); |
543 COPY(picture_in_gop_number); | 543 COPY(picture_in_gop_number); |
544 COPY(gop_picture_number); | 544 COPY(gop_picture_number); |
545 COPY(frame_pred_frame_dct); //FIXME dont set in encode_header | 545 COPY(frame_pred_frame_dct); //FIXME don't set in encode_header |
546 COPY(progressive_frame); //FIXME dont set in encode_header | 546 COPY(progressive_frame); //FIXME don't set in encode_header |
547 COPY(partitioned_frame); //FIXME dont set in encode_header | 547 COPY(partitioned_frame); //FIXME don't set in encode_header |
548 #undef COPY | 548 #undef COPY |
549 } | 549 } |
550 | 550 |
551 /** | 551 /** |
552 * sets the given MpegEncContext to common defaults (same for encoding and decoding). | 552 * sets the given MpegEncContext to common defaults (same for encoding and decoding). |
1473 } | 1473 } |
1474 } | 1474 } |
1475 } | 1475 } |
1476 alloc: | 1476 alloc: |
1477 if(!s->encoding){ | 1477 if(!s->encoding){ |
1478 /* release non refernce frames */ | 1478 /* release non reference frames */ |
1479 for(i=0; i<MAX_PICTURE_COUNT; i++){ | 1479 for(i=0; i<MAX_PICTURE_COUNT; i++){ |
1480 if(s->picture[i].data[0] && !s->picture[i].reference /*&& s->picture[i].type!=FF_BUFFER_TYPE_SHARED*/){ | 1480 if(s->picture[i].data[0] && !s->picture[i].reference /*&& s->picture[i].type!=FF_BUFFER_TYPE_SHARED*/){ |
1481 s->avctx->release_buffer(s->avctx, (AVFrame*)&s->picture[i]); | 1481 s->avctx->release_buffer(s->avctx, (AVFrame*)&s->picture[i]); |
1482 } | 1482 } |
1483 } | 1483 } |
1524 if(s->last_picture_ptr) copy_picture(&s->last_picture, s->last_picture_ptr); | 1524 if(s->last_picture_ptr) copy_picture(&s->last_picture, s->last_picture_ptr); |
1525 if(s->next_picture_ptr) copy_picture(&s->next_picture, s->next_picture_ptr); | 1525 if(s->next_picture_ptr) copy_picture(&s->next_picture, s->next_picture_ptr); |
1526 | 1526 |
1527 if(s->pict_type != I_TYPE && (s->last_picture_ptr==NULL || s->last_picture_ptr->data[0]==NULL)){ | 1527 if(s->pict_type != I_TYPE && (s->last_picture_ptr==NULL || s->last_picture_ptr->data[0]==NULL)){ |
1528 av_log(avctx, AV_LOG_ERROR, "warning: first frame is no keyframe\n"); | 1528 av_log(avctx, AV_LOG_ERROR, "warning: first frame is no keyframe\n"); |
1529 assert(s->pict_type != B_TYPE); //these should have been dropped if we dont have a reference | 1529 assert(s->pict_type != B_TYPE); //these should have been dropped if we don't have a reference |
1530 goto alloc; | 1530 goto alloc; |
1531 } | 1531 } |
1532 | 1532 |
1533 assert(s->pict_type == I_TYPE || (s->last_picture_ptr && s->last_picture_ptr->data[0])); | 1533 assert(s->pict_type == I_TYPE || (s->last_picture_ptr && s->last_picture_ptr->data[0])); |
1534 | 1534 |
1546 } | 1546 } |
1547 | 1547 |
1548 s->hurry_up= s->avctx->hurry_up; | 1548 s->hurry_up= s->avctx->hurry_up; |
1549 s->error_resilience= avctx->error_resilience; | 1549 s->error_resilience= avctx->error_resilience; |
1550 | 1550 |
1551 /* set dequantizer, we cant do it during init as it might change for mpeg4 | 1551 /* set dequantizer, we can't do it during init as it might change for mpeg4 |
1552 and we cant do it in the header decode as init isnt called for mpeg4 there yet */ | 1552 and we can't do it in the header decode as init isnt called for mpeg4 there yet */ |
1553 if(s->mpeg_quant || s->codec_id == CODEC_ID_MPEG2VIDEO){ | 1553 if(s->mpeg_quant || s->codec_id == CODEC_ID_MPEG2VIDEO){ |
1554 s->dct_unquantize_intra = s->dct_unquantize_mpeg2_intra; | 1554 s->dct_unquantize_intra = s->dct_unquantize_mpeg2_intra; |
1555 s->dct_unquantize_inter = s->dct_unquantize_mpeg2_inter; | 1555 s->dct_unquantize_inter = s->dct_unquantize_mpeg2_inter; |
1556 }else if(s->out_format == FMT_H263 || s->out_format == FMT_H261){ | 1556 }else if(s->out_format == FMT_H263 || s->out_format == FMT_H261){ |
1557 s->dct_unquantize_intra = s->dct_unquantize_h263_intra; | 1557 s->dct_unquantize_intra = s->dct_unquantize_h263_intra; |
1606 } | 1606 } |
1607 assert(i<MAX_PICTURE_COUNT); | 1607 assert(i<MAX_PICTURE_COUNT); |
1608 #endif | 1608 #endif |
1609 | 1609 |
1610 if(s->encoding){ | 1610 if(s->encoding){ |
1611 /* release non refernce frames */ | 1611 /* release non-reference frames */ |
1612 for(i=0; i<MAX_PICTURE_COUNT; i++){ | 1612 for(i=0; i<MAX_PICTURE_COUNT; i++){ |
1613 if(s->picture[i].data[0] && !s->picture[i].reference /*&& s->picture[i].type!=FF_BUFFER_TYPE_SHARED*/){ | 1613 if(s->picture[i].data[0] && !s->picture[i].reference /*&& s->picture[i].type!=FF_BUFFER_TYPE_SHARED*/){ |
1614 s->avctx->release_buffer(s->avctx, (AVFrame*)&s->picture[i]); | 1614 s->avctx->release_buffer(s->avctx, (AVFrame*)&s->picture[i]); |
1615 } | 1615 } |
1616 } | 1616 } |
2144 | 2144 |
2145 for(i=1; i<MAX_PICTURE_COUNT; i++) | 2145 for(i=1; i<MAX_PICTURE_COUNT; i++) |
2146 s->reordered_input_picture[i-1]= s->reordered_input_picture[i]; | 2146 s->reordered_input_picture[i-1]= s->reordered_input_picture[i]; |
2147 s->reordered_input_picture[MAX_PICTURE_COUNT-1]= NULL; | 2147 s->reordered_input_picture[MAX_PICTURE_COUNT-1]= NULL; |
2148 | 2148 |
2149 /* set next picture types & ordering */ | 2149 /* set next picture type & ordering */ |
2150 if(s->reordered_input_picture[0]==NULL && s->input_picture[0]){ | 2150 if(s->reordered_input_picture[0]==NULL && s->input_picture[0]){ |
2151 if(/*s->picture_in_gop_number >= s->gop_size ||*/ s->next_picture_ptr==NULL || s->intra_only){ | 2151 if(/*s->picture_in_gop_number >= s->gop_size ||*/ s->next_picture_ptr==NULL || s->intra_only){ |
2152 s->reordered_input_picture[0]= s->input_picture[0]; | 2152 s->reordered_input_picture[0]= s->input_picture[0]; |
2153 s->reordered_input_picture[0]->pict_type= I_TYPE; | 2153 s->reordered_input_picture[0]->pict_type= I_TYPE; |
2154 s->reordered_input_picture[0]->coded_picture_number= s->coded_picture_number++; | 2154 s->reordered_input_picture[0]->coded_picture_number= s->coded_picture_number++; |
2261 s->reordered_input_picture[0]->reference= s->reordered_input_picture[0]->pict_type!=B_TYPE ? 3 : 0; | 2261 s->reordered_input_picture[0]->reference= s->reordered_input_picture[0]->pict_type!=B_TYPE ? 3 : 0; |
2262 | 2262 |
2263 copy_picture(&s->new_picture, s->reordered_input_picture[0]); | 2263 copy_picture(&s->new_picture, s->reordered_input_picture[0]); |
2264 | 2264 |
2265 if(s->reordered_input_picture[0]->type == FF_BUFFER_TYPE_SHARED){ | 2265 if(s->reordered_input_picture[0]->type == FF_BUFFER_TYPE_SHARED){ |
2266 // input is a shared pix, so we cant modifiy it -> alloc a new one & ensure that the shared one is reuseable | 2266 // input is a shared pix, so we can't modifiy it -> alloc a new one & ensure that the shared one is reuseable |
2267 | 2267 |
2268 int i= ff_find_unused_picture(s, 0); | 2268 int i= ff_find_unused_picture(s, 0); |
2269 Picture *pic= &s->picture[i]; | 2269 Picture *pic= &s->picture[i]; |
2270 | 2270 |
2271 /* mark us unused / free shared pic */ | 2271 /* mark us unused / free shared pic */ |
3208 } | 3208 } |
3209 pix_op[lowres](dest_cr, ptr, s->uvlinesize, block_s, sx, sy); | 3209 pix_op[lowres](dest_cr, ptr, s->uvlinesize, block_s, sx, sy); |
3210 } | 3210 } |
3211 | 3211 |
3212 /** | 3212 /** |
3213 * motion compesation of a single macroblock | 3213 * motion compensation of a single macroblock |
3214 * @param s context | 3214 * @param s context |
3215 * @param dest_y luma destination pointer | 3215 * @param dest_y luma destination pointer |
3216 * @param dest_cb chroma cb/u destination pointer | 3216 * @param dest_cb chroma cb/u destination pointer |
3217 * @param dest_cr chroma cr/v destination pointer | 3217 * @param dest_cr chroma cr/v destination pointer |
3218 * @param dir direction (0->forward, 1->backward) | 3218 * @param dir direction (0->forward, 1->backward) |
3457 default: assert(0); | 3457 default: assert(0); |
3458 } | 3458 } |
3459 } | 3459 } |
3460 | 3460 |
3461 /** | 3461 /** |
3462 * motion compesation of a single macroblock | 3462 * motion compensation of a single macroblock |
3463 * @param s context | 3463 * @param s context |
3464 * @param dest_y luma destination pointer | 3464 * @param dest_y luma destination pointer |
3465 * @param dest_cb chroma cb/u destination pointer | 3465 * @param dest_cb chroma cb/u destination pointer |
3466 * @param dest_cr chroma cr/v destination pointer | 3466 * @param dest_cr chroma cr/v destination pointer |
3467 * @param dir direction (0->forward, 1->backward) | 3467 * @param dir direction (0->forward, 1->backward) |
4002 y, s->picture_structure, h); | 4002 y, s->picture_structure, h); |
4003 } | 4003 } |
4004 } | 4004 } |
4005 | 4005 |
4006 void ff_init_block_index(MpegEncContext *s){ //FIXME maybe rename | 4006 void ff_init_block_index(MpegEncContext *s){ //FIXME maybe rename |
4007 const int linesize= s->current_picture.linesize[0]; //not s->linesize as this woulnd be wrong for field pics | 4007 const int linesize= s->current_picture.linesize[0]; //not s->linesize as this would be wrong for field pics |
4008 const int uvlinesize= s->current_picture.linesize[1]; | 4008 const int uvlinesize= s->current_picture.linesize[1]; |
4009 const int mb_size= 4 - s->avctx->lowres; | 4009 const int mb_size= 4 - s->avctx->lowres; |
4010 | 4010 |
4011 s->block_index[0]= s->b8_stride*(s->mb_y*2 ) - 2 + s->mb_x*2; | 4011 s->block_index[0]= s->b8_stride*(s->mb_y*2 ) - 2 + s->mb_x*2; |
4012 s->block_index[1]= s->b8_stride*(s->mb_y*2 ) - 1 + s->mb_x*2; | 4012 s->block_index[1]= s->b8_stride*(s->mb_y*2 ) - 1 + s->mb_x*2; |