diff options
author | Thibault Saunier <thibault.saunier@collabora.com> | 2014-10-02 15:34:28 +0200 |
---|---|---|
committer | Mathieu Duponchelle <mathieu.duponchelle@opencreed.com> | 2014-10-21 20:21:42 +0200 |
commit | 8ec61ddac2695cc06436a764e9058cd98bdf4e19 (patch) | |
tree | 3242a6e0c496e4472bc4dbd02549fa72333e8e7b | |
parent | bb93dbb9fb580ece3f505e8d39a53c1e8dbd6d83 (diff) |
validate: report: Simplify the issue ID registering using GQuarks
+ Remove unused issue types
https://bugzilla.gnome.org/show_bug.cgi?id=737790
-rw-r--r-- | validate/gst/overrides/gst-validate-default-overrides.c | 2 | ||||
-rw-r--r-- | validate/gst/validate/gst-validate-media-info.c | 42 | ||||
-rw-r--r-- | validate/gst/validate/gst-validate-report.c | 56 | ||||
-rw-r--r-- | validate/gst/validate/gst-validate-report.h | 156 | ||||
-rw-r--r-- | validate/gst/validate/gst-validate-reporter.h | 4 | ||||
-rw-r--r-- | validate/gst/validate/media-descriptor-writer.c | 2 | ||||
-rw-r--r-- | validate/tests/check/validate/padmonitor.c | 14 |
7 files changed, 91 insertions, 185 deletions
diff --git a/validate/gst/overrides/gst-validate-default-overrides.c b/validate/gst/overrides/gst-validate-default-overrides.c index 3c846ef..9e2e96c 100644 --- a/validate/gst/overrides/gst-validate-default-overrides.c +++ b/validate/gst/overrides/gst-validate-default-overrides.c @@ -40,7 +40,7 @@ gst_validate_create_overrides (void) gst-launch videotestsrc num-buffers=10 ! video/x-raw-yuv ! fakesink */ o = gst_validate_override_new (); gst_validate_override_change_severity (o, - GST_VALIDATE_ISSUE_ID_CAPS_IS_MISSING_FIELD, + g_quark_from_string ("caps::is-missing-field"), GST_VALIDATE_REPORT_LEVEL_CRITICAL); gst_validate_override_register_by_name ("capsfilter0", o); return 1; diff --git a/validate/gst/validate/gst-validate-media-info.c b/validate/gst/validate/gst-validate-media-info.c index b450da2..01b4155 100644 --- a/validate/gst/validate/gst-validate-media-info.c +++ b/validate/gst/validate/gst-validate-media-info.c @@ -233,10 +233,6 @@ check_file_size (GstValidateMediaInfo * mi) filepath = g_filename_from_uri (mi->uri, NULL, &err); if (!filepath) { -#if 0 - GST_VALIDATE_REPORT (fc, GST_VALIDATE_ISSUE_ID_FILE_NOT_FOUND, - "Failed to get filepath from uri %s. %s", fc->uri, err->message); -#endif g_error_free (err); return FALSE; } @@ -244,10 +240,6 @@ check_file_size (GstValidateMediaInfo * mi) if (g_stat (filepath, &statbuf) == 0) { size = statbuf.st_size; } else { -#if 0 - GST_VALIDATE_REPORT (fc, GST_VALIDATE_ISSUE_ID_FILE_NOT_FOUND, - "Failed to get file stats from uri %s", fc->uri); -#endif ret = FALSE; goto end; } @@ -531,10 +523,6 @@ check_playback_scenario (GstValidateMediaInfo * mi, if (!playbin || !videosink || !audiosink) { *error_message = g_strdup ("Playbin and/or fakesink not available"); -#if 0 - GST_VALIDATE_REPORT (fc, GST_VALIDATE_ISSUE_ID_MISSING_PLUGIN, - "file check requires " "playbin and fakesink to be available"); -#endif } g_object_set (playbin, "video-sink", videosink, "audio-sink", audiosink, @@ -544,10 +532,6 @@ check_playback_scenario (GstValidateMediaInfo * mi, state_ret = gst_element_set_state (playbin, GST_STATE_PAUSED); if (state_ret == GST_STATE_CHANGE_FAILURE) { -#if 0 - GST_VALIDATE_REPORT (fc, GST_VALIDATE_ISSUE_ID_FILE_PLAYBACK_START_FAILURE, - "Failed to " "change pipeline state to playing"); -#endif *error_message = g_strdup ("Failed to change pipeline to paused"); ret = FALSE; goto end; @@ -590,11 +574,6 @@ check_playback_scenario (GstValidateMediaInfo * mi, gst_message_parse_error (msg, &error, &debug); *error_message = g_strdup_printf ("Playback error: %s : %s", error->message, debug); -#if 0 - GST_VALIDATE_REPORT (fc, GST_VALIDATE_ISSUE_ID_FILE_PLAYBACK_ERROR, - "%s - File %s failed " "during playback. Error: %s : %s", - messages_prefix, fc->uri, error->message, debug); -#endif g_error_free (error); g_free (debug); @@ -606,10 +585,6 @@ check_playback_scenario (GstValidateMediaInfo * mi, } else { ret = FALSE; *error_message = g_strdup ("Playback finihshed unexpectedly"); -#if 0 - GST_VALIDATE_REPORT (fc, GST_VALIDATE_ISSUE_ID_FILE_PLAYBACK_ERROR, "%s - " - "File playback finished unexpectedly", messages_prefix); -#endif } end: @@ -637,10 +612,6 @@ send_reverse_seek (GstValidateMediaInfo * mi, GstElement * pipeline, if (!ret) { *msg = g_strdup ("Reverse playback seek failed"); -#if 0 - GST_VALIDATE_REPORT (fc, GST_VALIDATE_ISSUE_ID_FILE_PLAYBACK_ERROR, - "Reverse playback seek failed"); -#endif } return ret; } @@ -910,10 +881,6 @@ check_track_selection (GstValidateMediaInfo * mi, gchar ** error_message) if (!playbin || !videosink || !audiosink) { *error_message = g_strdup ("Playbin and/or fakesink not available"); -#if 0 - GST_VALIDATE_REPORT (fc, GST_VALIDATE_ISSUE_ID_MISSING_PLUGIN, - "file check requires " "playbin and fakesink to be available"); -#endif } g_object_set (playbin, "video-sink", videosink, "audio-sink", audiosink, @@ -925,10 +892,6 @@ check_track_selection (GstValidateMediaInfo * mi, gchar ** error_message) state_ret = gst_element_set_state (playbin, GST_STATE_PAUSED); if (state_ret == GST_STATE_CHANGE_FAILURE) { -#if 0 - GST_VALIDATE_REPORT (fc, GST_VALIDATE_ISSUE_ID_FILE_PLAYBACK_START_FAILURE, - "Failed to " "change pipeline state to playing"); -#endif *error_message = g_strdup ("Failed to change pipeline to paused"); ret = FALSE; goto end; @@ -990,11 +953,6 @@ check_track_selection (GstValidateMediaInfo * mi, gchar ** error_message) gst_message_parse_error (msg, &error, &debug); *error_message = g_strdup_printf ("Playback error: %s : %s", error->message, debug); -#if 0 - GST_VALIDATE_REPORT (fc, GST_VALIDATE_ISSUE_ID_FILE_PLAYBACK_ERROR, - "%s - File %s failed " "during playback. Error: %s : %s", - messages_prefix, fc->uri, error->message, debug); -#endif g_error_free (error); g_free (debug); diff --git a/validate/gst/validate/gst-validate-report.c b/validate/gst/validate/gst-validate-report.c index a221165..ce7b53f 100644 --- a/validate/gst/validate/gst-validate-report.c +++ b/validate/gst/validate/gst-validate-report.c @@ -75,11 +75,17 @@ gst_validate_issue_new (GstValidateIssueId issue_id, const gchar * summary, const gchar * description, GstValidateReportLevel default_level) { GstValidateIssue *issue = g_slice_new (GstValidateIssue); + gchar **area_name = g_strsplit (g_quark_to_string (issue_id), "::", 2); + + g_return_val_if_fail (area_name[0] != NULL && area_name[1] != 0 && + area_name[2] == NULL, NULL); issue->issue_id = issue_id; issue->summary = g_strdup (summary); issue->description = g_strdup (description); issue->default_level = default_level; + issue->area = area_name[0]; + issue->name = area_name[1]; return issue; } @@ -89,6 +95,9 @@ gst_validate_issue_free (GstValidateIssue * issue) { g_free (issue->summary); g_free (issue->description); + + /* We are using an string array for area and name */ + g_strfreev (&issue->area); g_slice_free (GstValidateIssue, issue); } @@ -103,7 +112,7 @@ gst_validate_issue_register (GstValidateIssue * issue) } #define REGISTER_VALIDATE_ISSUE(lvl,id,sum,desc) \ - gst_validate_issue_register (gst_validate_issue_new (GST_VALIDATE_ISSUE_ID_##id, \ + gst_validate_issue_register (gst_validate_issue_new (id, \ sum, desc, GST_VALIDATE_REPORT_LEVEL_##lvl)) static void gst_validate_report_load_issues (void) @@ -208,29 +217,20 @@ gst_validate_report_load_issues (void) REGISTER_VALIDATE_ISSUE (CRITICAL, STATE_CHANGE_FAILURE, _("state change failed"), NULL); - REGISTER_VALIDATE_ISSUE (CRITICAL, FILE_SIZE_IS_ZERO, - _("resulting file size is 0"), NULL); REGISTER_VALIDATE_ISSUE (WARNING, FILE_SIZE_INCORRECT, _("resulting file size wasn't within the expected values"), NULL); REGISTER_VALIDATE_ISSUE (WARNING, FILE_DURATION_INCORRECT, _("resulting file duration wasn't within the expected values"), NULL); REGISTER_VALIDATE_ISSUE (WARNING, FILE_SEEKABLE_INCORRECT, _("resulting file wasn't seekable or not seekable as expected"), NULL); - REGISTER_VALIDATE_ISSUE (ISSUE, FILE_TAG_DETECTION_INCORRECT, - _("detected tags are different than expected ones"), NULL); REGISTER_VALIDATE_ISSUE (CRITICAL, FILE_PROFILE_INCORRECT, _("resulting file stream profiles didn't match expected values"), NULL); - REGISTER_VALIDATE_ISSUE (CRITICAL, FILE_NOT_FOUND, - _("resulting file could not be found for testing"), NULL); - REGISTER_VALIDATE_ISSUE (CRITICAL, FILE_CHECK_FAILURE, - _("an error occured while checking the file for conformance"), NULL); - REGISTER_VALIDATE_ISSUE (CRITICAL, FILE_PLAYBACK_START_FAILURE, - _("an error occured while starting playback of the test file"), NULL); - REGISTER_VALIDATE_ISSUE (CRITICAL, FILE_PLAYBACK_ERROR, - _("an error during playback of the file"), NULL); + REGISTER_VALIDATE_ISSUE (ISSUE, FILE_TAG_DETECTION_INCORRECT, + _("detected tags are different than expected ones"), NULL); REGISTER_VALIDATE_ISSUE (WARNING, FILE_NO_STREAM_ID, _("the discoverer found a stream that had no stream ID"), NULL); + REGISTER_VALIDATE_ISSUE (CRITICAL, ALLOCATION_FAILURE, _("a memory allocation failed during Validate run"), NULL); REGISTER_VALIDATE_ISSUE (CRITICAL, MISSING_PLUGIN, @@ -353,36 +353,6 @@ gst_validate_report_level_get_name (GstValidateReportLevel level) } } -const gchar * -gst_validate_report_area_get_name (GstValidateReportArea area) -{ - switch (area) { - case GST_VALIDATE_AREA_EVENT: - return "event"; - case GST_VALIDATE_AREA_BUFFER: - return "buffer"; - case GST_VALIDATE_AREA_QUERY: - return "query"; - case GST_VALIDATE_AREA_CAPS: - return "caps"; - case GST_VALIDATE_AREA_SEEK: - return "seek"; - case GST_VALIDATE_AREA_STATE: - return "state"; - case GST_VALIDATE_AREA_FILE_CHECK: - return "file-check"; - case GST_VALIDATE_AREA_RUN_ERROR: - return "run-error"; - case GST_VALIDATE_AREA_OTHER: - return "other"; - case GST_VALIDATE_AREA_SCENARIO: - return "scenario"; - default: - g_assert_not_reached (); - return "unknown"; - } -} - gboolean gst_validate_report_should_print (GstValidateReport * report) { diff --git a/validate/gst/validate/gst-validate-report.h b/validate/gst/validate/gst-validate-report.h index c80c0ec..ddd10fd 100644 --- a/validate/gst/validate/gst-validate-report.h +++ b/validate/gst/validate/gst-validate-report.h @@ -53,81 +53,57 @@ typedef enum { GST_VALIDATE_REPORT_LEVEL_NUM_ENTRIES, } GstValidateReportLevel; -typedef enum { - GST_VALIDATE_AREA_EVENT=1, - GST_VALIDATE_AREA_BUFFER, - GST_VALIDATE_AREA_QUERY, - GST_VALIDATE_AREA_CAPS, - GST_VALIDATE_AREA_SEEK, - GST_VALIDATE_AREA_STATE, - GST_VALIDATE_AREA_FILE_CHECK, - GST_VALIDATE_AREA_SCENARIO, - GST_VALIDATE_AREA_RUN_ERROR, - GST_VALIDATE_AREA_OTHER=100, -} GstValidateReportArea; - -#define GST_VALIDATE_ISSUE_ID_UNKNOWN 0 - -#define GST_VALIDATE_ISSUE_ID_SHIFT 16 -#define GST_VALIDATE_ISSUE_ID_CUSTOM_FIRST (2 << 15) - -#define GST_VALIDATE_ISSUE_ID_BUFFER_BEFORE_SEGMENT (((GstValidateIssueId) GST_VALIDATE_AREA_BUFFER) << GST_VALIDATE_ISSUE_ID_SHIFT | 1) -#define GST_VALIDATE_ISSUE_ID_BUFFER_IS_OUT_OF_SEGMENT (((GstValidateIssueId) GST_VALIDATE_AREA_BUFFER) << GST_VALIDATE_ISSUE_ID_SHIFT | 2) -#define GST_VALIDATE_ISSUE_ID_BUFFER_TIMESTAMP_OUT_OF_RECEIVED_RANGE (((GstValidateIssueId) GST_VALIDATE_AREA_BUFFER) << GST_VALIDATE_ISSUE_ID_SHIFT | 3) -#define GST_VALIDATE_ISSUE_ID_FIRST_BUFFER_RUNNING_TIME_IS_NOT_ZERO (((GstValidateIssueId) GST_VALIDATE_AREA_BUFFER) << GST_VALIDATE_ISSUE_ID_SHIFT | 4) -#define GST_VALIDATE_ISSUE_ID_WRONG_FLOW_RETURN (((GstValidateIssueId) GST_VALIDATE_AREA_BUFFER) << GST_VALIDATE_ISSUE_ID_SHIFT | 5) -#define GST_VALIDATE_ISSUE_ID_BUFFER_AFTER_EOS (((GstValidateIssueId) GST_VALIDATE_AREA_BUFFER) << GST_VALIDATE_ISSUE_ID_SHIFT | 6) -#define GST_VALIDATE_ISSUE_ID_WRONG_BUFFER (((GstValidateIssueId) GST_VALIDATE_AREA_BUFFER) << GST_VALIDATE_ISSUE_ID_SHIFT | 7) - -#define GST_VALIDATE_ISSUE_ID_CAPS_IS_MISSING_FIELD (((GstValidateIssueId) GST_VALIDATE_AREA_CAPS) << GST_VALIDATE_ISSUE_ID_SHIFT | 1) -#define GST_VALIDATE_ISSUE_ID_CAPS_FIELD_HAS_BAD_TYPE (((GstValidateIssueId) GST_VALIDATE_AREA_CAPS) << GST_VALIDATE_ISSUE_ID_SHIFT | 2) -#define GST_VALIDATE_ISSUE_ID_CAPS_EXPECTED_FIELD_NOT_FOUND (((GstValidateIssueId) GST_VALIDATE_AREA_CAPS) << GST_VALIDATE_ISSUE_ID_SHIFT | 3) -#define GST_VALIDATE_ISSUE_ID_GET_CAPS_NOT_PROXYING_FIELDS (((GstValidateIssueId) GST_VALIDATE_AREA_CAPS) << GST_VALIDATE_ISSUE_ID_SHIFT | 4) -#define GST_VALIDATE_ISSUE_ID_CAPS_FIELD_UNEXPECTED_VALUE (((GstValidateIssueId) GST_VALIDATE_AREA_CAPS) << GST_VALIDATE_ISSUE_ID_SHIFT | 5) - -#define GST_VALIDATE_ISSUE_ID_EVENT_NEWSEGMENT_NOT_PUSHED (((GstValidateIssueId) GST_VALIDATE_AREA_EVENT) << GST_VALIDATE_ISSUE_ID_SHIFT | 1) -#define GST_VALIDATE_ISSUE_ID_SERIALIZED_EVENT_WASNT_PUSHED_IN_TIME (((GstValidateIssueId) GST_VALIDATE_AREA_EVENT) << GST_VALIDATE_ISSUE_ID_SHIFT | 2) -#define GST_VALIDATE_ISSUE_ID_EVENT_HAS_WRONG_SEQNUM (((GstValidateIssueId) GST_VALIDATE_AREA_EVENT) << GST_VALIDATE_ISSUE_ID_SHIFT | 3) -#define GST_VALIDATE_ISSUE_ID_EVENT_SERIALIZED_OUT_OF_ORDER (((GstValidateIssueId) GST_VALIDATE_AREA_EVENT) << GST_VALIDATE_ISSUE_ID_SHIFT | 4) -#define GST_VALIDATE_ISSUE_ID_EVENT_NEW_SEGMENT_MISMATCH (((GstValidateIssueId) GST_VALIDATE_AREA_EVENT) << GST_VALIDATE_ISSUE_ID_SHIFT | 5) -#define GST_VALIDATE_ISSUE_ID_EVENT_FLUSH_START_UNEXPECTED (((GstValidateIssueId) GST_VALIDATE_AREA_EVENT) << GST_VALIDATE_ISSUE_ID_SHIFT | 6) -#define GST_VALIDATE_ISSUE_ID_EVENT_FLUSH_STOP_UNEXPECTED (((GstValidateIssueId) GST_VALIDATE_AREA_EVENT) << GST_VALIDATE_ISSUE_ID_SHIFT | 7) -#define GST_VALIDATE_ISSUE_ID_EVENT_CAPS_DUPLICATE (((GstValidateIssueId) GST_VALIDATE_AREA_EVENT) << GST_VALIDATE_ISSUE_ID_SHIFT | 8) - -#define GST_VALIDATE_ISSUE_ID_EVENT_SEEK_NOT_HANDLED (((GstValidateIssueId) GST_VALIDATE_AREA_SEEK) << GST_VALIDATE_ISSUE_ID_SHIFT | 1) -#define GST_VALIDATE_ISSUE_ID_EVENT_SEEK_RESULT_POSITION_WRONG (((GstValidateIssueId) GST_VALIDATE_AREA_SEEK) << GST_VALIDATE_ISSUE_ID_SHIFT | 2) - -#define GST_VALIDATE_ISSUE_ID_STATE_CHANGE_FAILURE (((GstValidateIssueId) GST_VALIDATE_AREA_STATE) << GST_VALIDATE_ISSUE_ID_SHIFT | 1) - -#define GST_VALIDATE_ISSUE_ID_FILE_SIZE_IS_ZERO (((GstValidateIssueId) GST_VALIDATE_AREA_FILE_CHECK) << GST_VALIDATE_ISSUE_ID_SHIFT | 1) -#define GST_VALIDATE_ISSUE_ID_FILE_SIZE_INCORRECT (((GstValidateIssueId) GST_VALIDATE_AREA_FILE_CHECK) << GST_VALIDATE_ISSUE_ID_SHIFT | 2) -#define GST_VALIDATE_ISSUE_ID_FILE_DURATION_INCORRECT (((GstValidateIssueId) GST_VALIDATE_AREA_FILE_CHECK) << GST_VALIDATE_ISSUE_ID_SHIFT | 3) -#define GST_VALIDATE_ISSUE_ID_FILE_SEEKABLE_INCORRECT (((GstValidateIssueId) GST_VALIDATE_AREA_FILE_CHECK) << GST_VALIDATE_ISSUE_ID_SHIFT | 4) -#define GST_VALIDATE_ISSUE_ID_FILE_PROFILE_INCORRECT (((GstValidateIssueId) GST_VALIDATE_AREA_FILE_CHECK) << GST_VALIDATE_ISSUE_ID_SHIFT | 5) -#define GST_VALIDATE_ISSUE_ID_FILE_NOT_FOUND (((GstValidateIssueId) GST_VALIDATE_AREA_FILE_CHECK) << GST_VALIDATE_ISSUE_ID_SHIFT | 6) -#define GST_VALIDATE_ISSUE_ID_FILE_CHECK_FAILURE (((GstValidateIssueId) GST_VALIDATE_AREA_FILE_CHECK) << GST_VALIDATE_ISSUE_ID_SHIFT | 7) -#define GST_VALIDATE_ISSUE_ID_FILE_PLAYBACK_START_FAILURE (((GstValidateIssueId) GST_VALIDATE_AREA_FILE_CHECK) << GST_VALIDATE_ISSUE_ID_SHIFT | 8) -#define GST_VALIDATE_ISSUE_ID_FILE_PLAYBACK_ERROR (((GstValidateIssueId) GST_VALIDATE_AREA_FILE_CHECK) << GST_VALIDATE_ISSUE_ID_SHIFT | 9) -#define GST_VALIDATE_ISSUE_ID_FILE_NO_STREAM_ID (((GstValidateIssueId) GST_VALIDATE_AREA_FILE_CHECK) << GST_VALIDATE_ISSUE_ID_SHIFT | 10) -#define GST_VALIDATE_ISSUE_ID_FILE_TAG_DETECTION_INCORRECT (((GstValidateIssueId) GST_VALIDATE_AREA_FILE_CHECK) << GST_VALIDATE_ISSUE_ID_SHIFT | 11) - -#define GST_VALIDATE_ISSUE_ID_ALLOCATION_FAILURE (((GstValidateIssueId) GST_VALIDATE_AREA_RUN_ERROR) << GST_VALIDATE_ISSUE_ID_SHIFT | 1) -#define GST_VALIDATE_ISSUE_ID_MISSING_PLUGIN (((GstValidateIssueId) GST_VALIDATE_AREA_RUN_ERROR) << GST_VALIDATE_ISSUE_ID_SHIFT | 2) -#define GST_VALIDATE_ISSUE_ID_WARNING_ON_BUS (((GstValidateIssueId) GST_VALIDATE_AREA_RUN_ERROR) << GST_VALIDATE_ISSUE_ID_SHIFT | 3) -#define GST_VALIDATE_ISSUE_ID_ERROR_ON_BUS (((GstValidateIssueId) GST_VALIDATE_AREA_RUN_ERROR) << GST_VALIDATE_ISSUE_ID_SHIFT | 4) - -#define GST_VALIDATE_ISSUE_ID_QUERY_POSITION_SUPERIOR_DURATION (((GstValidateIssueId) GST_VALIDATE_AREA_QUERY) << GST_VALIDATE_ISSUE_ID_SHIFT | 1) -#define GST_VALIDATE_ISSUE_ID_QUERY_POSITION_OUT_OF_SEGMENT (((GstValidateIssueId) GST_VALIDATE_AREA_QUERY) << GST_VALIDATE_ISSUE_ID_SHIFT | 2) - -#define GST_VALIDATE_ISSUE_ID_SCENARIO_NOT_ENDED (((GstValidateIssueId) GST_VALIDATE_AREA_SCENARIO) << GST_VALIDATE_ISSUE_ID_SHIFT | 1) -#define GST_VALIDATE_ISSUE_ID_SCENARIO_ACTION_EXECUTION_ERROR (((GstValidateIssueId) GST_VALIDATE_AREA_SCENARIO) << GST_VALIDATE_ISSUE_ID_SHIFT | 2) -#define GST_VALIDATE_ISSUE_ID_SCENARIO_ACTION_EXECUTION_ISSUE (((GstValidateIssueId) GST_VALIDATE_AREA_SCENARIO) << GST_VALIDATE_ISSUE_ID_SHIFT | 3) - -#define GST_VALIDATE_ISSUE_ID_G_LOG_ISSUE (((GstValidateIssueId) GST_VALIDATE_AREA_OTHER) << GST_VALIDATE_ISSUE_ID_SHIFT | 1) -#define GST_VALIDATE_ISSUE_ID_G_LOG_WARNING (((GstValidateIssueId) GST_VALIDATE_AREA_OTHER) << GST_VALIDATE_ISSUE_ID_SHIFT | 2) -#define GST_VALIDATE_ISSUE_ID_G_LOG_CRITICAL (((GstValidateIssueId) GST_VALIDATE_AREA_OTHER) << GST_VALIDATE_ISSUE_ID_SHIFT | 3) - -#define GST_VALIDATE_ISSUE_ID_AREA(id) ((guintptr)(id >> GST_VALIDATE_ISSUE_ID_SHIFT)) +#define _QUARK g_quark_from_static_string + +#define BUFFER_BEFORE_SEGMENT _QUARK("buffer::before-segment") +#define BUFFER_IS_OUT_OF_SEGMENT _QUARK("buffer::is-out-of-segment") +#define BUFFER_TIMESTAMP_OUT_OF_RECEIVED_RANGE _QUARK("buffer::timestamp-out-of-received-range") +#define FIRST_BUFFER_RUNNING_TIME_IS_NOT_ZERO _QUARK("buffer::first-buffer-running-time-is-not-zero") +#define WRONG_FLOW_RETURN _QUARK("buffer::wrong-flow-return") +#define BUFFER_AFTER_EOS _QUARK("buffer::after-eos") +#define WRONG_BUFFER _QUARK("buffer::not-expected-one") + +#define CAPS_IS_MISSING_FIELD _QUARK("caps::is-missing-field") +#define CAPS_FIELD_HAS_BAD_TYPE _QUARK("caps::field-has-bad-type") +#define CAPS_EXPECTED_FIELD_NOT_FOUND _QUARK("caps::expected-field-not-found") +#define GET_CAPS_NOT_PROXYING_FIELDS _QUARK("caps::not-proxying-fields") +#define CAPS_FIELD_UNEXPECTED_VALUE _QUARK("caps::field-unexpected-value") + +#define EVENT_NEWSEGMENT_NOT_PUSHED _QUARK("event::newsegment-not-pushed") +#define SERIALIZED_EVENT_WASNT_PUSHED_IN_TIME _QUARK("event::serialized-event-wasnt-pushed-in-time") +#define EVENT_HAS_WRONG_SEQNUM _QUARK("event::has-wrong-seqnum") +#define EVENT_SERIALIZED_OUT_OF_ORDER _QUARK("event::serialized-out-of-order") +#define EVENT_NEW_SEGMENT_MISMATCH _QUARK("event::segment-mismatch") +#define EVENT_FLUSH_START_UNEXPECTED _QUARK("event::flush-start-unexpected") +#define EVENT_FLUSH_STOP_UNEXPECTED _QUARK("event::flush-stop-unexpected") +#define EVENT_CAPS_DUPLICATE _QUARK("event::caps-duplicate") +#define EVENT_SEEK_NOT_HANDLED _QUARK("event::seek-not-handled") +#define EVENT_SEEK_RESULT_POSITION_WRONG _QUARK("event::seek-result-position-wrong") + +#define STATE_CHANGE_FAILURE _QUARK("state::change-failure") + +#define FILE_NO_STREAM_ID _QUARK("file-checking::no-stream-id") +#define FILE_TAG_DETECTION_INCORRECT _QUARK("file-checking::tag-detection-incorrect") +#define FILE_SIZE_INCORRECT _QUARK("file-checking::size-incorrect") +#define FILE_DURATION_INCORRECT _QUARK("file-checking::duration-incorrect") +#define FILE_SEEKABLE_INCORRECT _QUARK("file-checking::seekable-incorrect") +#define FILE_PROFILE_INCORRECT _QUARK("file-checking::profile-incorrect") + +#define ALLOCATION_FAILURE _QUARK("runtime::allocation-failure") +#define MISSING_PLUGIN _QUARK("runtime::missing-plugin") +#define WARNING_ON_BUS _QUARK("runtime::warning-on-bus") +#define ERROR_ON_BUS _QUARK("runtime::error-on-bus") + +#define QUERY_POSITION_SUPERIOR_DURATION _QUARK("query::position-superior-duration") +#define QUERY_POSITION_OUT_OF_SEGMENT _QUARK("query::position-out-of-segment") + +#define SCENARIO_NOT_ENDED _QUARK("scenario::not-ended") +#define SCENARIO_ACTION_EXECUTION_ERROR _QUARK("scenario::execution-error") +#define SCENARIO_ACTION_EXECUTION_ISSUE _QUARK("scenario::execution-issue") + +#define G_LOG_ISSUE _QUARK("g-log::issue") +#define G_LOG_WARNING _QUARK("g-log::warning") +#define G_LOG_CRITICAL _QUARK("g-log::critical") typedef struct { GstValidateIssueId issue_id; @@ -141,14 +117,18 @@ typedef struct { */ gchar *description; + /* The name of the area of issue + * this one is in */ + gchar *area; + /* The name of the issue type */ + gchar *name; + /* default_level: The default level of severity for this * issue. */ GstValidateReportLevel default_level; } GstValidateIssue; -#define GST_VALIDATE_ISSUE_AREA(i) (GST_VALIDATE_ISSUE_ID_AREA (gst_validate_issue_get_id (i))) - struct _GstValidateReport { gint refcount; @@ -156,10 +136,10 @@ struct _GstValidateReport { GstValidateIssue *issue; GstValidateReportLevel level; - + /* The reporter that reported the issue (to get names, info, ...) */ GstValidateReporter *reporter; - + /* timestamp: The time at which this issue happened since * the process start (to stay in sync with gst logging) */ GstClockTime timestamp; @@ -181,10 +161,14 @@ struct _GstValidateReport { GstValidateReportingLevel reporting_level; }; -#define GST_VALIDATE_ISSUE_FORMAT G_GUINTPTR_FORMAT " (%s) : %s(%" G_GUINTPTR_FORMAT "): %s" -#define GST_VALIDATE_ISSUE_ARGS(i) gst_validate_issue_get_id (i), gst_validate_report_level_get_name (i->default_level), \ - gst_validate_report_area_get_name (GST_VALIDATE_ISSUE_AREA (i)), GST_VALIDATE_ISSUE_AREA (i), \ - i->summary +void gst_validate_report_add_message (GstValidateReport *report, + const gchar *message); + +#define GST_VALIDATE_ISSUE_FORMAT G_GUINTPTR_FORMAT " (%s) : %s: %s" +#define GST_VALIDATE_ISSUE_ARGS(i) gst_validate_issue_get_id (i), \ + gst_validate_report_level_get_name (i->default_level), \ + i->area, \ + i->summary #define GST_VALIDATE_ERROR_REPORT_PRINT_FORMAT GST_TIME_FORMAT " <%s>: %" GST_VALIDATE_ISSUE_FORMAT ": %s" #define GST_VALIDATE_REPORT_PRINT_ARGS(r) GST_TIME_ARGS (r->timestamp), \ @@ -201,8 +185,8 @@ GstValidateIssue *gst_validate_issue_new (GstValidateIssueId issue_id, const gc GstValidateReportLevel default_level); GstValidateReport *gst_validate_report_new (GstValidateIssue * issue, - GstValidateReporter * reporter, - const gchar * message); + GstValidateReporter * reporter, + const gchar * message); void gst_validate_report_unref (GstValidateReport * report); GstValidateReport *gst_validate_report_ref (GstValidateReport * report); @@ -216,8 +200,6 @@ void gst_validate_report_print_details (GstValidateReport *report) void gst_validate_report_print_description (GstValidateReport *report); const gchar * gst_validate_report_level_get_name (GstValidateReportLevel level); -const gchar * gst_validate_report_area_get_name (GstValidateReportArea area); -const gchar * gst_validate_report_subarea_get_name (GstValidateReportArea area, gint subarea); void gst_validate_printf (gpointer source, const gchar * format, diff --git a/validate/gst/validate/gst-validate-reporter.h b/validate/gst/validate/gst-validate-reporter.h index f982bdd..e5944dd 100644 --- a/validate/gst/validate/gst-validate-reporter.h +++ b/validate/gst/validate/gst-validate-reporter.h @@ -41,7 +41,7 @@ G_BEGIN_DECLS #define GST_VALIDATE_REPORT(m, issue_id, ...) \ G_STMT_START { \ gst_validate_report (GST_VALIDATE_REPORTER (m), \ - GST_VALIDATE_ISSUE_ID_##issue_id, \ + issue_id, \ __VA_ARGS__ ); \ } G_STMT_END @@ -50,7 +50,7 @@ G_BEGIN_DECLS #define GST_VALIDATE_REPORT(m, issue_id, args...) \ G_STMT_START { \ gst_validate_report (GST_VALIDATE_REPORTER (m), \ - GST_VALIDATE_ISSUE_ID_##issue_id, ##args ); \ + issue_id, ##args ); \ } G_STMT_END #endif /* G_HAVE_ISO_VARARGS */ #endif /* G_HAVE_GNUC_VARARGS */ diff --git a/validate/gst/validate/media-descriptor-writer.c b/validate/gst/validate/media-descriptor-writer.c index bd5adc1..6ee294c 100644 --- a/validate/gst/validate/media-descriptor-writer.c +++ b/validate/gst/validate/media-descriptor-writer.c @@ -297,7 +297,7 @@ _find_stream_id (GstPad * pad, GstEvent ** event, } if (!snode || snode->pad) { - GST_VALIDATE_REPORT (writer, FILE_CHECK_FAILURE, + GST_VALIDATE_REPORT (writer, FILE_NO_STREAM_ID, "Got pad %s:%s where Discoverer found no stream ID", GST_DEBUG_PAD_NAME (pad)); diff --git a/validate/tests/check/validate/padmonitor.c b/validate/tests/check/validate/padmonitor.c index 477a51b..7242728 100644 --- a/validate/tests/check/validate/padmonitor.c +++ b/validate/tests/check/validate/padmonitor.c @@ -78,8 +78,7 @@ GST_START_TEST (buffer_before_segment) assert_equals_int (g_list_length (reports), 1); report = reports->data; fail_unless_equals_int (report->level, GST_VALIDATE_REPORT_LEVEL_WARNING); - fail_unless_equals_int (report->issue->issue_id, - GST_VALIDATE_ISSUE_ID_BUFFER_BEFORE_SEGMENT); + fail_unless_equals_int (report->issue->issue_id, BUFFER_BEFORE_SEGMENT); g_list_free_full (reports, (GDestroyNotify) gst_validate_report_unref); } @@ -165,8 +164,7 @@ GST_START_TEST (buffer_outside_segment) assert_equals_int (g_list_length (reports), 1); report = reports->data; fail_unless_equals_int (report->level, GST_VALIDATE_REPORT_LEVEL_ISSUE); - fail_unless_equals_int (report->issue->issue_id, - GST_VALIDATE_ISSUE_ID_BUFFER_IS_OUT_OF_SEGMENT); + fail_unless_equals_int (report->issue->issue_id, BUFFER_IS_OUT_OF_SEGMENT); g_list_free_full (reports, (GDestroyNotify) gst_validate_report_unref); } @@ -243,7 +241,7 @@ _first_buffer_running_time (gboolean failing) report = reports->data; fail_unless_equals_int (report->level, GST_VALIDATE_REPORT_LEVEL_WARNING); fail_unless_equals_int (report->issue->issue_id, - GST_VALIDATE_ISSUE_ID_FIRST_BUFFER_RUNNING_TIME_IS_NOT_ZERO); + FIRST_BUFFER_RUNNING_TIME_IS_NOT_ZERO); } else { assert_equals_int (g_list_length (reports), 0); } @@ -357,8 +355,7 @@ _test_flow_aggregation (GstFlowReturn flow, GstFlowReturn flow1, assert_equals_int (g_list_length (reports), 1); report = reports->data; fail_unless_equals_int (report->level, GST_VALIDATE_REPORT_LEVEL_CRITICAL); - fail_unless_equals_int (report->issue->issue_id, - GST_VALIDATE_ISSUE_ID_WRONG_FLOW_RETURN); + fail_unless_equals_int (report->issue->issue_id, WRONG_FLOW_RETURN); } else { assert_equals_int (g_list_length (reports), 0); @@ -663,8 +660,7 @@ _check_media_info (GstSegment * segment, BufferDesc * bufs) fail_unless_equals_int (report->level, GST_VALIDATE_REPORT_LEVEL_WARNING); - fail_unless_equals_int (report->issue->issue_id, - GST_VALIDATE_ISSUE_ID_WRONG_BUFFER); + fail_unless_equals_int (report->issue->issue_id, WRONG_BUFFER); tmp = tmp->next; } } |