summaryrefslogtreecommitdiff
path: root/libavformat
diff options
context:
space:
mode:
authorJohn Stebbins <stebbins@jetheaddev.com>2014-03-18 13:11:00 +0000
committerTim Walker <tdskywalker@gmail.com>2014-03-23 00:31:54 +0100
commit1e9db41e2a2166be5671b088ef4ad06a40af459f (patch)
treed09e84329c973de73345d3d4773797a4617ab813 /libavformat
parent4f4840377f8074c0b8f4c07e5c44226b2d4e79da (diff)
movenc: Allow override of major brand in ftyp atom
Signed-off-by: Tim Walker <tdskywalker@gmail.com>
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/movenc.c5
-rw-r--r--libavformat/movenc.h2
2 files changed, 6 insertions, 1 deletions
diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index 2ae3475c17..0c688f6223 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -64,6 +64,7 @@ static const AVOption options[] = {
{ "min_frag_duration", "Minimum fragment duration", offsetof(MOVMuxContext, min_fragment_duration), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM},
{ "frag_size", "Maximum fragment size", offsetof(MOVMuxContext, max_fragment_size), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM},
{ "ism_lookahead", "Number of lookahead entries for ISM files", offsetof(MOVMuxContext, ism_lookahead), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM},
+ { "brand", "Override major brand", offsetof(MOVMuxContext, major_brand), AV_OPT_TYPE_STRING, {.str = NULL}, .flags = AV_OPT_FLAG_ENCODING_PARAM },
{ NULL },
};
@@ -2564,7 +2565,9 @@ static int mov_write_ftyp_tag(AVIOContext *pb, AVFormatContext *s)
avio_wb32(pb, 0); /* size */
ffio_wfourcc(pb, "ftyp");
- if (mov->mode == MODE_3GP) {
+ if (mov->major_brand && strlen(mov->major_brand) >= 4)
+ ffio_wfourcc(pb, mov->major_brand);
+ else if (mov->mode == MODE_3GP) {
ffio_wfourcc(pb, has_h264 ? "3gp6" : "3gp4");
minor = has_h264 ? 0x100 : 0x200;
} else if (mov->mode & MODE_3G2) {
diff --git a/libavformat/movenc.h b/libavformat/movenc.h
index 1b669e8613..226a28f165 100644
--- a/libavformat/movenc.h
+++ b/libavformat/movenc.h
@@ -159,6 +159,8 @@ typedef struct MOVMuxContext {
AVIOContext *mdat_buf;
int64_t reserved_moov_pos;
+
+ char *major_brand;
} MOVMuxContext;
#define FF_MOV_FLAG_RTP_HINT 1