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
20b40a59
Commit
20b40a59
authored
Mar 03, 2014
by
Tim Walker
Committed by
Vittorio Giovara
Mar 09, 2014
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
movenc: write hvcC tag for HEVC.
parent
1d9014f0
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
1140 additions
and
1 deletion
+1140
-1
Makefile
libavformat/Makefile
+1
-1
hevc.c
libavformat/hevc.c
+1076
-0
hevc.h
libavformat/hevc.h
+50
-0
movenc.c
libavformat/movenc.c
+13
-0
No files found.
libavformat/Makefile
View file @
20b40a59
...
...
@@ -179,7 +179,7 @@ OBJS-$(CONFIG_MM_DEMUXER) += mm.o
OBJS-$(CONFIG_MMF_DEMUXER)
+=
mmf.o
pcm.o
OBJS-$(CONFIG_MMF_MUXER)
+=
mmf.o
OBJS-$(CONFIG_MOV_DEMUXER)
+=
mov.o
isom.o
mov_chan.o
OBJS-$(CONFIG_MOV_MUXER)
+=
movenc.o
isom.o
avc.o
\
OBJS-$(CONFIG_MOV_MUXER)
+=
movenc.o
isom.o
avc.o
hevc.o
\
movenchint.o
mov_chan.o
OBJS-$(CONFIG_MP2_MUXER)
+=
mp3enc.o
rawenc.o
id3v2enc.o
OBJS-$(CONFIG_MP3_DEMUXER)
+=
mp3dec.o
...
...
libavformat/hevc.c
0 → 100644
View file @
20b40a59
This diff is collapsed.
Click to expand it.
libavformat/hevc.h
0 → 100644
View file @
20b40a59
/*
* Copyright (c) 2014 Tim Walker <tdskywalker@gmail.com>
*
* This file is part of Libav.
*
* Libav 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.
*
* Libav 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 Libav; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
/**
* @file
* internal header for HEVC (de)muxer utilities
*/
#ifndef AVFORMAT_HEVC_H
#define AVFORMAT_HEVC_H
#include <stdint.h>
#include "avio.h"
/**
* Writes HEVC extradata (parameter sets, declarative SEI NAL units) to the
* provided AVIOContext.
*
* If the extradata is Annex B format, it gets converted to hvcC format before
* writing.
*
* @param pb address of the AVIOContext where the hvcC shall be written
* @param data address of the buffer holding the data needed to write the hvcC
* @param size size (in bytes) of the data buffer
* @param ps_array_completeness whether all parameter sets are in the hvcC (1)
* or there may be additional parameter sets in the bitstream (0)
* @return 0 in case of success, a negative value corresponding to an AVERROR
* code in case of failure
*/
int
ff_isom_write_hvcc
(
AVIOContext
*
pb
,
const
uint8_t
*
data
,
int
size
,
int
ps_array_completeness
);
#endif
/* AVFORMAT_HEVC_H */
libavformat/movenc.c
View file @
20b40a59
...
...
@@ -39,6 +39,7 @@
#include "libavutil/mathematics.h"
#include "libavutil/opt.h"
#include "libavutil/dict.h"
#include "hevc.h"
#include "rtpenc.h"
#include "mov_chan.h"
...
...
@@ -685,6 +686,16 @@ static int mov_write_avcc_tag(AVIOContext *pb, MOVTrack *track)
return
update_size
(
pb
,
pos
);
}
static
int
mov_write_hvcc_tag
(
AVIOContext
*
pb
,
MOVTrack
*
track
)
{
int64_t
pos
=
avio_tell
(
pb
);
avio_wb32
(
pb
,
0
);
ffio_wfourcc
(
pb
,
"hvcC"
);
ff_isom_write_hvcc
(
pb
,
track
->
vos_data
,
track
->
vos_len
,
0
);
return
update_size
(
pb
,
pos
);
}
/* also used by all avid codecs (dv, imx, meridien) and their variants */
static
int
mov_write_avid_tag
(
AVIOContext
*
pb
,
MOVTrack
*
track
)
{
...
...
@@ -1035,6 +1046,8 @@ static int mov_write_video_tag(AVIOContext *pb, MOVTrack *track)
mov_write_svq3_tag
(
pb
);
else
if
(
track
->
enc
->
codec_id
==
AV_CODEC_ID_DNXHD
)
mov_write_avid_tag
(
pb
,
track
);
else
if
(
track
->
enc
->
codec_id
==
AV_CODEC_ID_HEVC
)
mov_write_hvcc_tag
(
pb
,
track
);
else
if
(
track
->
enc
->
codec_id
==
AV_CODEC_ID_H264
)
{
mov_write_avcc_tag
(
pb
,
track
);
if
(
track
->
mode
==
MODE_IPOD
)
...
...
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