Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
14ae07d8
Commit
14ae07d8
authored
Mar 29, 2002
by
Michael Niedermayer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
divx5-gmc bug workaround
Originally committed as revision 369 to
svn://svn.ffmpeg.org/ffmpeg/trunk
parent
7f89b6fb
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
22 additions
and
8 deletions
+22
-8
h263.c
libavcodec/h263.c
+22
-8
No files found.
libavcodec/h263.c
View file @
14ae07d8
...
@@ -1519,8 +1519,13 @@ int h263_decode_mb(MpegEncContext *s,
...
@@ -1519,8 +1519,13 @@ int h263_decode_mb(MpegEncContext *s,
// int l = (1 << (s->f_code - 1)) * 32;
// int l = (1 << (s->f_code - 1)) * 32;
s
->
mcsel
=
1
;
s
->
mcsel
=
1
;
if
(
s
->
divx_version
==
500
&&
s
->
divx_build
==
413
){
s
->
mv
[
0
][
0
][
0
]
=
s
->
sprite_offset
[
0
][
0
]
/
(
1
<<
(
a
-
s
->
quarter_sample
));
s
->
mv
[
0
][
0
][
1
]
=
s
->
sprite_offset
[
0
][
1
]
/
(
1
<<
(
a
-
s
->
quarter_sample
));
}
else
{
s
->
mv
[
0
][
0
][
0
]
=
RSHIFT
(
s
->
sprite_offset
[
0
][
0
],
a
-
s
->
quarter_sample
);
s
->
mv
[
0
][
0
][
0
]
=
RSHIFT
(
s
->
sprite_offset
[
0
][
0
],
a
-
s
->
quarter_sample
);
s
->
mv
[
0
][
0
][
1
]
=
RSHIFT
(
s
->
sprite_offset
[
0
][
1
],
a
-
s
->
quarter_sample
);
s
->
mv
[
0
][
0
][
1
]
=
RSHIFT
(
s
->
sprite_offset
[
0
][
1
],
a
-
s
->
quarter_sample
);
}
/* if (s->mv[0][0][0] < -l) s->mv[0][0][0]= -l;
/* if (s->mv[0][0][0] < -l) s->mv[0][0][0]= -l;
else if (s->mv[0][0][0] >= l) s->mv[0][0][0]= l-1;
else if (s->mv[0][0][0] >= l) s->mv[0][0][0]= l-1;
if (s->mv[0][0][1] < -l) s->mv[0][0][1]= -l;
if (s->mv[0][0][1] < -l) s->mv[0][0][1]= -l;
...
@@ -1573,9 +1578,13 @@ int h263_decode_mb(MpegEncContext *s,
...
@@ -1573,9 +1578,13 @@ int h263_decode_mb(MpegEncContext *s,
else
{
else
{
const
int
a
=
s
->
sprite_warping_accuracy
;
const
int
a
=
s
->
sprite_warping_accuracy
;
// int l = (1 << (s->f_code - 1)) * 32;
// int l = (1 << (s->f_code - 1)) * 32;
mx
=
RSHIFT
(
s
->
sprite_offset
[
0
][
0
],
a
-
s
->
quarter_sample
);
if
(
s
->
divx_version
==
500
&&
s
->
divx_build
==
413
){
// if (mx < -l) mx= -l;
mx
=
s
->
sprite_offset
[
0
][
0
]
/
(
1
<<
(
a
-
s
->
quarter_sample
));
// else if (mx >= l) mx= l-1;
}
else
{
mx
=
RSHIFT
(
s
->
sprite_offset
[
0
][
0
],
a
-
s
->
quarter_sample
);
}
// if (mx < -l) mx= -l, printf("C");
// else if (mx >= l) mx= l-1, printf("C");
}
}
if
(
mx
>=
0xffff
)
if
(
mx
>=
0xffff
)
return
-
1
;
return
-
1
;
...
@@ -1587,9 +1596,13 @@ int h263_decode_mb(MpegEncContext *s,
...
@@ -1587,9 +1596,13 @@ int h263_decode_mb(MpegEncContext *s,
else
{
else
{
const
int
a
=
s
->
sprite_warping_accuracy
;
const
int
a
=
s
->
sprite_warping_accuracy
;
// int l = (1 << (s->f_code - 1)) * 32;
// int l = (1 << (s->f_code - 1)) * 32;
my
=
RSHIFT
(
s
->
sprite_offset
[
0
][
1
],
a
-
s
->
quarter_sample
);
if
(
s
->
divx_version
==
500
&&
s
->
divx_build
==
413
){
// if (my < -l) my= -l;
my
=
s
->
sprite_offset
[
0
][
1
]
/
(
1
<<
(
a
-
s
->
quarter_sample
));
// else if (my >= l) my= l-1;
}
else
{
my
=
RSHIFT
(
s
->
sprite_offset
[
0
][
1
],
a
-
s
->
quarter_sample
);
}
// if (my < -l) my= -l, printf("C");
// else if (my >= l) my= l-1, printf("C");
}
}
if
(
my
>=
0xffff
)
if
(
my
>=
0xffff
)
return
-
1
;
return
-
1
;
...
@@ -2378,6 +2391,7 @@ printf("%d %d\n", s->sprite_delta[1][1][1], a<<s->sprite_shift[1][1]);*/
...
@@ -2378,6 +2391,7 @@ printf("%d %d\n", s->sprite_delta[1][1][1], a<<s->sprite_shift[1][1]);*/
else
else
s
->
real_sprite_warping_points
=
s
->
num_sprite_warping_points
;
s
->
real_sprite_warping_points
=
s
->
num_sprite_warping_points
;
//printf("%d %d %d %d\n", d[0][0], d[0][1], s->sprite_offset[0][0], s->sprite_offset[0][1]);
}
}
/* decode mpeg4 VOP header */
/* decode mpeg4 VOP header */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment