aboutsummaryrefslogtreecommitdiffstats
path: root/libavformat
diff options
context:
space:
mode:
authorCarl Eugen Hoyos <cehoyos@ag.or.at>2014-04-06 20:54:48 +0200
committerCarl Eugen Hoyos <cehoyos@ag.or.at>2014-04-06 23:35:17 +0200
commit3d5c859fa6dcca9c6b37f90a5dac148c01ab4758 (patch)
tree6a43bfd9d9c4f01d5d0e8e177dc9f639ac42adee /libavformat
parent787be6d0749603a73f268af8a3262428ff02d31e (diff)
downloadffmpeg-3d5c859fa6dcca9c6b37f90a5dac148c01ab4758.tar.gz
Set Matroska private data when muxing Prores.
The specification requires the mov code point to be written as "fourcc".
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/matroskadec.c2
-rw-r--r--libavformat/matroskaenc.c3
2 files changed, 5 insertions, 0 deletions
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 4390b6bb99..6976da8620 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -1914,6 +1914,8 @@ static int matroska_read_header(AVFormatContext *s)
st->codec->block_align = track->audio.sub_packet_size;
extradata_offset = 78;
}
+ } else if (codec_id == AV_CODEC_ID_PRORES && track->codec_priv.size == 4) {
+ fourcc = AV_RL32(track->codec_priv.data);
}
track->codec_priv.size -= extradata_offset;
diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
index 7d83665f94..529ab2a2b6 100644
--- a/libavformat/matroskaenc.c
+++ b/libavformat/matroskaenc.c
@@ -544,6 +544,9 @@ static int mkv_write_codecprivate(AVFormatContext *s, AVIOContext *pb, AVCodecCo
} else
avio_write(dyn_cp, codec->extradata + 12,
codec->extradata_size - 12);
+ } else if (codec->codec_id == AV_CODEC_ID_PRORES &&
+ ff_codec_get_id(ff_codec_movvideo_tags, codec->codec_tag) == AV_CODEC_ID_PRORES) {
+ avio_wl32(dyn_cp, codec->codec_tag);
}
else if (codec->extradata_size && codec->codec_id != AV_CODEC_ID_TTA)
avio_write(dyn_cp, codec->extradata, codec->extradata_size);