#endif
#include <string.h>
-#include <gst/base/gstbytereader.h>
-#include <gst/pbutils/codec-utils.h>
+#include <gst/base/base.h>
+#include <gst/pbutils/pbutils.h>
#include <gst/video/video.h>
#include "gstmpeg4videoparse.h"
gboolean push_codec = FALSE;
GstEvent *event = NULL;
+ if (!mp4vparse->sent_codec_tag) {
+ GstTagList *taglist;
+ GstCaps *caps;
+
+ taglist = gst_tag_list_new_empty ();
+
+ /* codec tag */
+ caps = gst_pad_get_current_caps (GST_BASE_PARSE_SRC_PAD (parse));
+ gst_pb_utils_add_codec_description_to_tag_list (taglist,
+ GST_TAG_VIDEO_CODEC, caps);
+ gst_caps_unref (caps);
+
+ gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (mp4vparse),
+ gst_event_new_tag (taglist));
+
+ /* also signals the end of first-frame processing */
+ mp4vparse->sent_codec_tag = TRUE;
+ }
+
if ((event = check_pending_key_unit_event (mp4vparse->force_key_unit_event,
&parse->segment, GST_BUFFER_TIMESTAMP (buffer),
GST_BUFFER_FLAGS (buffer), mp4vparse->pending_key_unit_ts))) {