return ret;
}
+gboolean
+gst_media_descriptor_has_frame_info (GstMediaDescriptor * self)
+{
+ GList *tmpstream;
+
+ for (tmpstream = self->filenode->streams;
+ tmpstream; tmpstream = tmpstream->next) {
+ StreamNode *streamnode = (StreamNode *) tmpstream->data;
+
+ if (g_list_length (streamnode->frames))
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
GstClockTime
gst_media_descriptor_get_duration (GstMediaDescriptor * self)
{
gboolean gst_media_descriptor_detects_frames (GstMediaDescriptor * self);
gboolean gst_media_descriptor_get_buffers (GstMediaDescriptor * self,
GstPad * pad, GCompareFunc compare_func, GList ** bufs);
+gboolean gst_media_descriptor_has_frame_info (GstMediaDescriptor * self);
GstClockTime gst_media_descriptor_get_duration (GstMediaDescriptor * self);
gboolean gst_media_descriptor_get_seekable (GstMediaDescriptor * self);
GList * gst_media_descriptor_get_pads (GstMediaDescriptor * self);
g_option_context_free (ctx);
runner = gst_validate_runner_new ();
+
+ if (expected_file) {
+ reference = gst_media_descriptor_parser_new (runner, expected_file, NULL);
+
+ if (reference == NULL) {
+ g_print ("Could not parse file: %s\n", expected_file);
+ ret = 1;
+ goto out;
+ }
+
+ if (!full && gst_media_descriptor_has_frame_info ((GstMediaDescriptor *)
+ reference))
+ full = TRUE; /* Reference has frame info, activate to do comparison */
+ }
+
writer =
gst_media_descriptor_writer_new_discover (runner, argv[1], full, TRUE,
NULL);
}
}
- if (expected_file) {
- reference = gst_media_descriptor_parser_new (runner, expected_file, NULL);
-
- if (reference == NULL) {
- g_print ("Could not parse file: %s\n", expected_file);
- ret = 1;
- goto out;
- }
-
+ if (reference) {
if (!gst_media_descriptors_compare (GST_MEDIA_DESCRIPTOR (reference),
GST_MEDIA_DESCRIPTOR (writer))) {
ret = 1;