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
06599638
Commit
06599638
authored
Nov 16, 2006
by
Michael Niedermayer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
check max_pts_distance
Originally committed as revision 7100 to
svn://svn.ffmpeg.org/ffmpeg/trunk
parent
0a3b575b
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
13 additions
and
11 deletions
+13
-11
nutdec.c
libavformat/nutdec.c
+13
-11
No files found.
libavformat/nutdec.c
View file @
06599638
...
...
@@ -637,7 +637,7 @@ static int nut_read_header(AVFormatContext *s, AVFormatParameters *ap)
return
0
;
}
static
int
decode_frame_header
(
NUTContext
*
nut
,
int
*
flags_ret
,
int
64_t
*
pts
,
int
*
stream_id
,
int
frame_code
){
static
int
decode_frame_header
(
NUTContext
*
nut
,
int64_t
*
pts
,
int
*
stream_id
,
int
frame_code
){
AVFormatContext
*
s
=
nut
->
avf
;
ByteIOContext
*
bc
=
&
s
->
pb
;
StreamContext
*
stc
;
...
...
@@ -682,14 +682,13 @@ static int decode_frame_header(NUTContext *nut, int *flags_ret, int64_t *pts, in
get_v
(
bc
);
if
(
flags
&
FLAG_CHECKSUM
){
get_be32
(
bc
);
//FIXME check this
}
else
if
(
size
>
2
*
nut
->
max_distance
){
}
else
if
(
size
>
2
*
nut
->
max_distance
||
FFABS
(
stc
->
last_pts
-
*
pts
)
>
stc
->
max_pts_distance
){
av_log
(
s
,
AV_LOG_ERROR
,
"frame size > 2max_distance and no checksum
\n
"
);
return
-
1
;
}
*
flags_ret
=
flags
;
stc
->
last_pts
=
*
pts
;
stc
->
last_
key_frame
=
flags
&
FLAG_KEY
;
//FIXME change to last flags
stc
->
last_
flags
=
flags
;
return
size
;
}
...
...
@@ -697,29 +696,32 @@ static int decode_frame_header(NUTContext *nut, int *flags_ret, int64_t *pts, in
static
int
decode_frame
(
NUTContext
*
nut
,
AVPacket
*
pkt
,
int
frame_code
){
AVFormatContext
*
s
=
nut
->
avf
;
ByteIOContext
*
bc
=
&
s
->
pb
;
int
size
,
stream_id
,
flags
,
discard
;
int
size
,
stream_id
,
discard
;
int64_t
pts
,
last_IP_pts
;
StreamContext
*
stc
;
size
=
decode_frame_header
(
nut
,
&
flags
,
&
pts
,
&
stream_id
,
frame_code
);
size
=
decode_frame_header
(
nut
,
&
pts
,
&
stream_id
,
frame_code
);
if
(
size
<
0
)
return
-
1
;
if
(
flags
&
FLAG_KEY
)
nut
->
stream
[
stream_id
].
skip_until_key_frame
=
0
;
stc
=
&
nut
->
stream
[
stream_id
];
if
(
stc
->
last_flags
&
FLAG_KEY
)
stc
->
skip_until_key_frame
=
0
;
discard
=
s
->
streams
[
stream_id
]
->
discard
;
last_IP_pts
=
s
->
streams
[
stream_id
]
->
last_IP_pts
;
if
(
(
discard
>=
AVDISCARD_NONKEY
&&
!
(
flags
&
FLAG_KEY
))
if
(
(
discard
>=
AVDISCARD_NONKEY
&&
!
(
stc
->
last_
flags
&
FLAG_KEY
))
||
(
discard
>=
AVDISCARD_BIDIR
&&
last_IP_pts
!=
AV_NOPTS_VALUE
&&
last_IP_pts
>
pts
)
||
discard
>=
AVDISCARD_ALL
||
nut
->
stream
[
stream_id
].
skip_until_key_frame
){
||
stc
->
skip_until_key_frame
){
url_fskip
(
bc
,
size
);
return
1
;
}
av_get_packet
(
bc
,
pkt
,
size
);
pkt
->
stream_index
=
stream_id
;
if
(
flags
&
FLAG_KEY
)
if
(
stc
->
last_
flags
&
FLAG_KEY
)
pkt
->
flags
|=
PKT_FLAG_KEY
;
pkt
->
pts
=
pts
;
...
...
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