Originally committed as revision 9846 to svn://svn.ffmpeg.org/ffmpeg/trunktags/v0.5
| @@ -133,6 +133,7 @@ show_help(){ | |||
| echo " --disable-debug disable debugging symbols" | |||
| echo " --disable-mpegaudio-hp faster (but less accurate)" | |||
| echo " MPEG audio decoding [default=no]" | |||
| echo " --enable-gray enable full grayscale support (slower color)" | |||
| echo " --disable-ffmpeg disable ffmpeg build" | |||
| echo " --disable-ffserver disable ffserver build" | |||
| echo " --disable-ffplay disable ffplay build" | |||
| @@ -615,6 +616,7 @@ CONFIG_LIST=' | |||
| v4l2 | |||
| x11grab | |||
| zlib | |||
| gray | |||
| ' | |||
| THREADS_LIST=' | |||
| @@ -860,6 +862,7 @@ network="yes" | |||
| optimize="yes" | |||
| protocols="yes" | |||
| vhook="default" | |||
| gray="no" | |||
| # build settings | |||
| SHFLAGS='-shared -Wl,-soname,$@' | |||
| @@ -1554,7 +1554,7 @@ static av_always_inline void mpeg_motion_lowres(MpegEncContext *s, | |||
| ff_emulated_edge_mc(s->edge_emu_buffer, ptr_y, s->linesize, 17, 17+field_based, | |||
| src_x, src_y<<field_based, h_edge_pos, v_edge_pos); | |||
| ptr_y = s->edge_emu_buffer; | |||
| if(!(s->flags&CODEC_FLAG_GRAY)){ | |||
| if(!ENABLE_GRAY || !(s->flags&CODEC_FLAG_GRAY)){ | |||
| uint8_t *uvbuf= s->edge_emu_buffer+18*s->linesize; | |||
| ff_emulated_edge_mc(uvbuf , ptr_cb, s->uvlinesize, 9, 9+field_based, | |||
| uvsrc_x, uvsrc_y<<field_based, h_edge_pos>>1, v_edge_pos>>1); | |||
| @@ -1581,7 +1581,7 @@ static av_always_inline void mpeg_motion_lowres(MpegEncContext *s, | |||
| sy <<= 2 - lowres; | |||
| pix_op[lowres-1](dest_y, ptr_y, linesize, h, sx, sy); | |||
| if(!(s->flags&CODEC_FLAG_GRAY)){ | |||
| if(!ENABLE_GRAY || !(s->flags&CODEC_FLAG_GRAY)){ | |||
| uvsx <<= 2 - lowres; | |||
| uvsy <<= 2 - lowres; | |||
| pix_op[lowres](dest_cb, ptr_cb, uvlinesize, h >> s->chroma_y_shift, uvsx, uvsy); | |||
| @@ -1687,7 +1687,7 @@ static inline void MPV_motion_lowres(MpegEncContext *s, | |||
| my += s->mv[dir][i][1]; | |||
| } | |||
| if(!(s->flags&CODEC_FLAG_GRAY)) | |||
| if(!ENABLE_GRAY || !(s->flags&CODEC_FLAG_GRAY)) | |||
| chroma_4mv_motion_lowres(s, dest_cb, dest_cr, ref_picture, pix_op, mx, my); | |||
| break; | |||
| case MV_TYPE_FIELD: | |||
| @@ -1974,7 +1974,7 @@ static av_always_inline void MPV_decode_mb_internal(MpegEncContext *s, DCTELEM b | |||
| add_dequant_dct(s, block[2], 2, dest_y + dct_offset , dct_linesize, s->qscale); | |||
| add_dequant_dct(s, block[3], 3, dest_y + dct_offset + block_size, dct_linesize, s->qscale); | |||
| if(!(s->flags&CODEC_FLAG_GRAY)){ | |||
| if(!ENABLE_GRAY || !(s->flags&CODEC_FLAG_GRAY)){ | |||
| if (s->chroma_y_shift){ | |||
| add_dequant_dct(s, block[4], 4, dest_cb, uvlinesize, s->chroma_qscale); | |||
| add_dequant_dct(s, block[5], 5, dest_cr, uvlinesize, s->chroma_qscale); | |||
| @@ -1993,7 +1993,7 @@ static av_always_inline void MPV_decode_mb_internal(MpegEncContext *s, DCTELEM b | |||
| add_dct(s, block[2], 2, dest_y + dct_offset , dct_linesize); | |||
| add_dct(s, block[3], 3, dest_y + dct_offset + block_size, dct_linesize); | |||
| if(!(s->flags&CODEC_FLAG_GRAY)){ | |||
| if(!ENABLE_GRAY || !(s->flags&CODEC_FLAG_GRAY)){ | |||
| if(s->chroma_y_shift){//Chroma420 | |||
| add_dct(s, block[4], 4, dest_cb, uvlinesize); | |||
| add_dct(s, block[5], 5, dest_cr, uvlinesize); | |||
| @@ -2026,7 +2026,7 @@ static av_always_inline void MPV_decode_mb_internal(MpegEncContext *s, DCTELEM b | |||
| put_dct(s, block[2], 2, dest_y + dct_offset , dct_linesize, s->qscale); | |||
| put_dct(s, block[3], 3, dest_y + dct_offset + block_size, dct_linesize, s->qscale); | |||
| if(!(s->flags&CODEC_FLAG_GRAY)){ | |||
| if(!ENABLE_GRAY || !(s->flags&CODEC_FLAG_GRAY)){ | |||
| if(s->chroma_y_shift){ | |||
| put_dct(s, block[4], 4, dest_cb, uvlinesize, s->chroma_qscale); | |||
| put_dct(s, block[5], 5, dest_cr, uvlinesize, s->chroma_qscale); | |||
| @@ -2045,7 +2045,7 @@ static av_always_inline void MPV_decode_mb_internal(MpegEncContext *s, DCTELEM b | |||
| s->dsp.idct_put(dest_y + dct_offset , dct_linesize, block[2]); | |||
| s->dsp.idct_put(dest_y + dct_offset + block_size, dct_linesize, block[3]); | |||
| if(!(s->flags&CODEC_FLAG_GRAY)){ | |||
| if(!ENABLE_GRAY || !(s->flags&CODEC_FLAG_GRAY)){ | |||
| if(s->chroma_y_shift){ | |||
| s->dsp.idct_put(dest_cb, uvlinesize, block[4]); | |||
| s->dsp.idct_put(dest_cr, uvlinesize, block[5]); | |||
| @@ -104,7 +104,7 @@ static inline void gmc1_motion(MpegEncContext *s, | |||
| } | |||
| } | |||
| if(s->flags&CODEC_FLAG_GRAY) return; | |||
| if(ENABLE_GRAY && s->flags&CODEC_FLAG_GRAY) return; | |||
| motion_x= s->sprite_offset[1][0]; | |||
| motion_y= s->sprite_offset[1][1]; | |||
| @@ -173,7 +173,7 @@ static inline void gmc_motion(MpegEncContext *s, | |||
| a+1, (1<<(2*a+1)) - s->no_rounding, | |||
| s->h_edge_pos, s->v_edge_pos); | |||
| if(s->flags&CODEC_FLAG_GRAY) return; | |||
| if(ENABLE_GRAY && s->flags&CODEC_FLAG_GRAY) return; | |||
| ox= s->sprite_offset[1][0] + s->sprite_delta[0][0]*s->mb_x*8 + s->sprite_delta[0][1]*s->mb_y*8; | |||
| oy= s->sprite_offset[1][1] + s->sprite_delta[1][0]*s->mb_x*8 + s->sprite_delta[1][1]*s->mb_y*8; | |||
| @@ -318,7 +318,7 @@ if(s->quarter_sample) | |||
| ff_emulated_edge_mc(s->edge_emu_buffer, ptr_y, s->linesize, 17, 17+field_based, | |||
| src_x, src_y<<field_based, s->h_edge_pos, s->v_edge_pos); | |||
| ptr_y = s->edge_emu_buffer; | |||
| if(!(s->flags&CODEC_FLAG_GRAY)){ | |||
| if(!ENABLE_GRAY || !(s->flags&CODEC_FLAG_GRAY)){ | |||
| uint8_t *uvbuf= s->edge_emu_buffer+18*s->linesize; | |||
| ff_emulated_edge_mc(uvbuf , ptr_cb, s->uvlinesize, 9, 9+field_based, | |||
| uvsrc_x, uvsrc_y<<field_based, s->h_edge_pos>>1, s->v_edge_pos>>1); | |||
| @@ -343,7 +343,7 @@ if(s->quarter_sample) | |||
| pix_op[0][dxy](dest_y, ptr_y, linesize, h); | |||
| if(!(s->flags&CODEC_FLAG_GRAY)){ | |||
| if(!ENABLE_GRAY || !(s->flags&CODEC_FLAG_GRAY)){ | |||
| pix_op[s->chroma_x_shift][uvdxy](dest_cb, ptr_cb, uvlinesize, h >> s->chroma_y_shift); | |||
| pix_op[s->chroma_x_shift][uvdxy](dest_cr, ptr_cr, uvlinesize, h >> s->chroma_y_shift); | |||
| } | |||
| @@ -485,7 +485,7 @@ static inline void qpel_motion(MpegEncContext *s, | |||
| ff_emulated_edge_mc(s->edge_emu_buffer, ptr_y, s->linesize, 17, 17+field_based, | |||
| src_x, src_y<<field_based, s->h_edge_pos, s->v_edge_pos); | |||
| ptr_y= s->edge_emu_buffer; | |||
| if(!(s->flags&CODEC_FLAG_GRAY)){ | |||
| if(!ENABLE_GRAY || !(s->flags&CODEC_FLAG_GRAY)){ | |||
| uint8_t *uvbuf= s->edge_emu_buffer + 18*s->linesize; | |||
| ff_emulated_edge_mc(uvbuf, ptr_cb, s->uvlinesize, 9, 9 + field_based, | |||
| uvsrc_x, uvsrc_y<<field_based, s->h_edge_pos>>1, s->v_edge_pos>>1); | |||
| @@ -515,7 +515,7 @@ static inline void qpel_motion(MpegEncContext *s, | |||
| qpix_op[1][dxy](dest_y , ptr_y , linesize); | |||
| qpix_op[1][dxy](dest_y+8, ptr_y+8, linesize); | |||
| } | |||
| if(!(s->flags&CODEC_FLAG_GRAY)){ | |||
| if(!ENABLE_GRAY || !(s->flags&CODEC_FLAG_GRAY)){ | |||
| pix_op[1][uvdxy](dest_cr, ptr_cr, uvlinesize, h >> 1); | |||
| pix_op[1][uvdxy](dest_cb, ptr_cb, uvlinesize, h >> 1); | |||
| } | |||
| @@ -663,7 +663,7 @@ static inline void MPV_motion(MpegEncContext *s, | |||
| mx += mv[0][0]; | |||
| my += mv[0][1]; | |||
| } | |||
| if(!(s->flags&CODEC_FLAG_GRAY)) | |||
| if(!ENABLE_GRAY || !(s->flags&CODEC_FLAG_GRAY)) | |||
| chroma_4mv_motion(s, dest_cb, dest_cr, ref_picture, pix_op[1], mx, my); | |||
| return; | |||
| @@ -745,7 +745,7 @@ static inline void MPV_motion(MpegEncContext *s, | |||
| } | |||
| } | |||
| if(!(s->flags&CODEC_FLAG_GRAY)) | |||
| if(!ENABLE_GRAY || !(s->flags&CODEC_FLAG_GRAY)) | |||
| chroma_4mv_motion(s, dest_cb, dest_cr, ref_picture, pix_op[1], mx, my); | |||
| break; | |||
| case MV_TYPE_FIELD: | |||