aboutsummaryrefslogtreecommitdiffstats
path: root/libavformat/movenc.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2014-03-09 22:48:08 +0100
committerMichael Niedermayer <michaelni@gmx.at>2014-03-09 22:48:08 +0100
commit1b1d77ae9b38fb257e9ae9fb565091c6b7e43181 (patch)
treeef4875409644c61d98062cfbc10f7029adfe1e9a /libavformat/movenc.c
parentce1ad8d775ba74f2ab03675043116be3c305fcb1 (diff)
parent20b40a597cdd4969cf1147d7c7efee2b6232524b (diff)
downloadffmpeg-1b1d77ae9b38fb257e9ae9fb565091c6b7e43181.tar.gz
Merge commit '20b40a597cdd4969cf1147d7c7efee2b6232524b'
* commit '20b40a597cdd4969cf1147d7c7efee2b6232524b': movenc: write hvcC tag for HEVC. Conflicts: libavformat/Makefile Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat/movenc.c')
-rw-r--r--libavformat/movenc.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index 8b1816a3c7..3798706a83 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -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"
@@ -772,6 +773,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)
{
@@ -1226,6 +1237,8 @@ static int mov_write_video_tag(AVIOContext *pb, MOVTrack *track)
avio_wb32(pb, 0);
} 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)