comparison mpegvideo_enc.c @ 8596:68e959302527 libavcodec

replace all occurrence of ENABLE_ by the corresponding CONFIG_, HAVE_ or ARCH_ and remove all ENABLE_ definitions.
author aurel
date Wed, 14 Jan 2009 17:19:17 +0000
parents 596677256482
children a637db9f59b1
comparison
equal deleted inserted replaced
8595:2f476018b4ac 8596:68e959302527
516 s->mjpeg_vsample[1] = 2>>chroma_v_shift; 516 s->mjpeg_vsample[1] = 2>>chroma_v_shift;
517 s->mjpeg_vsample[2] = 2>>chroma_v_shift; 517 s->mjpeg_vsample[2] = 2>>chroma_v_shift;
518 s->mjpeg_hsample[0] = 2; 518 s->mjpeg_hsample[0] = 2;
519 s->mjpeg_hsample[1] = 2>>chroma_h_shift; 519 s->mjpeg_hsample[1] = 2>>chroma_h_shift;
520 s->mjpeg_hsample[2] = 2>>chroma_h_shift; 520 s->mjpeg_hsample[2] = 2>>chroma_h_shift;
521 if (!(ENABLE_MJPEG_ENCODER || ENABLE_LJPEG_ENCODER) 521 if (!(CONFIG_MJPEG_ENCODER || CONFIG_LJPEG_ENCODER)
522 || ff_mjpeg_encode_init(s) < 0) 522 || ff_mjpeg_encode_init(s) < 0)
523 return -1; 523 return -1;
524 avctx->delay=0; 524 avctx->delay=0;
525 s->low_delay=1; 525 s->low_delay=1;
526 break; 526 break;
527 case CODEC_ID_H261: 527 case CODEC_ID_H261:
528 if (!ENABLE_H261_ENCODER) return -1; 528 if (!CONFIG_H261_ENCODER) return -1;
529 if (ff_h261_get_picture_format(s->width, s->height) < 0) { 529 if (ff_h261_get_picture_format(s->width, s->height) < 0) {
530 av_log(avctx, AV_LOG_ERROR, "The specified picture size of %dx%d is not valid for the H.261 codec.\nValid sizes are 176x144, 352x288\n", s->width, s->height); 530 av_log(avctx, AV_LOG_ERROR, "The specified picture size of %dx%d is not valid for the H.261 codec.\nValid sizes are 176x144, 352x288\n", s->width, s->height);
531 return -1; 531 return -1;
532 } 532 }
533 s->out_format = FMT_H261; 533 s->out_format = FMT_H261;
534 avctx->delay=0; 534 avctx->delay=0;
535 s->low_delay=1; 535 s->low_delay=1;
536 break; 536 break;
537 case CODEC_ID_H263: 537 case CODEC_ID_H263:
538 if (!ENABLE_H263_ENCODER) return -1; 538 if (!CONFIG_H263_ENCODER) return -1;
539 if (h263_get_picture_format(s->width, s->height) == 7) { 539 if (h263_get_picture_format(s->width, s->height) == 7) {
540 av_log(avctx, AV_LOG_INFO, "The specified picture size of %dx%d is not valid for the H.263 codec.\nValid sizes are 128x96, 176x144, 352x288, 704x576, and 1408x1152. Try H.263+.\n", s->width, s->height); 540 av_log(avctx, AV_LOG_INFO, "The specified picture size of %dx%d is not valid for the H.263 codec.\nValid sizes are 128x96, 176x144, 352x288, 704x576, and 1408x1152. Try H.263+.\n", s->width, s->height);
541 return -1; 541 return -1;
542 } 542 }
543 s->out_format = FMT_H263; 543 s->out_format = FMT_H263;
659 s->denoise_dct = denoise_dct_c; 659 s->denoise_dct = denoise_dct_c;
660 s->fast_dct_quantize = s->dct_quantize; 660 s->fast_dct_quantize = s->dct_quantize;
661 if(avctx->trellis) 661 if(avctx->trellis)
662 s->dct_quantize = dct_quantize_trellis_c; 662 s->dct_quantize = dct_quantize_trellis_c;
663 663
664 if((ENABLE_H263P_ENCODER || ENABLE_RV20_ENCODER) && s->modified_quant) 664 if((CONFIG_H263P_ENCODER || CONFIG_RV20_ENCODER) && s->modified_quant)
665 s->chroma_qscale_table= ff_h263_chroma_qscale_table; 665 s->chroma_qscale_table= ff_h263_chroma_qscale_table;
666 s->progressive_frame= 666 s->progressive_frame=
667 s->progressive_sequence= !(avctx->flags & (CODEC_FLAG_INTERLACED_DCT|CODEC_FLAG_INTERLACED_ME|CODEC_FLAG_ALT_SCAN)); 667 s->progressive_sequence= !(avctx->flags & (CODEC_FLAG_INTERLACED_DCT|CODEC_FLAG_INTERLACED_ME|CODEC_FLAG_ALT_SCAN));
668 s->quant_precision=5; 668 s->quant_precision=5;
669 669
670 ff_set_cmp(&s->dsp, s->dsp.ildct_cmp, s->avctx->ildct_cmp); 670 ff_set_cmp(&s->dsp, s->dsp.ildct_cmp, s->avctx->ildct_cmp);
671 ff_set_cmp(&s->dsp, s->dsp.frame_skip_cmp, s->avctx->frame_skip_cmp); 671 ff_set_cmp(&s->dsp, s->dsp.frame_skip_cmp, s->avctx->frame_skip_cmp);
672 672
673 if (ENABLE_H261_ENCODER && s->out_format == FMT_H261) 673 if (CONFIG_H261_ENCODER && s->out_format == FMT_H261)
674 ff_h261_encode_init(s); 674 ff_h261_encode_init(s);
675 if (ENABLE_ANY_H263_ENCODER && s->out_format == FMT_H263) 675 if (CONFIG_ANY_H263_ENCODER && s->out_format == FMT_H263)
676 h263_encode_init(s); 676 h263_encode_init(s);
677 if (ENABLE_MSMPEG4_ENCODER && s->msmpeg4_version) 677 if (CONFIG_MSMPEG4_ENCODER && s->msmpeg4_version)
678 ff_msmpeg4_encode_init(s); 678 ff_msmpeg4_encode_init(s);
679 if ((ENABLE_MPEG1VIDEO_ENCODER || ENABLE_MPEG2VIDEO_ENCODER) 679 if ((CONFIG_MPEG1VIDEO_ENCODER || CONFIG_MPEG2VIDEO_ENCODER)
680 && s->out_format == FMT_MPEG1) 680 && s->out_format == FMT_MPEG1)
681 ff_mpeg1_encode_init(s); 681 ff_mpeg1_encode_init(s);
682 682
683 /* init q matrix */ 683 /* init q matrix */
684 for(i=0;i<64;i++) { 684 for(i=0;i<64;i++) {
685 int j= s->dsp.idct_permutation[i]; 685 int j= s->dsp.idct_permutation[i];
686 if(ENABLE_MPEG4_ENCODER && s->codec_id==CODEC_ID_MPEG4 && s->mpeg_quant){ 686 if(CONFIG_MPEG4_ENCODER && s->codec_id==CODEC_ID_MPEG4 && s->mpeg_quant){
687 s->intra_matrix[j] = ff_mpeg4_default_intra_matrix[i]; 687 s->intra_matrix[j] = ff_mpeg4_default_intra_matrix[i];
688 s->inter_matrix[j] = ff_mpeg4_default_non_intra_matrix[i]; 688 s->inter_matrix[j] = ff_mpeg4_default_non_intra_matrix[i];
689 }else if(s->out_format == FMT_H263 || s->out_format == FMT_H261){ 689 }else if(s->out_format == FMT_H263 || s->out_format == FMT_H261){
690 s->intra_matrix[j] = 690 s->intra_matrix[j] =
691 s->inter_matrix[j] = ff_mpeg1_default_non_intra_matrix[i]; 691 s->inter_matrix[j] = ff_mpeg1_default_non_intra_matrix[i];
720 MpegEncContext *s = avctx->priv_data; 720 MpegEncContext *s = avctx->priv_data;
721 721
722 ff_rate_control_uninit(s); 722 ff_rate_control_uninit(s);
723 723
724 MPV_common_end(s); 724 MPV_common_end(s);
725 if ((ENABLE_MJPEG_ENCODER || ENABLE_LJPEG_ENCODER) && s->out_format == FMT_MJPEG) 725 if ((CONFIG_MJPEG_ENCODER || CONFIG_LJPEG_ENCODER) && s->out_format == FMT_MJPEG)
726 ff_mjpeg_encode_close(s); 726 ff_mjpeg_encode_close(s);
727 727
728 av_freep(&avctx->extradata); 728 av_freep(&avctx->extradata);
729 729
730 return 0; 730 return 0;
1224 avctx->p_count = s->mb_num - s->i_count - s->skip_count; //FIXME f/b_count in avctx 1224 avctx->p_count = s->mb_num - s->i_count - s->skip_count; //FIXME f/b_count in avctx
1225 avctx->skip_count = s->skip_count; 1225 avctx->skip_count = s->skip_count;
1226 1226
1227 MPV_frame_end(s); 1227 MPV_frame_end(s);
1228 1228
1229 if (ENABLE_MJPEG_ENCODER && s->out_format == FMT_MJPEG) 1229 if (CONFIG_MJPEG_ENCODER && s->out_format == FMT_MJPEG)
1230 ff_mjpeg_encode_picture_trailer(s); 1230 ff_mjpeg_encode_picture_trailer(s);
1231 1231
1232 if(avctx->rc_buffer_size){ 1232 if(avctx->rc_buffer_size){
1233 RateControlContext *rcc= &s->rc_context; 1233 RateControlContext *rcc= &s->rc_context;
1234 int max_size= rcc->buffer_index * avctx->rc_max_available_vbv_use; 1234 int max_size= rcc->buffer_index * avctx->rc_max_available_vbv_use;
1685 1685
1686 /* huffman encode */ 1686 /* huffman encode */
1687 switch(s->codec_id){ //FIXME funct ptr could be slightly faster 1687 switch(s->codec_id){ //FIXME funct ptr could be slightly faster
1688 case CODEC_ID_MPEG1VIDEO: 1688 case CODEC_ID_MPEG1VIDEO:
1689 case CODEC_ID_MPEG2VIDEO: 1689 case CODEC_ID_MPEG2VIDEO:
1690 if (ENABLE_MPEG1VIDEO_ENCODER || ENABLE_MPEG2VIDEO_ENCODER) 1690 if (CONFIG_MPEG1VIDEO_ENCODER || CONFIG_MPEG2VIDEO_ENCODER)
1691 mpeg1_encode_mb(s, s->block, motion_x, motion_y); 1691 mpeg1_encode_mb(s, s->block, motion_x, motion_y);
1692 break; 1692 break;
1693 case CODEC_ID_MPEG4: 1693 case CODEC_ID_MPEG4:
1694 if (ENABLE_MPEG4_ENCODER) 1694 if (CONFIG_MPEG4_ENCODER)
1695 mpeg4_encode_mb(s, s->block, motion_x, motion_y); 1695 mpeg4_encode_mb(s, s->block, motion_x, motion_y);
1696 break; 1696 break;
1697 case CODEC_ID_MSMPEG4V2: 1697 case CODEC_ID_MSMPEG4V2:
1698 case CODEC_ID_MSMPEG4V3: 1698 case CODEC_ID_MSMPEG4V3:
1699 case CODEC_ID_WMV1: 1699 case CODEC_ID_WMV1:
1700 if (ENABLE_MSMPEG4_ENCODER) 1700 if (CONFIG_MSMPEG4_ENCODER)
1701 msmpeg4_encode_mb(s, s->block, motion_x, motion_y); 1701 msmpeg4_encode_mb(s, s->block, motion_x, motion_y);
1702 break; 1702 break;
1703 case CODEC_ID_WMV2: 1703 case CODEC_ID_WMV2:
1704 if (ENABLE_WMV2_ENCODER) 1704 if (CONFIG_WMV2_ENCODER)
1705 ff_wmv2_encode_mb(s, s->block, motion_x, motion_y); 1705 ff_wmv2_encode_mb(s, s->block, motion_x, motion_y);
1706 break; 1706 break;
1707 case CODEC_ID_H261: 1707 case CODEC_ID_H261:
1708 if (ENABLE_H261_ENCODER) 1708 if (CONFIG_H261_ENCODER)
1709 ff_h261_encode_mb(s, s->block, motion_x, motion_y); 1709 ff_h261_encode_mb(s, s->block, motion_x, motion_y);
1710 break; 1710 break;
1711 case CODEC_ID_H263: 1711 case CODEC_ID_H263:
1712 case CODEC_ID_H263P: 1712 case CODEC_ID_H263P:
1713 case CODEC_ID_FLV1: 1713 case CODEC_ID_FLV1:
1714 case CODEC_ID_RV10: 1714 case CODEC_ID_RV10:
1715 case CODEC_ID_RV20: 1715 case CODEC_ID_RV20:
1716 if (ENABLE_H263_ENCODER || ENABLE_H263P_ENCODER || 1716 if (CONFIG_H263_ENCODER || CONFIG_H263P_ENCODER ||
1717 ENABLE_FLV_ENCODER || ENABLE_RV10_ENCODER || ENABLE_RV20_ENCODER) 1717 CONFIG_FLV_ENCODER || CONFIG_RV10_ENCODER || CONFIG_RV20_ENCODER)
1718 h263_encode_mb(s, s->block, motion_x, motion_y); 1718 h263_encode_mb(s, s->block, motion_x, motion_y);
1719 break; 1719 break;
1720 case CODEC_ID_MJPEG: 1720 case CODEC_ID_MJPEG:
1721 if (ENABLE_MJPEG_ENCODER) 1721 if (CONFIG_MJPEG_ENCODER)
1722 ff_mjpeg_encode_mb(s, s->block); 1722 ff_mjpeg_encode_mb(s, s->block);
1723 break; 1723 break;
1724 default: 1724 default:
1725 assert(0); 1725 assert(0);
1726 } 1726 }
1963 } 1963 }
1964 return 0; 1964 return 0;
1965 } 1965 }
1966 1966
1967 static void write_slice_end(MpegEncContext *s){ 1967 static void write_slice_end(MpegEncContext *s){
1968 if(ENABLE_MPEG4_ENCODER && s->codec_id==CODEC_ID_MPEG4){ 1968 if(CONFIG_MPEG4_ENCODER && s->codec_id==CODEC_ID_MPEG4){
1969 if(s->partitioned_frame){ 1969 if(s->partitioned_frame){
1970 ff_mpeg4_merge_partitions(s); 1970 ff_mpeg4_merge_partitions(s);
1971 } 1971 }
1972 1972
1973 ff_mpeg4_stuffing(&s->pb); 1973 ff_mpeg4_stuffing(&s->pb);
1974 }else if(ENABLE_MJPEG_ENCODER && s->out_format == FMT_MJPEG){ 1974 }else if(CONFIG_MJPEG_ENCODER && s->out_format == FMT_MJPEG){
1975 ff_mjpeg_encode_stuffing(&s->pb); 1975 ff_mjpeg_encode_stuffing(&s->pb);
1976 } 1976 }
1977 1977
1978 align_put_bits(&s->pb); 1978 align_put_bits(&s->pb);
1979 flush_put_bits(&s->pb); 1979 flush_put_bits(&s->pb);
2026 2026
2027 switch(s->codec_id){ 2027 switch(s->codec_id){
2028 case CODEC_ID_H263: 2028 case CODEC_ID_H263:
2029 case CODEC_ID_H263P: 2029 case CODEC_ID_H263P:
2030 case CODEC_ID_FLV1: 2030 case CODEC_ID_FLV1:
2031 if (ENABLE_H263_ENCODER || ENABLE_H263P_ENCODER || ENABLE_FLV_ENCODER) 2031 if (CONFIG_H263_ENCODER || CONFIG_H263P_ENCODER || CONFIG_FLV_ENCODER)
2032 s->gob_index = ff_h263_get_gob_height(s); 2032 s->gob_index = ff_h263_get_gob_height(s);
2033 break; 2033 break;
2034 case CODEC_ID_MPEG4: 2034 case CODEC_ID_MPEG4:
2035 if(ENABLE_MPEG4_ENCODER && s->partitioned_frame) 2035 if(CONFIG_MPEG4_ENCODER && s->partitioned_frame)
2036 ff_mpeg4_init_partitions(s); 2036 ff_mpeg4_init_partitions(s);
2037 break; 2037 break;
2038 } 2038 }
2039 2039
2040 s->resync_mb_x=0; 2040 s->resync_mb_x=0;
2070 2070
2071 s->mb_x = mb_x; 2071 s->mb_x = mb_x;
2072 s->mb_y = mb_y; // moved into loop, can get changed by H.261 2072 s->mb_y = mb_y; // moved into loop, can get changed by H.261
2073 ff_update_block_index(s); 2073 ff_update_block_index(s);
2074 2074
2075 if(ENABLE_H261_ENCODER && s->codec_id == CODEC_ID_H261){ 2075 if(CONFIG_H261_ENCODER && s->codec_id == CODEC_ID_H261){
2076 ff_h261_reorder_mb_index(s); 2076 ff_h261_reorder_mb_index(s);
2077 xy= s->mb_y*s->mb_stride + s->mb_x; 2077 xy= s->mb_y*s->mb_stride + s->mb_x;
2078 mb_type= s->mb_type[xy]; 2078 mb_type= s->mb_type[xy];
2079 } 2079 }
2080 2080
2103 2103
2104 if(is_gob_start){ 2104 if(is_gob_start){
2105 if(s->start_mb_y != mb_y || mb_x!=0){ 2105 if(s->start_mb_y != mb_y || mb_x!=0){
2106 write_slice_end(s); 2106 write_slice_end(s);
2107 2107
2108 if(ENABLE_MPEG4_ENCODER && s->codec_id==CODEC_ID_MPEG4 && s->partitioned_frame){ 2108 if(CONFIG_MPEG4_ENCODER && s->codec_id==CODEC_ID_MPEG4 && s->partitioned_frame){
2109 ff_mpeg4_init_partitions(s); 2109 ff_mpeg4_init_partitions(s);
2110 } 2110 }
2111 } 2111 }
2112 2112
2113 assert((put_bits_count(&s->pb)&7) == 0); 2113 assert((put_bits_count(&s->pb)&7) == 0);
2130 s->avctx->rtp_callback(s->avctx, s->ptr_lastgob, current_packet_size, number_mb); 2130 s->avctx->rtp_callback(s->avctx, s->ptr_lastgob, current_packet_size, number_mb);
2131 } 2131 }
2132 2132
2133 switch(s->codec_id){ 2133 switch(s->codec_id){
2134 case CODEC_ID_MPEG4: 2134 case CODEC_ID_MPEG4:
2135 if (ENABLE_MPEG4_ENCODER) { 2135 if (CONFIG_MPEG4_ENCODER) {
2136 ff_mpeg4_encode_video_packet_header(s); 2136 ff_mpeg4_encode_video_packet_header(s);
2137 ff_mpeg4_clean_buffers(s); 2137 ff_mpeg4_clean_buffers(s);
2138 } 2138 }
2139 break; 2139 break;
2140 case CODEC_ID_MPEG1VIDEO: 2140 case CODEC_ID_MPEG1VIDEO:
2141 case CODEC_ID_MPEG2VIDEO: 2141 case CODEC_ID_MPEG2VIDEO:
2142 if (ENABLE_MPEG1VIDEO_ENCODER || ENABLE_MPEG2VIDEO_ENCODER) { 2142 if (CONFIG_MPEG1VIDEO_ENCODER || CONFIG_MPEG2VIDEO_ENCODER) {
2143 ff_mpeg1_encode_slice_header(s); 2143 ff_mpeg1_encode_slice_header(s);
2144 ff_mpeg1_clean_buffers(s); 2144 ff_mpeg1_clean_buffers(s);
2145 } 2145 }
2146 break; 2146 break;
2147 case CODEC_ID_H263: 2147 case CODEC_ID_H263:
2148 case CODEC_ID_H263P: 2148 case CODEC_ID_H263P:
2149 if (ENABLE_H263_ENCODER || ENABLE_H263P_ENCODER) 2149 if (CONFIG_H263_ENCODER || CONFIG_H263P_ENCODER)
2150 h263_encode_gob_header(s, mb_y); 2150 h263_encode_gob_header(s, mb_y);
2151 break; 2151 break;
2152 } 2152 }
2153 2153
2154 if(s->flags&CODEC_FLAG_PASS1){ 2154 if(s->flags&CODEC_FLAG_PASS1){
2353 } 2353 }
2354 } 2354 }
2355 } 2355 }
2356 } 2356 }
2357 } 2357 }
2358 if(ENABLE_MPEG4_ENCODER && mb_type&CANDIDATE_MB_TYPE_DIRECT){ 2358 if(CONFIG_MPEG4_ENCODER && mb_type&CANDIDATE_MB_TYPE_DIRECT){
2359 int mx= s->b_direct_mv_table[xy][0]; 2359 int mx= s->b_direct_mv_table[xy][0];
2360 int my= s->b_direct_mv_table[xy][1]; 2360 int my= s->b_direct_mv_table[xy][1];
2361 2361
2362 backup_s.dquant = 0; 2362 backup_s.dquant = 0;
2363 s->mv_dir = MV_DIR_FORWARD | MV_DIR_BACKWARD | MV_DIRECT; 2363 s->mv_dir = MV_DIR_FORWARD | MV_DIR_BACKWARD | MV_DIRECT;
2364 s->mb_intra= 0; 2364 s->mb_intra= 0;
2365 ff_mpeg4_set_direct_mv(s, mx, my); 2365 ff_mpeg4_set_direct_mv(s, mx, my);
2366 encode_mb_hq(s, &backup_s, &best_s, CANDIDATE_MB_TYPE_DIRECT, pb, pb2, tex_pb, 2366 encode_mb_hq(s, &backup_s, &best_s, CANDIDATE_MB_TYPE_DIRECT, pb, pb2, tex_pb,
2367 &dmin, &next_block, mx, my); 2367 &dmin, &next_block, mx, my);
2368 } 2368 }
2369 if(ENABLE_MPEG4_ENCODER && mb_type&CANDIDATE_MB_TYPE_DIRECT0){ 2369 if(CONFIG_MPEG4_ENCODER && mb_type&CANDIDATE_MB_TYPE_DIRECT0){
2370 backup_s.dquant = 0; 2370 backup_s.dquant = 0;
2371 s->mv_dir = MV_DIR_FORWARD | MV_DIR_BACKWARD | MV_DIRECT; 2371 s->mv_dir = MV_DIR_FORWARD | MV_DIR_BACKWARD | MV_DIRECT;
2372 s->mb_intra= 0; 2372 s->mb_intra= 0;
2373 ff_mpeg4_set_direct_mv(s, 0, 0); 2373 ff_mpeg4_set_direct_mv(s, 0, 0);
2374 encode_mb_hq(s, &backup_s, &best_s, CANDIDATE_MB_TYPE_DIRECT, pb, pb2, tex_pb, 2374 encode_mb_hq(s, &backup_s, &best_s, CANDIDATE_MB_TYPE_DIRECT, pb, pb2, tex_pb,
2379 for(i=0; i<6; i++) 2379 for(i=0; i<6; i++)
2380 coded |= s->block_last_index[i]; 2380 coded |= s->block_last_index[i];
2381 if(coded){ 2381 if(coded){
2382 int mx,my; 2382 int mx,my;
2383 memcpy(s->mv, best_s.mv, sizeof(s->mv)); 2383 memcpy(s->mv, best_s.mv, sizeof(s->mv));
2384 if(ENABLE_MPEG4_ENCODER && best_s.mv_dir & MV_DIRECT){ 2384 if(CONFIG_MPEG4_ENCODER && best_s.mv_dir & MV_DIRECT){
2385 mx=my=0; //FIXME find the one we actually used 2385 mx=my=0; //FIXME find the one we actually used
2386 ff_mpeg4_set_direct_mv(s, mx, my); 2386 ff_mpeg4_set_direct_mv(s, mx, my);
2387 }else if(best_s.mv_dir&MV_DIR_BACKWARD){ 2387 }else if(best_s.mv_dir&MV_DIR_BACKWARD){
2388 mx= s->mv[1][0][0]; 2388 mx= s->mv[1][0][0];
2389 my= s->mv[1][0][1]; 2389 my= s->mv[1][0][1];
2427 ff_copy_bits(&backup_s.tex_pb, bit_buf_tex[next_block^1], tex_pb_bits_count); 2427 ff_copy_bits(&backup_s.tex_pb, bit_buf_tex[next_block^1], tex_pb_bits_count);
2428 s->tex_pb= backup_s.tex_pb; 2428 s->tex_pb= backup_s.tex_pb;
2429 } 2429 }
2430 s->last_bits= put_bits_count(&s->pb); 2430 s->last_bits= put_bits_count(&s->pb);
2431 2431
2432 if (ENABLE_ANY_H263_ENCODER && 2432 if (CONFIG_ANY_H263_ENCODER &&
2433 s->out_format == FMT_H263 && s->pict_type!=FF_B_TYPE) 2433 s->out_format == FMT_H263 && s->pict_type!=FF_B_TYPE)
2434 ff_h263_update_motion_val(s); 2434 ff_h263_update_motion_val(s);
2435 2435
2436 if(next_block==0){ //FIXME 16 vs linesize16 2436 if(next_block==0){ //FIXME 16 vs linesize16
2437 s->dsp.put_pixels_tab[0][0](s->dest[0], s->rd_scratchpad , s->linesize ,16); 2437 s->dsp.put_pixels_tab[0][0](s->dest[0], s->rd_scratchpad , s->linesize ,16);
2477 s->mv[0][i][0] = s->current_picture.motion_val[0][s->block_index[i]][0]; 2477 s->mv[0][i][0] = s->current_picture.motion_val[0][s->block_index[i]][0];
2478 s->mv[0][i][1] = s->current_picture.motion_val[0][s->block_index[i]][1]; 2478 s->mv[0][i][1] = s->current_picture.motion_val[0][s->block_index[i]][1];
2479 } 2479 }
2480 break; 2480 break;
2481 case CANDIDATE_MB_TYPE_DIRECT: 2481 case CANDIDATE_MB_TYPE_DIRECT:
2482 if (ENABLE_MPEG4_ENCODER) { 2482 if (CONFIG_MPEG4_ENCODER) {
2483 s->mv_dir = MV_DIR_FORWARD|MV_DIR_BACKWARD|MV_DIRECT; 2483 s->mv_dir = MV_DIR_FORWARD|MV_DIR_BACKWARD|MV_DIRECT;
2484 s->mb_intra= 0; 2484 s->mb_intra= 0;
2485 motion_x=s->b_direct_mv_table[xy][0]; 2485 motion_x=s->b_direct_mv_table[xy][0];
2486 motion_y=s->b_direct_mv_table[xy][1]; 2486 motion_y=s->b_direct_mv_table[xy][1];
2487 ff_mpeg4_set_direct_mv(s, motion_x, motion_y); 2487 ff_mpeg4_set_direct_mv(s, motion_x, motion_y);
2488 } 2488 }
2489 break; 2489 break;
2490 case CANDIDATE_MB_TYPE_DIRECT0: 2490 case CANDIDATE_MB_TYPE_DIRECT0:
2491 if (ENABLE_MPEG4_ENCODER) { 2491 if (CONFIG_MPEG4_ENCODER) {
2492 s->mv_dir = MV_DIR_FORWARD|MV_DIR_BACKWARD|MV_DIRECT; 2492 s->mv_dir = MV_DIR_FORWARD|MV_DIR_BACKWARD|MV_DIRECT;
2493 s->mb_intra= 0; 2493 s->mb_intra= 0;
2494 ff_mpeg4_set_direct_mv(s, 0, 0); 2494 ff_mpeg4_set_direct_mv(s, 0, 0);
2495 } 2495 }
2496 break; 2496 break;
2554 encode_mb(s, motion_x, motion_y); 2554 encode_mb(s, motion_x, motion_y);
2555 2555
2556 // RAL: Update last macroblock type 2556 // RAL: Update last macroblock type
2557 s->last_mv_dir = s->mv_dir; 2557 s->last_mv_dir = s->mv_dir;
2558 2558
2559 if (ENABLE_ANY_H263_ENCODER && 2559 if (CONFIG_ANY_H263_ENCODER &&
2560 s->out_format == FMT_H263 && s->pict_type!=FF_B_TYPE) 2560 s->out_format == FMT_H263 && s->pict_type!=FF_B_TYPE)
2561 ff_h263_update_motion_val(s); 2561 ff_h263_update_motion_val(s);
2562 2562
2563 MPV_decode_mb(s, s->block); 2563 MPV_decode_mb(s, s->block);
2564 } 2564 }
2585 s->current_picture.error[2] += sse( 2585 s->current_picture.error[2] += sse(
2586 s, s->new_picture.data[2] + s->mb_x*8 + s->mb_y*s->uvlinesize*chr_h, 2586 s, s->new_picture.data[2] + s->mb_x*8 + s->mb_y*s->uvlinesize*chr_h,
2587 s->dest[2], w>>1, h>>s->chroma_y_shift, s->uvlinesize); 2587 s->dest[2], w>>1, h>>s->chroma_y_shift, s->uvlinesize);
2588 } 2588 }
2589 if(s->loop_filter){ 2589 if(s->loop_filter){
2590 if(ENABLE_ANY_H263_ENCODER && s->out_format == FMT_H263) 2590 if(CONFIG_ANY_H263_ENCODER && s->out_format == FMT_H263)
2591 ff_h263_loop_filter(s); 2591 ff_h263_loop_filter(s);
2592 } 2592 }
2593 //printf("MB %d %d bits\n", s->mb_x+s->mb_y*s->mb_stride, put_bits_count(&s->pb)); 2593 //printf("MB %d %d bits\n", s->mb_x+s->mb_y*s->mb_stride, put_bits_count(&s->pb));
2594 } 2594 }
2595 } 2595 }
2596 2596
2597 //not beautiful here but we must write it before flushing so it has to be here 2597 //not beautiful here but we must write it before flushing so it has to be here
2598 if (ENABLE_MSMPEG4_ENCODER && s->msmpeg4_version && s->msmpeg4_version<4 && s->pict_type == FF_I_TYPE) 2598 if (CONFIG_MSMPEG4_ENCODER && s->msmpeg4_version && s->msmpeg4_version<4 && s->pict_type == FF_I_TYPE)
2599 msmpeg4_encode_ext_header(s); 2599 msmpeg4_encode_ext_header(s);
2600 2600
2601 write_slice_end(s); 2601 write_slice_end(s);
2602 2602
2603 /* Send the last GOB if RTP */ 2603 /* Send the last GOB if RTP */
2664 } 2664 }
2665 2665
2666 if(s->adaptive_quant){ 2666 if(s->adaptive_quant){
2667 switch(s->codec_id){ 2667 switch(s->codec_id){
2668 case CODEC_ID_MPEG4: 2668 case CODEC_ID_MPEG4:
2669 if (ENABLE_MPEG4_ENCODER) 2669 if (CONFIG_MPEG4_ENCODER)
2670 ff_clean_mpeg4_qscales(s); 2670 ff_clean_mpeg4_qscales(s);
2671 break; 2671 break;
2672 case CODEC_ID_H263: 2672 case CODEC_ID_H263:
2673 case CODEC_ID_H263P: 2673 case CODEC_ID_H263P:
2674 case CODEC_ID_FLV1: 2674 case CODEC_ID_FLV1:
2675 if (ENABLE_H263_ENCODER||ENABLE_H263P_ENCODER||ENABLE_FLV_ENCODER) 2675 if (CONFIG_H263_ENCODER||CONFIG_H263P_ENCODER||CONFIG_FLV_ENCODER)
2676 ff_clean_h263_qscales(s); 2676 ff_clean_h263_qscales(s);
2677 break; 2677 break;
2678 } 2678 }
2679 2679
2680 s->lambda= s->lambda_table[0]; 2680 s->lambda= s->lambda_table[0];
2714 2714
2715 /* we need to initialize some time vars before we can encode b-frames */ 2715 /* we need to initialize some time vars before we can encode b-frames */
2716 // RAL: Condition added for MPEG1VIDEO 2716 // RAL: Condition added for MPEG1VIDEO
2717 if (s->codec_id == CODEC_ID_MPEG1VIDEO || s->codec_id == CODEC_ID_MPEG2VIDEO || (s->h263_pred && !s->h263_msmpeg4)) 2717 if (s->codec_id == CODEC_ID_MPEG1VIDEO || s->codec_id == CODEC_ID_MPEG2VIDEO || (s->h263_pred && !s->h263_msmpeg4))
2718 set_frame_distances(s); 2718 set_frame_distances(s);
2719 if(ENABLE_MPEG4_ENCODER && s->codec_id == CODEC_ID_MPEG4) 2719 if(CONFIG_MPEG4_ENCODER && s->codec_id == CODEC_ID_MPEG4)
2720 ff_set_mpeg4_time(s); 2720 ff_set_mpeg4_time(s);
2721 2721
2722 s->me.scene_change_score=0; 2722 s->me.scene_change_score=0;
2723 2723
2724 // s->lambda= s->current_picture_ptr->quality; //FIXME qscale / ... stuff for ME rate distortion 2724 // s->lambda= s->current_picture_ptr->quality; //FIXME qscale / ... stuff for ME rate distortion
2869 s->picture_in_gop_number=0; 2869 s->picture_in_gop_number=0;
2870 2870
2871 s->last_bits= put_bits_count(&s->pb); 2871 s->last_bits= put_bits_count(&s->pb);
2872 switch(s->out_format) { 2872 switch(s->out_format) {
2873 case FMT_MJPEG: 2873 case FMT_MJPEG:
2874 if (ENABLE_MJPEG_ENCODER) 2874 if (CONFIG_MJPEG_ENCODER)
2875 ff_mjpeg_encode_picture_header(s); 2875 ff_mjpeg_encode_picture_header(s);
2876 break; 2876 break;
2877 case FMT_H261: 2877 case FMT_H261:
2878 if (ENABLE_H261_ENCODER) 2878 if (CONFIG_H261_ENCODER)
2879 ff_h261_encode_picture_header(s, picture_number); 2879 ff_h261_encode_picture_header(s, picture_number);
2880 break; 2880 break;
2881 case FMT_H263: 2881 case FMT_H263:
2882 if (ENABLE_WMV2_ENCODER && s->codec_id == CODEC_ID_WMV2) 2882 if (CONFIG_WMV2_ENCODER && s->codec_id == CODEC_ID_WMV2)
2883 ff_wmv2_encode_picture_header(s, picture_number); 2883 ff_wmv2_encode_picture_header(s, picture_number);
2884 else if (ENABLE_MSMPEG4_ENCODER && s->h263_msmpeg4) 2884 else if (CONFIG_MSMPEG4_ENCODER && s->h263_msmpeg4)
2885 msmpeg4_encode_picture_header(s, picture_number); 2885 msmpeg4_encode_picture_header(s, picture_number);
2886 else if (ENABLE_MPEG4_ENCODER && s->h263_pred) 2886 else if (CONFIG_MPEG4_ENCODER && s->h263_pred)
2887 mpeg4_encode_picture_header(s, picture_number); 2887 mpeg4_encode_picture_header(s, picture_number);
2888 else if (ENABLE_RV10_ENCODER && s->codec_id == CODEC_ID_RV10) 2888 else if (CONFIG_RV10_ENCODER && s->codec_id == CODEC_ID_RV10)
2889 rv10_encode_picture_header(s, picture_number); 2889 rv10_encode_picture_header(s, picture_number);
2890 else if (ENABLE_RV20_ENCODER && s->codec_id == CODEC_ID_RV20) 2890 else if (CONFIG_RV20_ENCODER && s->codec_id == CODEC_ID_RV20)
2891 rv20_encode_picture_header(s, picture_number); 2891 rv20_encode_picture_header(s, picture_number);
2892 else if (ENABLE_FLV_ENCODER && s->codec_id == CODEC_ID_FLV1) 2892 else if (CONFIG_FLV_ENCODER && s->codec_id == CODEC_ID_FLV1)
2893 ff_flv_encode_picture_header(s, picture_number); 2893 ff_flv_encode_picture_header(s, picture_number);
2894 else if (ENABLE_ANY_H263_ENCODER) 2894 else if (CONFIG_ANY_H263_ENCODER)
2895 h263_encode_picture_header(s, picture_number); 2895 h263_encode_picture_header(s, picture_number);
2896 break; 2896 break;
2897 case FMT_MPEG1: 2897 case FMT_MPEG1:
2898 if (ENABLE_MPEG1VIDEO_ENCODER || ENABLE_MPEG2VIDEO_ENCODER) 2898 if (CONFIG_MPEG1VIDEO_ENCODER || CONFIG_MPEG2VIDEO_ENCODER)
2899 mpeg1_encode_picture_header(s, picture_number); 2899 mpeg1_encode_picture_header(s, picture_number);
2900 break; 2900 break;
2901 case FMT_H264: 2901 case FMT_H264:
2902 break; 2902 break;
2903 default: 2903 default: