Originally committed as revision 948 to svn://svn.ffmpeg.org/ffmpeg/trunktags/v0.5
@@ -44,6 +44,8 @@ op_pixels_abs_func pix_abs8x8_x2; | |||||
op_pixels_abs_func pix_abs8x8_y2; | op_pixels_abs_func pix_abs8x8_y2; | ||||
op_pixels_abs_func pix_abs8x8_xy2; | op_pixels_abs_func pix_abs8x8_xy2; | ||||
int ff_bit_exact=0; | |||||
UINT8 cropTbl[256 + 2 * MAX_NEG_CROP]; | UINT8 cropTbl[256 + 2 * MAX_NEG_CROP]; | ||||
UINT32 squareTbl[512]; | UINT32 squareTbl[512]; | ||||
@@ -1697,6 +1699,7 @@ void dsputil_init(void) | |||||
/* remove any non bit exact operation (testing purpose) */ | /* remove any non bit exact operation (testing purpose) */ | ||||
void avcodec_set_bit_exact(void) | void avcodec_set_bit_exact(void) | ||||
{ | { | ||||
ff_bit_exact=1; | |||||
#ifdef HAVE_MMX | #ifdef HAVE_MMX | ||||
dsputil_set_bit_exact_mmx(); | dsputil_set_bit_exact_mmx(); | ||||
#endif | #endif | ||||
@@ -1420,14 +1420,17 @@ static void mpeg4_encode_vol_header(MpegEncContext * s) | |||||
put_bits(&s->pb, 1, 0); /* reduced res vop */ | put_bits(&s->pb, 1, 0); /* reduced res vop */ | ||||
} | } | ||||
put_bits(&s->pb, 1, 0); /* scalability */ | put_bits(&s->pb, 1, 0); /* scalability */ | ||||
ff_mpeg4_stuffing(&s->pb); | ff_mpeg4_stuffing(&s->pb); | ||||
put_bits(&s->pb, 16, 0); | |||||
put_bits(&s->pb, 16, 0x1B2); /* user_data */ | |||||
sprintf(buf, "FFmpeg%sb%s", FFMPEG_VERSION, LIBAVCODEC_BUILD_STR); | |||||
put_string(&s->pb, buf); | |||||
ff_mpeg4_stuffing(&s->pb); | |||||
/* user data */ | |||||
if(!ff_bit_exact){ | |||||
put_bits(&s->pb, 16, 0); | |||||
put_bits(&s->pb, 16, 0x1B2); /* user_data */ | |||||
sprintf(buf, "FFmpeg%sb%s", FFMPEG_VERSION, LIBAVCODEC_BUILD_STR); | |||||
put_string(&s->pb, buf); | |||||
ff_mpeg4_stuffing(&s->pb); | |||||
} | |||||
} | } | ||||
/* write mpeg4 VOP header */ | /* write mpeg4 VOP header */ | ||||
@@ -390,16 +390,18 @@ static void jpeg_put_comments(MpegEncContext *s) | |||||
} | } | ||||
/* comment */ | /* comment */ | ||||
put_marker(p, COM); | |||||
flush_put_bits(p); | |||||
ptr = pbBufPtr(p); | |||||
put_bits(p, 16, 0); /* patched later */ | |||||
if(!ff_bit_exact){ | |||||
put_marker(p, COM); | |||||
flush_put_bits(p); | |||||
ptr = pbBufPtr(p); | |||||
put_bits(p, 16, 0); /* patched later */ | |||||
#define MJPEG_VERSION "FFmpeg" LIBAVCODEC_VERSION "b" LIBAVCODEC_BUILD_STR | #define MJPEG_VERSION "FFmpeg" LIBAVCODEC_VERSION "b" LIBAVCODEC_BUILD_STR | ||||
put_string(p, MJPEG_VERSION); | |||||
size = strlen(MJPEG_VERSION)+3; | |||||
put_string(p, MJPEG_VERSION); | |||||
size = strlen(MJPEG_VERSION)+3; | |||||
#undef MJPEG_VERSION | #undef MJPEG_VERSION | ||||
ptr[0] = size >> 8; | |||||
ptr[1] = size; | |||||
ptr[0] = size >> 8; | |||||
ptr[1] = size; | |||||
} | |||||
} | } | ||||
void mjpeg_picture_header(MpegEncContext *s) | void mjpeg_picture_header(MpegEncContext *s) | ||||
@@ -496,6 +496,8 @@ void ff_conceal_past_errors(MpegEncContext *s, int conceal_all); | |||||
void ff_copy_bits(PutBitContext *pb, UINT8 *src, int length); | void ff_copy_bits(PutBitContext *pb, UINT8 *src, int length); | ||||
void ff_clean_intra_table_entries(MpegEncContext *s); | void ff_clean_intra_table_entries(MpegEncContext *s); | ||||
extern int ff_bit_exact; | |||||
/* motion_est.c */ | /* motion_est.c */ | ||||
void ff_estimate_p_frame_motion(MpegEncContext * s, | void ff_estimate_p_frame_motion(MpegEncContext * s, | ||||
int mb_x, int mb_y); | int mb_x, int mb_y); | ||||
@@ -9,9 +9,9 @@ ffmpeg regression test | |||||
3ed8e11a8a8147c3e7d736593fccae79 *./data/out.yuv | 3ed8e11a8a8147c3e7d736593fccae79 *./data/out.yuv | ||||
abe11239875a32f00fa2910828bba4fb *./data/a-h263.avi | abe11239875a32f00fa2910828bba4fb *./data/a-h263.avi | ||||
c1f6c8ee7a24d8345deddf1a24ca3756 *./data/out.yuv | c1f6c8ee7a24d8345deddf1a24ca3756 *./data/out.yuv | ||||
0c1d8af40b0b11b89fd7f9436faf62e2 *./data/a-odivx.avi | |||||
440192aca11c310e01168ec24ea7807e *./data/a-odivx.avi | |||||
145c98a175e760f8ba1997edf15b2964 *./data/out.yuv | 145c98a175e760f8ba1997edf15b2964 *./data/out.yuv | ||||
44d77cfad95830f10582275f69afe788 *./data/a-mjpeg.avi | |||||
2846c8e3d97d7395eb746bfce44e0443 *./data/a-mjpeg.avi | |||||
278033451d7a6bfeb8339abbe4228499 *./data/out.yuv | 278033451d7a6bfeb8339abbe4228499 *./data/out.yuv | ||||
202adaf59c09d703b55fc7dd95eace25 *./data/a-rv10.rm | 202adaf59c09d703b55fc7dd95eace25 *./data/a-rv10.rm | ||||
c1f6c8ee7a24d8345deddf1a24ca3756 *./data/out.yuv | c1f6c8ee7a24d8345deddf1a24ca3756 *./data/out.yuv | ||||