summaryrefslogtreecommitdiff
path: root/ext/libav/gstavcodecmap.c
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2016-09-14 11:20:48 +0200
committerSebastian Dröge <sebastian@centricular.com>2016-09-14 11:20:48 +0200
commit8443af343ec7dc026e27ab9cbf5d2ec47bd6fc4d (patch)
tree3737fd178129e0e4d6cfca95636b66834b227f74 /ext/libav/gstavcodecmap.c
parent77f4d2f06bddf74ade93c2705493793b2bb5c0d6 (diff)
downloadgst-libav-8443af343ec7dc026e27ab9cbf5d2ec47bd6fc4d.tar.gz
av: Cast AVContext::bit_rate to a guint before passing to varargs functions
We expect it to be a int or uint, however it changed the type to a int64_t in later versions of ffmpeg. As such it would be passed as a 64 bit value to varargs functions, while the consumer of the arguments assumes only 32 bits. This causes crashes. https://bugzilla.gnome.org/show_bug.cgi?id=771092
Diffstat (limited to 'ext/libav/gstavcodecmap.c')
-rw-r--r--ext/libav/gstavcodecmap.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/ext/libav/gstavcodecmap.c b/ext/libav/gstavcodecmap.c
index a507c5a..2274989 100644
--- a/ext/libav/gstavcodecmap.c
+++ b/ext/libav/gstavcodecmap.c
@@ -1146,8 +1146,8 @@ gst_ffmpeg_codecid_to_caps (enum AVCodecID codec_id,
caps =
gst_ff_aud_caps_new (context, NULL, codec_id, encode, "audio/x-wma",
"wmaversion", G_TYPE_INT, version, "block_align", G_TYPE_INT,
- context->block_align, "bitrate", G_TYPE_INT, context->bit_rate,
- NULL);
+ context->block_align, "bitrate", G_TYPE_INT,
+ (guint) context->bit_rate, NULL);
} else {
caps =
gst_ff_aud_caps_new (context, NULL, codec_id, encode, "audio/x-wma",
@@ -1824,7 +1824,7 @@ gst_ffmpeg_codecid_to_caps (enum AVCodecID codec_id,
if (context)
gst_caps_set_simple (caps,
"block_align", G_TYPE_INT, context->block_align,
- "bitrate", G_TYPE_INT, context->bit_rate, NULL);
+ "bitrate", G_TYPE_INT, (guint) context->bit_rate, NULL);
break;
case AV_CODEC_ID_ADPCM_G726:
@@ -1836,7 +1836,7 @@ gst_ffmpeg_codecid_to_caps (enum AVCodecID codec_id,
if (context)
gst_caps_set_simple (caps,
"block_align", G_TYPE_INT, context->block_align,
- "bitrate", G_TYPE_INT, context->bit_rate, NULL);
+ "bitrate", G_TYPE_INT, (guint) context->bit_rate, NULL);
if (!encode) {
gst_caps_append (caps, gst_caps_new_simple ("audio/x-adpcm",
@@ -1970,7 +1970,7 @@ gst_ffmpeg_codecid_to_caps (enum AVCodecID codec_id,
if (context)
gst_caps_set_simple (caps,
"block_align", G_TYPE_INT, context->block_align,
- "bitrate", G_TYPE_INT, context->bit_rate, NULL);
+ "bitrate", G_TYPE_INT, (guint) context->bit_rate, NULL);
}
break;
@@ -2012,7 +2012,7 @@ gst_ffmpeg_codecid_to_caps (enum AVCodecID codec_id,
if (context) {
gst_caps_set_simple (caps,
"leaf_size", G_TYPE_INT, context->block_align,
- "bitrate", G_TYPE_INT, context->bit_rate, NULL);
+ "bitrate", G_TYPE_INT, (guint) context->bit_rate, NULL);
}
}
break;
@@ -2044,7 +2044,7 @@ gst_ffmpeg_codecid_to_caps (enum AVCodecID codec_id,
if (context) {
gst_caps_set_simple (caps,
"leaf_size", G_TYPE_INT, context->block_align,
- "bitrate", G_TYPE_INT, context->bit_rate, NULL);
+ "bitrate", G_TYPE_INT, (guint) context->bit_rate, NULL);
}
}
break;
@@ -2082,7 +2082,7 @@ gst_ffmpeg_codecid_to_caps (enum AVCodecID codec_id,
if (context)
gst_caps_set_simple (caps,
"block_align", G_TYPE_INT, context->block_align,
- "bitrate", G_TYPE_INT, context->bit_rate, NULL);
+ "bitrate", G_TYPE_INT, (guint) context->bit_rate, NULL);
}
break;
@@ -2166,7 +2166,7 @@ gst_ffmpeg_codecid_to_caps (enum AVCodecID codec_id,
if (context)
gst_caps_set_simple (caps,
"block_align", G_TYPE_INT, context->block_align,
- "bitrate", G_TYPE_INT, context->bit_rate, NULL);
+ "bitrate", G_TYPE_INT, (guint) context->bit_rate, NULL);
g_free (mime);
break;
default: