diff --git a/ext/ffmpeg/gstffmpegcodecmap.c b/ext/ffmpeg/gstffmpegcodecmap.c
index 9402bfb..16f9467 100644
--- a/ext/ffmpeg/gstffmpegcodecmap.c
+++ b/ext/ffmpeg/gstffmpegcodecmap.c
@@ -440,6 +440,7 @@ gst_ff_aud_caps_new (AVCodecContext * context, enum CodecID codec_id,
       case CODEC_ID_AC3:
       case CODEC_ID_EAC3:
       case CODEC_ID_AAC:
+      case CODEC_ID_AAC_LATM:
       case CODEC_ID_DTS:
         maxchannels = 6;
         break;
@@ -958,7 +959,14 @@ gst_ffmpeg_codecid_to_caps (enum CodecID codec_id,
 
     case CODEC_ID_AAC:
       caps = gst_ff_aud_caps_new (context, codec_id, "audio/mpeg",
-          "mpegversion", G_TYPE_INT, 4, NULL);
+          "mpegversion", G_TYPE_INT, 4, "stream-format", G_TYPE_STRING, "raw", 
+          "stream-format", G_TYPE_STRING, "adif", 
+          "stream-format", G_TYPE_STRING, "adts", NULL);
+      break;
+    case CODEC_ID_AAC_LATM: /* LATM/LOAS AAC syntax */
+      caps = gst_ff_aud_caps_new (context, codec_id, "audio/mpeg",
+          "mpegversion", G_TYPE_INT, 4, "stream-format", G_TYPE_STRING, "loas", 
+	  NULL);
       break;
 
     case CODEC_ID_ASV1:
diff --git a/ext/ffmpeg/gstffmpegdec.c b/ext/ffmpeg/gstffmpegdec.c
index 305178c..3fba4ba 100644
--- a/ext/ffmpeg/gstffmpegdec.c
+++ b/ext/ffmpeg/gstffmpegdec.c
@@ -828,7 +828,7 @@ gst_ffmpegdec_setcaps (GstPad * pad, GstCaps * caps)
   }
 
   /* for AAC we only use av_parse if not on raw caps */
-  if (oclass->in_plugin->id == CODEC_ID_AAC) {
+  if (oclass->in_plugin->id == CODEC_ID_AAC || oclass->in_plugin->id == CODEC_ID_AAC_LATM) {
     const gchar *format = gst_structure_get_string (structure, "stream-format");
 
     if (format == NULL || strcmp (format, "raw") == 0) {
