Originally committed as revision 2170 to svn://svn.ffmpeg.org/ffmpeg/trunk
Michael Niedermayer authored on 2003/08/27 07:26:18... | ... |
@@ -28,6 +28,7 @@ |
28 | 28 |
|
29 | 29 |
#include <stdlib.h> |
30 | 30 |
#include <stdio.h> |
31 |
+#include <limits.h> |
|
31 | 32 |
#include "avcodec.h" |
32 | 33 |
#include "dsputil.h" |
33 | 34 |
#include "mpegvideo.h" |
... | ... |
@@ -1494,20 +1495,27 @@ void ff_estimate_b_frame_motion(MpegEncContext * s, |
1494 | 1494 |
int fmin, bmin, dmin, fbmin; |
1495 | 1495 |
int type=0; |
1496 | 1496 |
|
1497 |
- dmin= direct_search(s, mb_x, mb_y); |
|
1497 |
+ s->me.skip=0; |
|
1498 |
+ if (s->codec_id == CODEC_ID_MPEG4) |
|
1499 |
+ dmin= direct_search(s, mb_x, mb_y); |
|
1500 |
+ else |
|
1501 |
+ dmin= INT_MAX; |
|
1498 | 1502 |
|
1503 |
+ s->me.skip=0; |
|
1499 | 1504 |
fmin= ff_estimate_motion_b(s, mb_x, mb_y, s->b_forw_mv_table, &s->last_picture, s->f_code) + 3*penalty_factor; |
1505 |
+ |
|
1506 |
+ s->me.skip=0; |
|
1500 | 1507 |
bmin= ff_estimate_motion_b(s, mb_x, mb_y, s->b_back_mv_table, &s->next_picture, s->b_code) + 2*penalty_factor; |
1501 | 1508 |
//printf(" %d %d ", s->b_forw_mv_table[xy][0], s->b_forw_mv_table[xy][1]); |
1502 | 1509 |
|
1510 |
+ s->me.skip=0; |
|
1503 | 1511 |
fbmin= bidir_refine(s, mb_x, mb_y) + penalty_factor; |
1504 | 1512 |
//printf("%d %d %d %d\n", dmin, fmin, bmin, fbmin); |
1505 | 1513 |
{ |
1506 | 1514 |
int score= fmin; |
1507 | 1515 |
type = MB_TYPE_FORWARD; |
1508 | 1516 |
|
1509 |
- // RAL: No MB_TYPE_DIRECT in MPEG-1 video (only MPEG-4) |
|
1510 |
- if (s->codec_id == CODEC_ID_MPEG4 && dmin <= score){ |
|
1517 |
+ if (dmin <= score){ |
|
1511 | 1518 |
score = dmin; |
1512 | 1519 |
type = MB_TYPE_DIRECT; |
1513 | 1520 |
} |
... | ... |
@@ -29,15 +29,15 @@ stddev: 5.28 bytes:7602176 |
29 | 29 |
242a7a18c2793e115007bc163861ef4e *./data/a-huffyuv.avi |
30 | 30 |
dde5895817ad9d219f79a52d0bdfb001 *./data/out.yuv |
31 | 31 |
stddev: 0.00 bytes:7602176 |
32 |
-2a9ee5a50073e3c5c25653f83d2b78ae *./data/a-mpeg4-rc.avi |
|
33 |
-6851f0023a361b2b088d115f6d42d03e *./data/out.yuv |
|
34 |
-stddev: 5.12 bytes:7145472 |
|
32 |
+794463e80f8de682591e13b82510f967 *./data/a-mpeg4-rc.avi |
|
33 |
+25f3d554edf174034b5e484a7cfb04d3 *./data/out.yuv |
|
34 |
+stddev: 4.32 bytes:7145472 |
|
35 | 35 |
aeb300900461bdf9e0321934aa6dcc93 *./data/a-mpeg4-adv.avi |
36 | 36 |
e465df12f2c8a6492a6ec0b1bddc1d0d *./data/out.yuv |
37 | 37 |
stddev: 4.97 bytes:7602176 |
38 |
-2ec827a941ee8e82911280405987f8ef *./data/a-mpeg1b.mpg |
|
39 |
-2935a090a88c74ccb220c18c1399cea7 *./data/out.yuv |
|
40 |
-stddev: 4.69 bytes:6993920 |
|
38 |
+a7ab3fba8d7cd004b4809b5fe04e37d0 *./data/a-mpeg1b.mpg |
|
39 |
+c9b8f923d91d6a574b0673e05fd2d6bd *./data/out.yuv |
|
40 |
+stddev: 4.61 bytes:6993920 |
|
41 | 41 |
e9218a1db885fe0262e88f9df630307d *./data/a-mjpeg.avi |
42 | 42 |
a365b4da246ad68caf96b702b7f961a1 *./data/out.yuv |
43 | 43 |
stddev: 4.76 bytes:7602176 |