h264parse: don't unnecesarily set src_caps
authorMatej Knopp <matej.knopp@gmail.com>
Wed, 29 Oct 2014 21:55:47 +0000 (22:55 +0100)
committerSebastian Dröge <sebastian@centricular.com>
Thu, 6 Nov 2014 10:51:59 +0000 (11:51 +0100)
https://bugzilla.gnome.org/show_bug.cgi?id=739374

gst/videoparsers/gsth264parse.c

index 6e2208f..9dee1ae 100644 (file)
@@ -1347,6 +1347,19 @@ gst_h264_parse_update_src_caps (GstH264Parse * h264parse, GstCaps * caps)
           par_n, par_d, NULL);
     }
 
+    /* set profile and level in caps */
+    if (sps) {
+      GstMapInfo map;
+      GstBuffer *sps_buf = h264parse->sps_nals[sps->id];
+
+      if (sps_buf) {
+        gst_buffer_map (sps_buf, &map, GST_MAP_READ);
+        gst_codec_utils_h264_caps_set_level_and_profile (caps,
+            map.data + 1, map.size - 1);
+        gst_buffer_unmap (sps_buf, &map);
+      }
+    }
+
     src_caps = gst_pad_get_current_caps (GST_BASE_PARSE_SRC_PAD (h264parse));
 
     if (src_caps
@@ -1374,19 +1387,6 @@ gst_h264_parse_update_src_caps (GstH264Parse * h264parse, GstCaps * caps)
         gst_buffer_replace (&h264parse->codec_data, NULL);
       }
 
-      /* set profile and level in caps */
-      if (sps) {
-        GstMapInfo map;
-        GstBuffer *sps_buf = h264parse->sps_nals[sps->id];
-
-        if (sps_buf) {
-          gst_buffer_map (sps_buf, &map, GST_MAP_READ);
-          gst_codec_utils_h264_caps_set_level_and_profile (caps,
-              map.data + 1, map.size - 1);
-          gst_buffer_unmap (sps_buf, &map);
-        }
-      }
-
       gst_pad_set_caps (GST_BASE_PARSE_SRC_PAD (h264parse), caps);
     }