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
010acd8e
Commit
010acd8e
authored
Jul 12, 2008
by
Michael Niedermayer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
h264_probe()
Originally committed as revision 14186 to
svn://svn.ffmpeg.org/ffmpeg/trunk
parent
55823964
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
45 additions
and
1 deletion
+45
-1
raw.c
libavformat/raw.c
+45
-1
No files found.
libavformat/raw.c
View file @
010acd8e
...
...
@@ -347,6 +347,50 @@ static int mpeg4video_probe(AVProbeData *probe_packet)
return
0
;
}
static
int
h264_probe
(
AVProbeData
*
p
)
{
uint32_t
code
=
-
1
;
int
sps
=
0
,
pps
=
0
,
idr
=
0
,
res
=
0
;
int
i
;
for
(
i
=
0
;
i
<
p
->
buf_size
;
i
++
){
code
=
(
code
<<
8
)
+
p
->
buf
[
i
];
if
((
code
&
0xffffff00
)
==
0x100
)
{
int
ref_idc
=
(
code
>>
5
)
&
3
;
int
type
=
code
&
0x1F
;
static
const
int8_t
ref_zero
[
32
]
=
{
2
,
0
,
0
,
0
,
0
,
-
1
,
1
,
-
1
,
-
1
,
1
,
1
,
1
,
1
,
-
1
,
2
,
2
,
2
,
2
,
2
,
0
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
2
};
if
(
code
&
0x80
)
//forbidden bit
return
0
;
if
(
ref_zero
[
type
]
==
1
&&
ref_idc
)
return
0
;
if
(
ref_zero
[
type
]
==-
1
&&
!
ref_idc
)
return
0
;
if
(
ref_zero
[
type
]
==
2
)
res
++
;
switch
(
type
){
case
5
:
idr
++
;
break
;
case
7
:
if
(
p
->
buf
[
i
+
2
]
&
0x0F
)
return
0
;
sps
++
;
break
;
case
8
:
pps
++
;
break
;
}
}
}
if
(
sps
&&
pps
&&
idr
&&
res
<
(
sps
+
pps
+
idr
))
return
AVPROBE_SCORE_MAX
/
2
+
1
;
// +1 for .mpg
return
0
;
}
static
int
h263_probe
(
AVProbeData
*
p
)
{
int
code
;
...
...
@@ -647,7 +691,7 @@ AVInputFormat h264_demuxer = {
"h264"
,
NULL_IF_CONFIG_SMALL
(
"raw H.264 video format"
),
0
,
NULL
/*mpegvideo_probe*/
,
h264_probe
,
video_read_header
,
raw_read_partial_packet
,
.
flags
=
AVFMT_GENERIC_INDEX
,
...
...
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