Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpc-hc/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHendrik Leppkes <h.leppkes@gmail.com>2014-04-01 17:59:42 +0400
committerHendrik Leppkes <h.leppkes@gmail.com>2017-08-04 20:12:12 +0300
commit01313eebb642d21c8e2d4f6e86076eb9fc4a9f97 (patch)
treeb660f14e5eaccfb46584f3fa255ff27de66f3a18 /libavformat
parent1f8541e60e1977718a91be08d93ea52f95e0f34c (diff)
matroskadec_haali: support V_PRORES
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/matroskadec_haali.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/libavformat/matroskadec_haali.c b/libavformat/matroskadec_haali.c
index b70168dce9..896aeb976f 100644
--- a/libavformat/matroskadec_haali.c
+++ b/libavformat/matroskadec_haali.c
@@ -1107,6 +1107,8 @@ static int mkv_read_header(AVFormatContext *s)
fourcc = AV_RL32((uint8_t *)info->CodecPrivate);
codec_id = ff_codec_get_id(ff_codec_movvideo_tags, fourcc);
}
+ } else if (!strcmp(info->CodecID, "V_PRORES") && (info->CodecPrivateSize == 4) && (info->CodecPrivate != NULL)) {
+ fourcc = AV_RL32((uint8_t *)info->CodecPrivate);
} else if (codec_id == AV_CODEC_ID_PCM_S16BE) {
switch (info->AV.Audio.BitDepth) {
case 8: codec_id = AV_CODEC_ID_PCM_U8; break;
@@ -1554,6 +1556,15 @@ again:
memset(dvbdata+dvbsize, 0, FF_INPUT_BUFFER_PADDING_SIZE);
av_buffer_unref(&pkt->buf);
av_packet_from_data(pkt, dvbdata, dvbsize);
+ } else if (!strcmp(track->info->CodecID, "V_PRORES")) {
+ int size = pkt->size + 8;
+ uint8_t *buf = av_malloc(size + FF_INPUT_BUFFER_PADDING_SIZE);
+ AV_WB32(buf, pkt->size);
+ AV_WB32(buf + 4, MKBETAG('i', 'c', 'p', 'f'));
+ memcpy(buf + 8, pkt->data, pkt->size);
+ memset(buf+size, 0, FF_INPUT_BUFFER_PADDING_SIZE);
+ av_buffer_unref(&pkt->buf);
+ av_packet_from_data(pkt, buf, size);
}
if (track->refresh_extradata) {