Mercurial > libavcodec.hg
comparison mpegvideo_enc.c @ 5277:7b3fcb7c61ce libavcodec
Avoid linking with h263.c functions when the relevant codecs
are not compiled in.
author | aurel |
---|---|
date | Tue, 10 Jul 2007 20:23:08 +0000 |
parents | 101f20612a94 |
children | ef85411bb7e8 |
comparison
equal
deleted
inserted
replaced
5276:0d71d658b19f | 5277:7b3fcb7c61ce |
---|---|
31 #include "dsputil.h" | 31 #include "dsputil.h" |
32 #include "mpegvideo.h" | 32 #include "mpegvideo.h" |
33 #include "mpegvideo_common.h" | 33 #include "mpegvideo_common.h" |
34 #include "mjpegenc.h" | 34 #include "mjpegenc.h" |
35 #include "msmpeg4.h" | 35 #include "msmpeg4.h" |
36 #include "h263.h" | |
36 #include "faandct.h" | 37 #include "faandct.h" |
37 #include <limits.h> | 38 #include <limits.h> |
38 | 39 |
39 //#undef NDEBUG | 40 //#undef NDEBUG |
40 //#include <assert.h> | 41 //#include <assert.h> |
541 s->out_format = FMT_H261; | 542 s->out_format = FMT_H261; |
542 avctx->delay=0; | 543 avctx->delay=0; |
543 s->low_delay=1; | 544 s->low_delay=1; |
544 break; | 545 break; |
545 case CODEC_ID_H263: | 546 case CODEC_ID_H263: |
547 if (!ENABLE_H263_ENCODER) return -1; | |
546 if (h263_get_picture_format(s->width, s->height) == 7) { | 548 if (h263_get_picture_format(s->width, s->height) == 7) { |
547 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); | 549 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); |
548 return -1; | 550 return -1; |
549 } | 551 } |
550 s->out_format = FMT_H263; | 552 s->out_format = FMT_H263; |
666 s->denoise_dct = denoise_dct_c; | 668 s->denoise_dct = denoise_dct_c; |
667 s->fast_dct_quantize = s->dct_quantize; | 669 s->fast_dct_quantize = s->dct_quantize; |
668 if(s->flags & CODEC_FLAG_TRELLIS_QUANT) | 670 if(s->flags & CODEC_FLAG_TRELLIS_QUANT) |
669 s->dct_quantize = dct_quantize_trellis_c; | 671 s->dct_quantize = dct_quantize_trellis_c; |
670 | 672 |
671 if(s->modified_quant) | 673 if((ENABLE_H263P_ENCODER || ENABLE_RV20_ENCODER) && s->modified_quant) |
672 s->chroma_qscale_table= ff_h263_chroma_qscale_table; | 674 s->chroma_qscale_table= ff_h263_chroma_qscale_table; |
673 s->progressive_frame= | 675 s->progressive_frame= |
674 s->progressive_sequence= !(avctx->flags & (CODEC_FLAG_INTERLACED_DCT|CODEC_FLAG_INTERLACED_ME|CODEC_FLAG_ALT_SCAN)); | 676 s->progressive_sequence= !(avctx->flags & (CODEC_FLAG_INTERLACED_DCT|CODEC_FLAG_INTERLACED_ME|CODEC_FLAG_ALT_SCAN)); |
675 s->quant_precision=5; | 677 s->quant_precision=5; |
676 | 678 |
677 ff_set_cmp(&s->dsp, s->dsp.ildct_cmp, s->avctx->ildct_cmp); | 679 ff_set_cmp(&s->dsp, s->dsp.ildct_cmp, s->avctx->ildct_cmp); |
678 ff_set_cmp(&s->dsp, s->dsp.frame_skip_cmp, s->avctx->frame_skip_cmp); | 680 ff_set_cmp(&s->dsp, s->dsp.frame_skip_cmp, s->avctx->frame_skip_cmp); |
679 | 681 |
680 if (ENABLE_H261_ENCODER && s->out_format == FMT_H261) | 682 if (ENABLE_H261_ENCODER && s->out_format == FMT_H261) |
681 ff_h261_encode_init(s); | 683 ff_h261_encode_init(s); |
682 if (s->out_format == FMT_H263) | 684 if (ENABLE_ANY_H263_ENCODER && s->out_format == FMT_H263) |
683 h263_encode_init(s); | 685 h263_encode_init(s); |
684 if (ENABLE_MSMPEG4_ENCODER && s->msmpeg4_version) | 686 if (ENABLE_MSMPEG4_ENCODER && s->msmpeg4_version) |
685 ff_msmpeg4_encode_init(s); | 687 ff_msmpeg4_encode_init(s); |
686 if ((ENABLE_MPEG1VIDEO_ENCODER || ENABLE_MPEG2VIDEO_ENCODER) | 688 if ((ENABLE_MPEG1VIDEO_ENCODER || ENABLE_MPEG2VIDEO_ENCODER) |
687 && s->out_format == FMT_MPEG1) | 689 && s->out_format == FMT_MPEG1) |
688 ff_mpeg1_encode_init(s); | 690 ff_mpeg1_encode_init(s); |
689 | 691 |
690 /* init q matrix */ | 692 /* init q matrix */ |
691 for(i=0;i<64;i++) { | 693 for(i=0;i<64;i++) { |
692 int j= s->dsp.idct_permutation[i]; | 694 int j= s->dsp.idct_permutation[i]; |
693 if(s->codec_id==CODEC_ID_MPEG4 && s->mpeg_quant){ | 695 if(ENABLE_MPEG4_ENCODER && s->codec_id==CODEC_ID_MPEG4 && s->mpeg_quant){ |
694 s->intra_matrix[j] = ff_mpeg4_default_intra_matrix[i]; | 696 s->intra_matrix[j] = ff_mpeg4_default_intra_matrix[i]; |
695 s->inter_matrix[j] = ff_mpeg4_default_non_intra_matrix[i]; | 697 s->inter_matrix[j] = ff_mpeg4_default_non_intra_matrix[i]; |
696 }else if(s->out_format == FMT_H263 || s->out_format == FMT_H261){ | 698 }else if(s->out_format == FMT_H263 || s->out_format == FMT_H261){ |
697 s->intra_matrix[j] = | 699 s->intra_matrix[j] = |
698 s->inter_matrix[j] = ff_mpeg1_default_non_intra_matrix[i]; | 700 s->inter_matrix[j] = ff_mpeg1_default_non_intra_matrix[i]; |
1696 case CODEC_ID_MPEG2VIDEO: | 1698 case CODEC_ID_MPEG2VIDEO: |
1697 if (ENABLE_MPEG1VIDEO_ENCODER || ENABLE_MPEG2VIDEO_ENCODER) | 1699 if (ENABLE_MPEG1VIDEO_ENCODER || ENABLE_MPEG2VIDEO_ENCODER) |
1698 mpeg1_encode_mb(s, s->block, motion_x, motion_y); | 1700 mpeg1_encode_mb(s, s->block, motion_x, motion_y); |
1699 break; | 1701 break; |
1700 case CODEC_ID_MPEG4: | 1702 case CODEC_ID_MPEG4: |
1703 if (ENABLE_MPEG4_ENCODER) | |
1701 mpeg4_encode_mb(s, s->block, motion_x, motion_y); break; | 1704 mpeg4_encode_mb(s, s->block, motion_x, motion_y); break; |
1702 case CODEC_ID_MSMPEG4V2: | 1705 case CODEC_ID_MSMPEG4V2: |
1703 case CODEC_ID_MSMPEG4V3: | 1706 case CODEC_ID_MSMPEG4V3: |
1704 case CODEC_ID_WMV1: | 1707 case CODEC_ID_WMV1: |
1705 if (ENABLE_MSMPEG4_ENCODER) | 1708 if (ENABLE_MSMPEG4_ENCODER) |
1716 case CODEC_ID_H263: | 1719 case CODEC_ID_H263: |
1717 case CODEC_ID_H263P: | 1720 case CODEC_ID_H263P: |
1718 case CODEC_ID_FLV1: | 1721 case CODEC_ID_FLV1: |
1719 case CODEC_ID_RV10: | 1722 case CODEC_ID_RV10: |
1720 case CODEC_ID_RV20: | 1723 case CODEC_ID_RV20: |
1724 if (ENABLE_H263_ENCODER || ENABLE_H263P_ENCODER || | |
1725 ENABLE_FLV_ENCODER || ENABLE_RV10_ENCODER || ENABLE_RV20_ENCODER) | |
1721 h263_encode_mb(s, s->block, motion_x, motion_y); break; | 1726 h263_encode_mb(s, s->block, motion_x, motion_y); break; |
1722 case CODEC_ID_MJPEG: | 1727 case CODEC_ID_MJPEG: |
1723 if (ENABLE_MJPEG_ENCODER) | 1728 if (ENABLE_MJPEG_ENCODER) |
1724 ff_mjpeg_encode_mb(s, s->block); | 1729 ff_mjpeg_encode_mb(s, s->block); |
1725 break; | 1730 break; |
1961 } | 1966 } |
1962 return 0; | 1967 return 0; |
1963 } | 1968 } |
1964 | 1969 |
1965 static void write_slice_end(MpegEncContext *s){ | 1970 static void write_slice_end(MpegEncContext *s){ |
1966 if(s->codec_id==CODEC_ID_MPEG4){ | 1971 if(ENABLE_MPEG4_ENCODER && s->codec_id==CODEC_ID_MPEG4){ |
1967 if(s->partitioned_frame){ | 1972 if(s->partitioned_frame){ |
1968 ff_mpeg4_merge_partitions(s); | 1973 ff_mpeg4_merge_partitions(s); |
1969 } | 1974 } |
1970 | 1975 |
1971 ff_mpeg4_stuffing(&s->pb); | 1976 ff_mpeg4_stuffing(&s->pb); |
2023 | 2028 |
2024 switch(s->codec_id){ | 2029 switch(s->codec_id){ |
2025 case CODEC_ID_H263: | 2030 case CODEC_ID_H263: |
2026 case CODEC_ID_H263P: | 2031 case CODEC_ID_H263P: |
2027 case CODEC_ID_FLV1: | 2032 case CODEC_ID_FLV1: |
2033 if (ENABLE_H263_ENCODER || ENABLE_H263P_ENCODER || ENABLE_FLV_ENCODER) | |
2028 s->gob_index = ff_h263_get_gob_height(s); | 2034 s->gob_index = ff_h263_get_gob_height(s); |
2029 break; | 2035 break; |
2030 case CODEC_ID_MPEG4: | 2036 case CODEC_ID_MPEG4: |
2031 if(s->partitioned_frame) | 2037 if(ENABLE_MPEG4_ENCODER && s->partitioned_frame) |
2032 ff_mpeg4_init_partitions(s); | 2038 ff_mpeg4_init_partitions(s); |
2033 break; | 2039 break; |
2034 } | 2040 } |
2035 | 2041 |
2036 s->resync_mb_x=0; | 2042 s->resync_mb_x=0; |
2099 | 2105 |
2100 if(is_gob_start){ | 2106 if(is_gob_start){ |
2101 if(s->start_mb_y != mb_y || mb_x!=0){ | 2107 if(s->start_mb_y != mb_y || mb_x!=0){ |
2102 write_slice_end(s); | 2108 write_slice_end(s); |
2103 | 2109 |
2104 if(s->codec_id==CODEC_ID_MPEG4 && s->partitioned_frame){ | 2110 if(ENABLE_MPEG4_ENCODER && s->codec_id==CODEC_ID_MPEG4 && s->partitioned_frame){ |
2105 ff_mpeg4_init_partitions(s); | 2111 ff_mpeg4_init_partitions(s); |
2106 } | 2112 } |
2107 } | 2113 } |
2108 | 2114 |
2109 assert((put_bits_count(&s->pb)&7) == 0); | 2115 assert((put_bits_count(&s->pb)&7) == 0); |
2126 s->avctx->rtp_callback(s->avctx, s->ptr_lastgob, current_packet_size, number_mb); | 2132 s->avctx->rtp_callback(s->avctx, s->ptr_lastgob, current_packet_size, number_mb); |
2127 } | 2133 } |
2128 | 2134 |
2129 switch(s->codec_id){ | 2135 switch(s->codec_id){ |
2130 case CODEC_ID_MPEG4: | 2136 case CODEC_ID_MPEG4: |
2137 if (ENABLE_MPEG4_ENCODER) { | |
2131 ff_mpeg4_encode_video_packet_header(s); | 2138 ff_mpeg4_encode_video_packet_header(s); |
2132 ff_mpeg4_clean_buffers(s); | 2139 ff_mpeg4_clean_buffers(s); |
2140 } | |
2133 break; | 2141 break; |
2134 case CODEC_ID_MPEG1VIDEO: | 2142 case CODEC_ID_MPEG1VIDEO: |
2135 case CODEC_ID_MPEG2VIDEO: | 2143 case CODEC_ID_MPEG2VIDEO: |
2136 if (ENABLE_MPEG1VIDEO_ENCODER || ENABLE_MPEG2VIDEO_ENCODER) { | 2144 if (ENABLE_MPEG1VIDEO_ENCODER || ENABLE_MPEG2VIDEO_ENCODER) { |
2137 ff_mpeg1_encode_slice_header(s); | 2145 ff_mpeg1_encode_slice_header(s); |
2138 ff_mpeg1_clean_buffers(s); | 2146 ff_mpeg1_clean_buffers(s); |
2139 } | 2147 } |
2140 break; | 2148 break; |
2141 case CODEC_ID_H263: | 2149 case CODEC_ID_H263: |
2142 case CODEC_ID_H263P: | 2150 case CODEC_ID_H263P: |
2151 if (ENABLE_H263_ENCODER || ENABLE_H263P_ENCODER) | |
2143 h263_encode_gob_header(s, mb_y); | 2152 h263_encode_gob_header(s, mb_y); |
2144 break; | 2153 break; |
2145 } | 2154 } |
2146 | 2155 |
2147 if(s->flags&CODEC_FLAG_PASS1){ | 2156 if(s->flags&CODEC_FLAG_PASS1){ |
2346 } | 2355 } |
2347 } | 2356 } |
2348 } | 2357 } |
2349 } | 2358 } |
2350 } | 2359 } |
2351 if(mb_type&CANDIDATE_MB_TYPE_DIRECT){ | 2360 if(ENABLE_MPEG4_ENCODER && mb_type&CANDIDATE_MB_TYPE_DIRECT){ |
2352 int mx= s->b_direct_mv_table[xy][0]; | 2361 int mx= s->b_direct_mv_table[xy][0]; |
2353 int my= s->b_direct_mv_table[xy][1]; | 2362 int my= s->b_direct_mv_table[xy][1]; |
2354 | 2363 |
2355 backup_s.dquant = 0; | 2364 backup_s.dquant = 0; |
2356 s->mv_dir = MV_DIR_FORWARD | MV_DIR_BACKWARD | MV_DIRECT; | 2365 s->mv_dir = MV_DIR_FORWARD | MV_DIR_BACKWARD | MV_DIRECT; |
2357 s->mb_intra= 0; | 2366 s->mb_intra= 0; |
2358 ff_mpeg4_set_direct_mv(s, mx, my); | 2367 ff_mpeg4_set_direct_mv(s, mx, my); |
2359 encode_mb_hq(s, &backup_s, &best_s, CANDIDATE_MB_TYPE_DIRECT, pb, pb2, tex_pb, | 2368 encode_mb_hq(s, &backup_s, &best_s, CANDIDATE_MB_TYPE_DIRECT, pb, pb2, tex_pb, |
2360 &dmin, &next_block, mx, my); | 2369 &dmin, &next_block, mx, my); |
2361 } | 2370 } |
2362 if(mb_type&CANDIDATE_MB_TYPE_DIRECT0){ | 2371 if(ENABLE_MPEG4_ENCODER && mb_type&CANDIDATE_MB_TYPE_DIRECT0){ |
2363 backup_s.dquant = 0; | 2372 backup_s.dquant = 0; |
2364 s->mv_dir = MV_DIR_FORWARD | MV_DIR_BACKWARD | MV_DIRECT; | 2373 s->mv_dir = MV_DIR_FORWARD | MV_DIR_BACKWARD | MV_DIRECT; |
2365 s->mb_intra= 0; | 2374 s->mb_intra= 0; |
2366 ff_mpeg4_set_direct_mv(s, 0, 0); | 2375 ff_mpeg4_set_direct_mv(s, 0, 0); |
2367 encode_mb_hq(s, &backup_s, &best_s, CANDIDATE_MB_TYPE_DIRECT, pb, pb2, tex_pb, | 2376 encode_mb_hq(s, &backup_s, &best_s, CANDIDATE_MB_TYPE_DIRECT, pb, pb2, tex_pb, |
2372 for(i=0; i<6; i++) | 2381 for(i=0; i<6; i++) |
2373 coded |= s->block_last_index[i]; | 2382 coded |= s->block_last_index[i]; |
2374 if(coded){ | 2383 if(coded){ |
2375 int mx,my; | 2384 int mx,my; |
2376 memcpy(s->mv, best_s.mv, sizeof(s->mv)); | 2385 memcpy(s->mv, best_s.mv, sizeof(s->mv)); |
2377 if(best_s.mv_dir & MV_DIRECT){ | 2386 if(ENABLE_MPEG4_ENCODER && best_s.mv_dir & MV_DIRECT){ |
2378 mx=my=0; //FIXME find the one we actually used | 2387 mx=my=0; //FIXME find the one we actually used |
2379 ff_mpeg4_set_direct_mv(s, mx, my); | 2388 ff_mpeg4_set_direct_mv(s, mx, my); |
2380 }else if(best_s.mv_dir&MV_DIR_BACKWARD){ | 2389 }else if(best_s.mv_dir&MV_DIR_BACKWARD){ |
2381 mx= s->mv[1][0][0]; | 2390 mx= s->mv[1][0][0]; |
2382 my= s->mv[1][0][1]; | 2391 my= s->mv[1][0][1]; |
2420 ff_copy_bits(&backup_s.tex_pb, bit_buf_tex[next_block^1], tex_pb_bits_count); | 2429 ff_copy_bits(&backup_s.tex_pb, bit_buf_tex[next_block^1], tex_pb_bits_count); |
2421 s->tex_pb= backup_s.tex_pb; | 2430 s->tex_pb= backup_s.tex_pb; |
2422 } | 2431 } |
2423 s->last_bits= put_bits_count(&s->pb); | 2432 s->last_bits= put_bits_count(&s->pb); |
2424 | 2433 |
2425 if (s->out_format == FMT_H263 && s->pict_type!=B_TYPE) | 2434 if (ENABLE_ANY_H263_ENCODER && |
2435 s->out_format == FMT_H263 && s->pict_type!=B_TYPE) | |
2426 ff_h263_update_motion_val(s); | 2436 ff_h263_update_motion_val(s); |
2427 | 2437 |
2428 if(next_block==0){ //FIXME 16 vs linesize16 | 2438 if(next_block==0){ //FIXME 16 vs linesize16 |
2429 s->dsp.put_pixels_tab[0][0](s->dest[0], s->rd_scratchpad , s->linesize ,16); | 2439 s->dsp.put_pixels_tab[0][0](s->dest[0], s->rd_scratchpad , s->linesize ,16); |
2430 s->dsp.put_pixels_tab[1][0](s->dest[1], s->rd_scratchpad + 16*s->linesize , s->uvlinesize, 8); | 2440 s->dsp.put_pixels_tab[1][0](s->dest[1], s->rd_scratchpad + 16*s->linesize , s->uvlinesize, 8); |
2469 s->mv[0][i][0] = s->current_picture.motion_val[0][s->block_index[i]][0]; | 2479 s->mv[0][i][0] = s->current_picture.motion_val[0][s->block_index[i]][0]; |
2470 s->mv[0][i][1] = s->current_picture.motion_val[0][s->block_index[i]][1]; | 2480 s->mv[0][i][1] = s->current_picture.motion_val[0][s->block_index[i]][1]; |
2471 } | 2481 } |
2472 break; | 2482 break; |
2473 case CANDIDATE_MB_TYPE_DIRECT: | 2483 case CANDIDATE_MB_TYPE_DIRECT: |
2484 if (ENABLE_MPEG4_ENCODER) { | |
2474 s->mv_dir = MV_DIR_FORWARD | MV_DIR_BACKWARD | MV_DIRECT; | 2485 s->mv_dir = MV_DIR_FORWARD | MV_DIR_BACKWARD | MV_DIRECT; |
2475 s->mb_intra= 0; | 2486 s->mb_intra= 0; |
2476 motion_x=s->b_direct_mv_table[xy][0]; | 2487 motion_x=s->b_direct_mv_table[xy][0]; |
2477 motion_y=s->b_direct_mv_table[xy][1]; | 2488 motion_y=s->b_direct_mv_table[xy][1]; |
2478 ff_mpeg4_set_direct_mv(s, motion_x, motion_y); | 2489 ff_mpeg4_set_direct_mv(s, motion_x, motion_y); |
2490 } | |
2479 break; | 2491 break; |
2480 case CANDIDATE_MB_TYPE_DIRECT0: | 2492 case CANDIDATE_MB_TYPE_DIRECT0: |
2493 if (ENABLE_MPEG4_ENCODER) { | |
2481 s->mv_dir = MV_DIR_FORWARD | MV_DIR_BACKWARD | MV_DIRECT; | 2494 s->mv_dir = MV_DIR_FORWARD | MV_DIR_BACKWARD | MV_DIRECT; |
2482 s->mb_intra= 0; | 2495 s->mb_intra= 0; |
2483 ff_mpeg4_set_direct_mv(s, 0, 0); | 2496 ff_mpeg4_set_direct_mv(s, 0, 0); |
2497 } | |
2484 break; | 2498 break; |
2485 case CANDIDATE_MB_TYPE_BIDIR: | 2499 case CANDIDATE_MB_TYPE_BIDIR: |
2486 s->mv_dir = MV_DIR_FORWARD | MV_DIR_BACKWARD; | 2500 s->mv_dir = MV_DIR_FORWARD | MV_DIR_BACKWARD; |
2487 s->mb_intra= 0; | 2501 s->mb_intra= 0; |
2488 s->mv[0][0][0] = s->b_bidir_forw_mv_table[xy][0]; | 2502 s->mv[0][0][0] = s->b_bidir_forw_mv_table[xy][0]; |
2542 encode_mb(s, motion_x, motion_y); | 2556 encode_mb(s, motion_x, motion_y); |
2543 | 2557 |
2544 // RAL: Update last macroblock type | 2558 // RAL: Update last macroblock type |
2545 s->last_mv_dir = s->mv_dir; | 2559 s->last_mv_dir = s->mv_dir; |
2546 | 2560 |
2547 if (s->out_format == FMT_H263 && s->pict_type!=B_TYPE) | 2561 if (ENABLE_ANY_H263_ENCODER && |
2562 s->out_format == FMT_H263 && s->pict_type!=B_TYPE) | |
2548 ff_h263_update_motion_val(s); | 2563 ff_h263_update_motion_val(s); |
2549 | 2564 |
2550 MPV_decode_mb(s, s->block); | 2565 MPV_decode_mb(s, s->block); |
2551 } | 2566 } |
2552 | 2567 |
2572 s->current_picture.error[2] += sse( | 2587 s->current_picture.error[2] += sse( |
2573 s, s->new_picture .data[2] + s->mb_x*8 + s->mb_y*s->uvlinesize*8, | 2588 s, s->new_picture .data[2] + s->mb_x*8 + s->mb_y*s->uvlinesize*8, |
2574 s->dest[2], w>>1, h>>1, s->uvlinesize); | 2589 s->dest[2], w>>1, h>>1, s->uvlinesize); |
2575 } | 2590 } |
2576 if(s->loop_filter){ | 2591 if(s->loop_filter){ |
2577 if(s->out_format == FMT_H263) | 2592 if(ENABLE_ANY_H263_ENCODER && s->out_format == FMT_H263) |
2578 ff_h263_loop_filter(s); | 2593 ff_h263_loop_filter(s); |
2579 } | 2594 } |
2580 //printf("MB %d %d bits\n", s->mb_x+s->mb_y*s->mb_stride, put_bits_count(&s->pb)); | 2595 //printf("MB %d %d bits\n", s->mb_x+s->mb_y*s->mb_stride, put_bits_count(&s->pb)); |
2581 } | 2596 } |
2582 } | 2597 } |
2651 } | 2666 } |
2652 | 2667 |
2653 if(s->adaptive_quant){ | 2668 if(s->adaptive_quant){ |
2654 switch(s->codec_id){ | 2669 switch(s->codec_id){ |
2655 case CODEC_ID_MPEG4: | 2670 case CODEC_ID_MPEG4: |
2671 if (ENABLE_MPEG4_ENCODER) | |
2656 ff_clean_mpeg4_qscales(s); | 2672 ff_clean_mpeg4_qscales(s); |
2657 break; | 2673 break; |
2658 case CODEC_ID_H263: | 2674 case CODEC_ID_H263: |
2659 case CODEC_ID_H263P: | 2675 case CODEC_ID_H263P: |
2660 case CODEC_ID_FLV1: | 2676 case CODEC_ID_FLV1: |
2677 if (ENABLE_H263_ENCODER||ENABLE_H263P_ENCODER||ENABLE_FLV_ENCODER) | |
2661 ff_clean_h263_qscales(s); | 2678 ff_clean_h263_qscales(s); |
2662 break; | 2679 break; |
2663 } | 2680 } |
2664 | 2681 |
2665 s->lambda= s->lambda_table[0]; | 2682 s->lambda= s->lambda_table[0]; |
2865 case FMT_H263: | 2882 case FMT_H263: |
2866 if (ENABLE_WMV2_ENCODER && s->codec_id == CODEC_ID_WMV2) | 2883 if (ENABLE_WMV2_ENCODER && s->codec_id == CODEC_ID_WMV2) |
2867 ff_wmv2_encode_picture_header(s, picture_number); | 2884 ff_wmv2_encode_picture_header(s, picture_number); |
2868 else if (ENABLE_MSMPEG4_ENCODER && s->h263_msmpeg4) | 2885 else if (ENABLE_MSMPEG4_ENCODER && s->h263_msmpeg4) |
2869 msmpeg4_encode_picture_header(s, picture_number); | 2886 msmpeg4_encode_picture_header(s, picture_number); |
2870 else if (s->h263_pred) | 2887 else if (ENABLE_MPEG4_ENCODER && s->h263_pred) |
2871 mpeg4_encode_picture_header(s, picture_number); | 2888 mpeg4_encode_picture_header(s, picture_number); |
2872 else if (ENABLE_RV10_ENCODER && s->codec_id == CODEC_ID_RV10) | 2889 else if (ENABLE_RV10_ENCODER && s->codec_id == CODEC_ID_RV10) |
2873 rv10_encode_picture_header(s, picture_number); | 2890 rv10_encode_picture_header(s, picture_number); |
2874 else if (ENABLE_RV20_ENCODER && s->codec_id == CODEC_ID_RV20) | 2891 else if (ENABLE_RV20_ENCODER && s->codec_id == CODEC_ID_RV20) |
2875 rv20_encode_picture_header(s, picture_number); | 2892 rv20_encode_picture_header(s, picture_number); |
2876 else if (s->codec_id == CODEC_ID_FLV1) | 2893 else if (ENABLE_FLV_ENCODER && s->codec_id == CODEC_ID_FLV1) |
2877 ff_flv_encode_picture_header(s, picture_number); | 2894 ff_flv_encode_picture_header(s, picture_number); |
2878 else | 2895 else if (ENABLE_ANY_H263_ENCODER) |
2879 h263_encode_picture_header(s, picture_number); | 2896 h263_encode_picture_header(s, picture_number); |
2880 break; | 2897 break; |
2881 case FMT_MPEG1: | 2898 case FMT_MPEG1: |
2882 if (ENABLE_MPEG1VIDEO_ENCODER || ENABLE_MPEG2VIDEO_ENCODER) | 2899 if (ENABLE_MPEG1VIDEO_ENCODER || ENABLE_MPEG2VIDEO_ENCODER) |
2883 mpeg1_encode_picture_header(s, picture_number); | 2900 mpeg1_encode_picture_header(s, picture_number); |