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);