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
902a5fa7
Commit
902a5fa7
authored
Sep 02, 2013
by
Dirk Farin
Committed by
Michael Niedermayer
Sep 03, 2013
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
avformat: H265 demuxer
Signed-off-by:
Michael Niedermayer
<
michaelni@gmx.at
>
parent
771e2e59
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
71 additions
and
1 deletion
+71
-1
avcodec.h
libavcodec/avcodec.h
+1
-0
codec_desc.c
libavcodec/codec_desc.c
+7
-0
Makefile
libavformat/Makefile
+1
-0
allformats.c
libavformat/allformats.c
+1
-0
h265dec.c
libavformat/h265dec.c
+60
-0
version.h
libavformat/version.h
+1
-1
No files found.
libavcodec/avcodec.h
View file @
902a5fa7
...
...
@@ -300,6 +300,7 @@ enum AVCodecID {
AV_CODEC_ID_SNOW
=
MKBETAG
(
'S'
,
'N'
,
'O'
,
'W'
),
AV_CODEC_ID_WEBP
=
MKBETAG
(
'W'
,
'E'
,
'B'
,
'P'
),
AV_CODEC_ID_SMVJPEG
=
MKBETAG
(
'S'
,
'M'
,
'V'
,
'J'
),
AV_CODEC_ID_H265
=
MKBETAG
(
'H'
,
'2'
,
'6'
,
'5'
),
/* various PCM "codecs" */
AV_CODEC_ID_FIRST_AUDIO
=
0x10000
,
///< A dummy id pointing at the start of audio codecs
...
...
libavcodec/codec_desc.c
View file @
902a5fa7
...
...
@@ -225,6 +225,13 @@ static const AVCodecDescriptor codec_descriptors[] = {
.
long_name
=
NULL_IF_CONFIG_SMALL
(
"H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10"
),
.
props
=
AV_CODEC_PROP_LOSSY
|
AV_CODEC_PROP_LOSSLESS
,
},
{
.
id
=
AV_CODEC_ID_H265
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
.
name
=
"h265"
,
.
long_name
=
NULL_IF_CONFIG_SMALL
(
"H.265 / HEVC"
),
.
props
=
AV_CODEC_PROP_LOSSY
|
AV_CODEC_PROP_LOSSLESS
,
},
{
.
id
=
AV_CODEC_ID_INDEO3
,
.
type
=
AVMEDIA_TYPE_VIDEO
,
...
...
libavformat/Makefile
View file @
902a5fa7
...
...
@@ -166,6 +166,7 @@ OBJS-$(CONFIG_H263_DEMUXER) += h263dec.o rawdec.o
OBJS-$(CONFIG_H263_MUXER)
+=
rawenc.o
OBJS-$(CONFIG_H264_DEMUXER)
+=
h264dec.o
rawdec.o
OBJS-$(CONFIG_H264_MUXER)
+=
rawenc.o
OBJS-$(CONFIG_H265_DEMUXER)
+=
h265dec.o
rawdec.o
OBJS-$(CONFIG_HLS_DEMUXER)
+=
hls.o
OBJS-$(CONFIG_HLS_MUXER)
+=
hlsenc.o
OBJS-$(CONFIG_ICO_DEMUXER)
+=
icodec.o
...
...
libavformat/allformats.c
View file @
902a5fa7
...
...
@@ -135,6 +135,7 @@ void av_register_all(void)
REGISTER_MUXDEMUX
(
H261
,
h261
);
REGISTER_MUXDEMUX
(
H263
,
h263
);
REGISTER_MUXDEMUX
(
H264
,
h264
);
REGISTER_DEMUXER
(
H265
,
h265
);
REGISTER_MUXDEMUX
(
HLS
,
hls
);
REGISTER_MUXDEMUX
(
ICO
,
ico
);
REGISTER_DEMUXER
(
IDCIN
,
idcin
);
...
...
libavformat/h265dec.c
0 → 100644
View file @
902a5fa7
/*
* RAW H.265 video demuxer
* Copyright (c) 2013 Dirk Farin <dirk.farin@gmail.com>
*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "avformat.h"
#include "rawdec.h"
static
int
h265_probe
(
AVProbeData
*
p
)
{
uint32_t
code
=
-
1
;
int
vps
=
0
,
sps
=
0
,
pps
=
0
,
idr
=
0
;
int
i
;
for
(
i
=
0
;
i
<
p
->
buf_size
-
1
;
i
++
){
code
=
(
code
<<
8
)
+
p
->
buf
[
i
];
if
((
code
&
0xffffff00
)
==
0x100
)
{
uint8_t
nal2
=
p
->
buf
[
i
+
1
];
int
type
=
(
code
&
0x7E
)
>>
1
;
if
(
code
&
0x81
)
// forbidden and reserved zero bits
return
0
;
if
(
nal2
&
0xf8
)
// reserved zero
return
0
;
switch
(
type
)
{
case
32
:
vps
++
;
break
;
case
33
:
sps
++
;
break
;
case
34
:
pps
++
;
break
;
case
19
:
case
20
:
idr
++
;
break
;
}
}
}
// printf("vps=%d, sps=%d, pps=%d, idr=%d\n", vps, sps, pps, idr);
if
(
vps
&&
sps
&&
pps
&&
idr
)
return
AVPROBE_SCORE_EXTENSION
+
1
;
// 1 more than .mpg
return
0
;
}
FF_DEF_RAWVIDEO_DEMUXER
(
h265
,
"raw H.265 video"
,
h265_probe
,
"h265,265,hevc"
,
AV_CODEC_ID_H265
)
libavformat/version.h
View file @
902a5fa7
...
...
@@ -30,7 +30,7 @@
#include "libavutil/avutil.h"
#define LIBAVFORMAT_VERSION_MAJOR 55
#define LIBAVFORMAT_VERSION_MINOR 1
5
#define LIBAVFORMAT_VERSION_MINOR 1
6
#define LIBAVFORMAT_VERSION_MICRO 100
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
...
...
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