From 8f6b919d99687416deaedb2df6b8b5f49645a291 Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos Date: Thu, 21 May 2015 00:43:38 +0200 Subject: lavf/mkv: Only skip prores header if the packet is large enough. Fixes a possible endless loop. --- libavformat/matroskaenc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index 7cbba0b002..c4c58f4d09 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -1575,7 +1575,7 @@ static void mkv_write_block(AVFormatContext *s, AVIOContext *pb, } else data = pkt->data; - if (codec->codec_id == AV_CODEC_ID_PRORES) { + if (codec->codec_id == AV_CODEC_ID_PRORES && size >= 8) { /* Matroska specification requires to remove the first QuickTime atom */ size -= 8; -- cgit v1.2.3 From c4f864193f9753df3f721d5cebe39f32bd04ac11 Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos Date: Thu, 21 May 2015 00:44:34 +0200 Subject: lavf/mov: Write colour matrix "6" for color_space bt470bg. This matches the demuxer's behaviour. --- libavformat/movenc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/libavformat/movenc.c b/libavformat/movenc.c index b6821d447c..4aa64b097a 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -1608,6 +1608,7 @@ static int mov_write_colr_tag(AVIOContext *pb, MOVTrack *track) } switch (track->enc->colorspace) { case AVCOL_TRC_BT709: avio_wb16(pb, 1); break; + case AVCOL_SPC_BT470BG: case AVCOL_PRI_SMPTE170M: avio_wb16(pb, 6); break; case AVCOL_PRI_SMPTE240M: avio_wb16(pb, 7); break; default: avio_wb16(pb, 2); -- cgit v1.2.3 From 4fb3efd2c17c419cb7a170e5438b35453ceaaf30 Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos Date: Thu, 21 May 2015 01:04:57 +0200 Subject: lavf/mov: Use AVCOL_SPC constants when checking color_space. Suggested-by: Ronald Bultje --- libavformat/movenc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavformat/movenc.c b/libavformat/movenc.c index 4aa64b097a..9cad1ae06b 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -1607,10 +1607,10 @@ static int mov_write_colr_tag(AVIOContext *pb, MOVTrack *track) default: avio_wb16(pb, 2); } switch (track->enc->colorspace) { - case AVCOL_TRC_BT709: avio_wb16(pb, 1); break; + case AVCOL_SPC_BT709: avio_wb16(pb, 1); break; case AVCOL_SPC_BT470BG: - case AVCOL_PRI_SMPTE170M: avio_wb16(pb, 6); break; - case AVCOL_PRI_SMPTE240M: avio_wb16(pb, 7); break; + case AVCOL_SPC_SMPTE170M: avio_wb16(pb, 6); break; + case AVCOL_SPC_SMPTE240M: avio_wb16(pb, 7); break; default: avio_wb16(pb, 2); } -- cgit v1.2.3 From 209e91cbc4e1c4feaa3b7c2671b864b77874eff8 Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos Date: Thu, 21 May 2015 01:05:13 +0200 Subject: lavc/qdrw: Do not fail decoding valid Quickdraw images. --- libavcodec/qdrw.c | 1 - 1 file changed, 1 deletion(-) diff --git a/libavcodec/qdrw.c b/libavcodec/qdrw.c index 0bcf5dca22..838f836516 100644 --- a/libavcodec/qdrw.c +++ b/libavcodec/qdrw.c @@ -153,7 +153,6 @@ static int decode_frame(AVCodecContext *avctx, bytestream2_init(&gbc, avpkt->data, avpkt->size); if ( bytestream2_get_bytes_left(&gbc) >= 552 - && !check_header(gbc.buffer , bytestream2_get_bytes_left(&gbc)) && check_header(gbc.buffer + 512, bytestream2_get_bytes_left(&gbc) - 512) ) bytestream2_skip(&gbc, 512); -- cgit v1.2.3