validate: Cleanup ABI and make it ready to be stabilized this cycle

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1810>
This commit is contained in:
Thibault Saunier 2022-03-07 17:21:48 -03:00 committed by Philippe Normand
parent 5089139e57
commit 1a5d2ce98c
22 changed files with 214 additions and 124 deletions

View file

@ -36,10 +36,16 @@ typedef struct {
GstObject parent; GstObject parent;
GssimPrivate *priv; GssimPrivate *priv;
/*< private >*/
gpointer _gst_reserved[GST_PADDING];
} Gssim; } Gssim;
typedef struct { typedef struct {
GstObjectClass parent; GstObjectClass parent;
/*< private >*/
gpointer _gst_reserved[GST_PADDING];
} GssimClass; } GssimClass;
#define GSSIM_TYPE (gssim_get_type ()) #define GSSIM_TYPE (gssim_get_type ())

View file

@ -41,10 +41,16 @@ typedef struct {
GstObject parent; GstObject parent;
GstValidateSsimPrivate *priv; GstValidateSsimPrivate *priv;
/*< private >*/
gpointer _gst_reserved[GST_PADDING];
} GstValidateSsim; } GstValidateSsim;
typedef struct { typedef struct {
GstObjectClass parent; GstObjectClass parent;
/*< private >*/
gpointer _gst_reserved[GST_PADDING];
} GstValidateSsimClass; } GstValidateSsimClass;
#define GST_VALIDATE_SSIM_TIME_FORMAT "u-%02u-%02u.%09u" #define GST_VALIDATE_SSIM_TIME_FORMAT "u-%02u-%02u.%09u"

View file

@ -61,6 +61,9 @@ struct _GstValidateBinMonitor {
/*< private >*/ /*< private >*/
gulong element_added_id; gulong element_added_id;
gulong element_removed_id; gulong element_removed_id;
/*< private >*/
gpointer _gst_reserved[GST_PADDING];
}; };
/** /**
@ -71,6 +74,9 @@ struct _GstValidateBinMonitor {
*/ */
struct _GstValidateBinMonitorClass { struct _GstValidateBinMonitorClass {
GstValidateElementMonitorClass parent_class; GstValidateElementMonitorClass parent_class;
/*< private >*/
gpointer _gst_reserved[GST_PADDING];
}; };
/* normal GObject stuff */ /* normal GObject stuff */

View file

@ -68,6 +68,8 @@ struct _GstValidateElementMonitor {
gboolean is_demuxer; gboolean is_demuxer;
gboolean is_converter; gboolean is_converter;
gboolean is_sink; gboolean is_sink;
gpointer _gst_reserved[GST_PADDING];
}; };
/** /**
@ -78,6 +80,9 @@ struct _GstValidateElementMonitor {
*/ */
struct _GstValidateElementMonitorClass { struct _GstValidateElementMonitorClass {
GstValidateMonitorClass parent_class; GstValidateMonitorClass parent_class;
/*< private >*/
gpointer _gst_reserved[GST_PADDING];
}; };
/* normal GObject stuff */ /* normal GObject stuff */

View file

@ -71,4 +71,103 @@ G_GNUC_INTERNAL GList * gst_validate_get_test_file_expected_issues (void);
G_GNUC_INTERNAL gboolean gst_validate_extra_checks_init (void); G_GNUC_INTERNAL gboolean gst_validate_extra_checks_init (void);
G_GNUC_INTERNAL gboolean gst_validate_flow_init (void); G_GNUC_INTERNAL gboolean gst_validate_flow_init (void);
G_GNUC_INTERNAL gboolean is_tty (void); G_GNUC_INTERNAL gboolean is_tty (void);
/* MediaDescriptor structures */
typedef struct
{
/* Children */
/* GstValidateMediaTagNode */
GList *tags;
gchar *str_open;
gchar *str_close;
} GstValidateMediaTagsNode;
/* Parsing structures */
struct _GstValidateMediaFileNode
{
/* Children */
/* GstValidateMediaStreamNode */
GList *streams;
/* GstValidateMediaTagsNode */
GstValidateMediaTagsNode *tags;
/* attributes */
guint64 id;
gchar *uri;
GstClockTime duration;
gboolean frame_detection;
gboolean skip_parsers;
gboolean seekable;
GstCaps *caps;
gchar *str_open;
gchar *str_close;
};
struct _GstValidateMediaTagNode
{
/* Children */
GstTagList *taglist;
/* Testing infos */
gboolean found;
gchar *str_open;
gchar *str_close;
};
typedef struct
{
/* Children */
/* GstValidateMediaFrameNode */
GList *frames;
/* GstValidateMediaTagsNode */
GstValidateMediaTagsNode *tags;
/* Attributes */
GstCaps *caps;
GList * segments;
gchar *id;
gchar *padname;
/* Testing infos */
GstPad *pad;
GList *cframe;
gchar *str_open;
gchar *str_close;
} GstValidateMediaStreamNode;
typedef struct
{
/* Attributes */
guint64 id;
guint64 offset;
guint64 offset_end;
GstClockTime duration;
GstClockTime pts, dts;
GstClockTime running_time;
gboolean is_keyframe;
GstBuffer *buf;
gchar *checksum;
gchar *str_open;
gchar *str_close;
} GstValidateMediaFrameNode;
typedef struct
{
gint next_frame_id;
GstSegment segment;
gchar *str_open;
gchar *str_close;
} GstValidateSegmentNode;
#endif #endif

View file

@ -60,6 +60,9 @@ struct _GstValidateMediaInfo {
gboolean discover_only; gboolean discover_only;
GstValidateStreamInfo *stream_info; GstValidateStreamInfo *stream_info;
/*< private >*/
gpointer _gst_reserved[GST_PADDING];
}; };
GST_VALIDATE_API GST_VALIDATE_API

View file

@ -47,11 +47,17 @@ G_BEGIN_DECLS
struct _GstMockDecryptor struct _GstMockDecryptor
{ {
GstBaseTransform element; GstBaseTransform element;
/*< private >*/
gpointer _gst_reserved[GST_PADDING];
}; };
struct _GstMockDecryptorClass struct _GstMockDecryptorClass
{ {
GstBaseTransformClass parent_class; GstBaseTransformClass parent_class;
/*< private >*/
gpointer _gst_reserved[GST_PADDING];
}; };
G_GNUC_INTERNAL GType gst_mockdecryptor_get_type (void); G_GNUC_INTERNAL GType gst_mockdecryptor_get_type (void);

View file

@ -100,6 +100,9 @@ struct _GstValidateMonitor {
GHashTable *reports; GHashTable *reports;
GstValidateVerbosityFlags verbosity; GstValidateVerbosityFlags verbosity;
/*< private >*/
gpointer _gst_reserved[GST_PADDING];
}; };
/** /**
@ -115,6 +118,9 @@ struct _GstValidateMonitorClass {
GstElement *(* get_element) (GstValidateMonitor * monitor); GstElement *(* get_element) (GstValidateMonitor * monitor);
void (*set_media_descriptor) (GstValidateMonitor * monitor, void (*set_media_descriptor) (GstValidateMonitor * monitor,
GstValidateMediaDescriptor * media_descriptor); GstValidateMediaDescriptor * media_descriptor);
/*< private >*/
gpointer _gst_reserved[GST_PADDING];
}; };
/* normal GObject stuff */ /* normal GObject stuff */

View file

@ -37,6 +37,9 @@ typedef struct {
GQueue name_overrides; GQueue name_overrides;
GQueue gtype_overrides; GQueue gtype_overrides;
GQueue klass_overrides; GQueue klass_overrides;
/*< private >*/
gpointer _gst_reserved[GST_PADDING];
} GstValidateOverrideRegistry; } GstValidateOverrideRegistry;
GST_VALIDATE_API GST_VALIDATE_API

View file

@ -57,6 +57,8 @@ struct _GstValidateOverrideClass
GstValidateMonitor * monitor); GstValidateMonitor * monitor);
void (*attached)(GstValidateOverride * override); void (*attached)(GstValidateOverride * override);
gpointer _gst_reserved[GST_PADDING];
}; };
struct _GstValidateOverride struct _GstValidateOverride
@ -73,6 +75,8 @@ struct _GstValidateOverride
/*<private>*/ /*<private>*/
GstValidateOverridePrivate *priv; GstValidateOverridePrivate *priv;
gpointer _gst_reserved[GST_PADDING];
}; };
GST_VALIDATE_API GST_VALIDATE_API

View file

@ -131,6 +131,9 @@ struct _GstValidatePadMonitor {
GstClockTime min_buf_freq_interval_ts; GstClockTime min_buf_freq_interval_ts;
GstClockTime min_buf_freq_first_buffer_ts; GstClockTime min_buf_freq_first_buffer_ts;
GstClockTime min_buf_freq_start; GstClockTime min_buf_freq_start;
/*< private >*/
gpointer _gst_reserved[GST_PADDING];
}; };
/** /**
@ -141,6 +144,9 @@ struct _GstValidatePadMonitor {
*/ */
struct _GstValidatePadMonitorClass { struct _GstValidatePadMonitorClass {
GstValidateMonitorClass parent_class; GstValidateMonitorClass parent_class;
/*< private >*/
gpointer _gst_reserved[GST_PADDING];
}; };
/* normal GObject stuff */ /* normal GObject stuff */

View file

@ -72,6 +72,8 @@ struct _GstValidatePipelineMonitor {
GList *streams_selected; GList *streams_selected;
gulong deep_notify_id; gulong deep_notify_id;
gpointer _gst_reserved[GST_PADDING];
}; };
/** /**
@ -82,6 +84,9 @@ struct _GstValidatePipelineMonitor {
*/ */
struct _GstValidatePipelineMonitorClass { struct _GstValidatePipelineMonitorClass {
GstValidateBinMonitorClass parent_class; GstValidateBinMonitorClass parent_class;
/*< private >*/
gpointer _gst_reserved[GST_PADDING];
}; };
/* normal GObject stuff */ /* normal GObject stuff */

View file

@ -235,7 +235,7 @@ struct _GstValidateReport {
gchar *trace; gchar *trace;
gchar *dotfile_name; gchar *dotfile_name;
gpointer _gst_reserved[GST_PADDING - 2]; gpointer _gst_reserved[GST_PADDING];
}; };
GST_VALIDATE_API GST_VALIDATE_API

View file

@ -99,7 +99,9 @@ typedef enum
} GstValidateInterceptionReturn; } GstValidateInterceptionReturn;
/** /**
* GstValidateReporter: * GstValidateReporterInterface:
* @parent: parent interface type.
*
*/ */
struct _GstValidateReporterInterface struct _GstValidateReporterInterface
{ {
@ -109,6 +111,9 @@ struct _GstValidateReporterInterface
GstValidateReport * report); GstValidateReport * report);
GstValidateReportingDetails (*get_reporting_level) (GstValidateReporter * reporter); GstValidateReportingDetails (*get_reporting_level) (GstValidateReporter * reporter);
GstPipeline * (*get_pipeline) (GstValidateReporter *reporter); GstPipeline * (*get_pipeline) (GstValidateReporter *reporter);
/*< private >*/
gpointer _gst_reserved[GST_PADDING];
}; };
GST_VALIDATE_API GST_VALIDATE_API

View file

@ -60,6 +60,8 @@ struct _GstValidateRunner {
/* <private> */ /* <private> */
GstValidateRunnerPrivate *priv; GstValidateRunnerPrivate *priv;
gpointer _gst_reserved[GST_PADDING];
}; };
/** /**
@ -70,6 +72,9 @@ struct _GstValidateRunner {
*/ */
struct _GstValidateRunnerClass { struct _GstValidateRunnerClass {
GstTracerClass parent_class; GstTracerClass parent_class;
/*< private >*/
gpointer _gst_reserved[GST_PADDING];
}; };
/* normal GObject stuff */ /* normal GObject stuff */

View file

@ -112,11 +112,11 @@ typedef GstValidateExecuteActionReturn (*GstValidatePrepareAction) (GstValidateA
typedef struct _GstValidateActionPrivate GstValidateActionPrivate; typedef struct _GstValidateActionPrivate GstValidateActionPrivate;
#define GST_VALIDATE_ACTION_LINENO(action) (((GstValidateAction*) action)->ABI.abi.lineno) #define GST_VALIDATE_ACTION_LINENO(action) (((GstValidateAction*) action)->lineno)
#define GST_VALIDATE_ACTION_FILENAME(action) (((GstValidateAction*) action)->ABI.abi.filename) #define GST_VALIDATE_ACTION_FILENAME(action) (((GstValidateAction*) action)->filename)
#define GST_VALIDATE_ACTION_DEBUG(action) (((GstValidateAction*) action)->ABI.abi.debug) #define GST_VALIDATE_ACTION_DEBUG(action) (((GstValidateAction*) action)->debug)
#define GST_VALIDATE_ACTION_N_REPEATS(action) (((GstValidateAction*) action)->ABI.abi.n_repeats) #define GST_VALIDATE_ACTION_N_REPEATS(action) (((GstValidateAction*) action)->n_repeats)
#define GST_VALIDATE_ACTION_RANGE_NAME(action) (((GstValidateAction*) action)->ABI.abi.rangename) #define GST_VALIDATE_ACTION_RANGE_NAME(action) (((GstValidateAction*) action)->rangename)
/** /**
* GstValidateAction: * GstValidateAction:
@ -148,18 +148,15 @@ struct _GstValidateAction
gint repeat; gint repeat;
GstClockTime playback_time; GstClockTime playback_time;
GstValidateActionPrivate *priv;
union {
gpointer _gst_reserved[GST_PADDING_LARGE - 1]; /* ->priv */
struct {
gint lineno; gint lineno;
gchar *filename; gchar *filename;
gchar *debug; gchar *debug;
gint n_repeats; gint n_repeats;
const gchar *rangename; const gchar *rangename;
} abi;
} ABI; GstValidateActionPrivate *priv;
gpointer _gst_reserved[GST_PADDING];
}; };
GST_VALIDATE_API GST_VALIDATE_API
@ -336,12 +333,9 @@ struct _GstValidateScenario
/*< private >*/ /*< private >*/
GstValidateScenarioPrivate *priv; GstValidateScenarioPrivate *priv;
union {
gpointer _gst_reserved[GST_PADDING];
struct {
GMutex eos_handling_lock; GMutex eos_handling_lock;
} abi;
} ABI; gpointer _gst_reserved[GST_PADDING];
}; };
/* Some actions may trigger EOS during their execution. Unlocked this /* Some actions may trigger EOS during their execution. Unlocked this
@ -352,8 +346,8 @@ struct _GstValidateScenario
* lock. Actions expecting to cause an EOS can hold the lock for their * lock. Actions expecting to cause an EOS can hold the lock for their
* duration so that they are guaranteed to finish before the EOS * duration so that they are guaranteed to finish before the EOS
* terminates the test. */ * terminates the test. */
#define GST_VALIDATE_SCENARIO_EOS_HANDLING_LOCK(scenario) (g_mutex_lock(&(scenario)->ABI.abi.eos_handling_lock)) #define GST_VALIDATE_SCENARIO_EOS_HANDLING_LOCK(scenario) (g_mutex_lock(&(scenario)->eos_handling_lock))
#define GST_VALIDATE_SCENARIO_EOS_HANDLING_UNLOCK(scenario) (g_mutex_unlock(&(scenario)->ABI.abi.eos_handling_lock)) #define GST_VALIDATE_SCENARIO_EOS_HANDLING_UNLOCK(scenario) (g_mutex_unlock(&(scenario)->eos_handling_lock))
GST_VALIDATE_API GST_VALIDATE_API
GType gst_validate_scenario_get_type (void); GType gst_validate_scenario_get_type (void);

View file

@ -22,6 +22,8 @@
#include "media-descriptor-parser.h" #include "media-descriptor-parser.h"
#include <string.h> #include <string.h>
#include "gst-validate-internal.h"
struct _GstValidateMediaDescriptorParserPrivate struct _GstValidateMediaDescriptorParserPrivate
{ {
gchar *xmlpath; gchar *xmlpath;

View file

@ -49,12 +49,18 @@ typedef struct {
GstValidateMediaDescriptorParserPrivate *priv; GstValidateMediaDescriptorParserPrivate *priv;
/*< private >*/
gpointer _gst_reserved[GST_PADDING];
} GstValidateMediaDescriptorParser; } GstValidateMediaDescriptorParser;
typedef struct { typedef struct {
GstValidateMediaDescriptorClass parent; GstValidateMediaDescriptorClass parent;
/*< private >*/
gpointer _gst_reserved[GST_PADDING];
} GstValidateMediaDescriptorParserClass; } GstValidateMediaDescriptorParserClass;
GST_VALIDATE_API GST_VALIDATE_API

View file

@ -23,6 +23,8 @@
#include "media-descriptor-writer.h" #include "media-descriptor-writer.h"
#include <string.h> #include <string.h>
#include "gst-validate-internal.h"
struct _GstValidateMediaDescriptorWriterPrivate struct _GstValidateMediaDescriptorWriterPrivate
{ {
GstElement *pipeline; GstElement *pipeline;

View file

@ -50,12 +50,18 @@ typedef struct {
GstValidateMediaDescriptorWriterPrivate *priv; GstValidateMediaDescriptorWriterPrivate *priv;
/*< private >*/
gpointer _gst_reserved[GST_PADDING];
} GstValidateMediaDescriptorWriter; } GstValidateMediaDescriptorWriter;
typedef struct { typedef struct {
GstValidateMediaDescriptorClass parent; GstValidateMediaDescriptorClass parent;
/*< private >*/
gpointer _gst_reserved[GST_PADDING];
} GstValidateMediaDescriptorWriterClass; } GstValidateMediaDescriptorWriterClass;
/** /**

View file

@ -23,6 +23,8 @@
#include <string.h> #include <string.h>
#include "media-descriptor.h" #include "media-descriptor.h"
#include "gst-validate-internal.h"
struct _GstValidateMediaDescriptorPrivate struct _GstValidateMediaDescriptorPrivate
{ {
gpointer dummy; gpointer dummy;

View file

@ -33,101 +33,8 @@ G_BEGIN_DECLS
#define GST_VALIDATE_UNKNOWN_BOOL - 1 #define GST_VALIDATE_UNKNOWN_BOOL - 1
typedef struct typedef struct _GstValidateMediaFileNode GstValidateMediaFileNode;
{ typedef struct _GstValidateMediaTagNode GstValidateMediaTagNode;
/* Children */
/* GstValidateMediaTagNode */
GList *tags;
gchar *str_open;
gchar *str_close;
} GstValidateMediaTagsNode;
/* Parsing structures */
typedef struct
{
/* Children */
/* GstValidateMediaStreamNode */
GList *streams;
/* GstValidateMediaTagsNode */
GstValidateMediaTagsNode *tags;
/* attributes */
guint64 id;
gchar *uri;
GstClockTime duration;
gboolean frame_detection;
gboolean skip_parsers;
gboolean seekable;
GstCaps *caps;
gchar *str_open;
gchar *str_close;
} GstValidateMediaFileNode;
typedef struct
{
/* Children */
GstTagList *taglist;
/* Testing infos */
gboolean found;
gchar *str_open;
gchar *str_close;
} GstValidateMediaTagNode;
typedef struct
{
/* Children */
/* GstValidateMediaFrameNode */
GList *frames;
/* GstValidateMediaTagsNode */
GstValidateMediaTagsNode *tags;
/* Attributes */
GstCaps *caps;
GList * segments;
gchar *id;
gchar *padname;
/* Testing infos */
GstPad *pad;
GList *cframe;
gchar *str_open;
gchar *str_close;
} GstValidateMediaStreamNode;
typedef struct
{
/* Attributes */
guint64 id;
guint64 offset;
guint64 offset_end;
GstClockTime duration;
GstClockTime pts, dts;
GstClockTime running_time;
gboolean is_keyframe;
GstBuffer *buf;
gchar *checksum;
gchar *str_open;
gchar *str_close;
} GstValidateMediaFrameNode;
typedef struct
{
gint next_frame_id;
GstSegment segment;
gchar *str_open;
gchar *str_close;
} GstValidateSegmentNode;
GST_VALIDATE_API GST_VALIDATE_API
void gst_validate_filenode_free (GstValidateMediaFileNode * void gst_validate_filenode_free (GstValidateMediaFileNode *
@ -163,13 +70,19 @@ typedef struct
GMutex lock; GMutex lock;
/*< private >*/
GstValidateMediaDescriptorPrivate *priv; GstValidateMediaDescriptorPrivate *priv;
gpointer _gst_reserved[GST_PADDING];
} GstValidateMediaDescriptor; } GstValidateMediaDescriptor;
typedef struct typedef struct
{ {
GstObjectClass parent; GstObjectClass parent;
/*< private >*/
gpointer _gst_reserved[GST_PADDING];
} GstValidateMediaDescriptorClass; } GstValidateMediaDescriptorClass;
GST_VALIDATE_API GST_VALIDATE_API