diff --git a/gst-libs/gst/mpegts/gst-dvb-descriptor.c b/gst-libs/gst/mpegts/gst-dvb-descriptor.c index 81c85221b0..bb016e2fd9 100644 --- a/gst-libs/gst/mpegts/gst-dvb-descriptor.c +++ b/gst-libs/gst/mpegts/gst-dvb-descriptor.c @@ -1282,12 +1282,29 @@ gst_mpegts_descriptor_parse_dvb_ca_identifier (const GstMpegtsDescriptor * } /* GST_MTS_DESC_DVB_CONTENT (0x54) */ + +static GstMpegtsContent * +_gst_mpegts_content_copy (GstMpegtsContent * source) +{ + GstMpegtsContent *copy; + + copy = g_slice_dup (GstMpegtsContent, source); + + return copy; +} + static void _gst_mpegts_content_free (GstMpegtsContent * content) { g_slice_free (GstMpegtsContent, content); } +G_DEFINE_BOXED_TYPE (GstMpegtsContent, + gst_mpegts_content, + (GBoxedCopyFunc) _gst_mpegts_content_copy, + (GFreeFunc) _gst_mpegts_content_free); + + /** * gst_mpegts_descriptor_parse_dvb_content: * @descriptor: a %GST_MTS_DESC_DVB_CONTENT #GstMpegtsDescriptor diff --git a/gst-libs/gst/mpegts/gst-dvb-descriptor.h b/gst-libs/gst/mpegts/gst-dvb-descriptor.h index 8b87a1d470..5d1f5f9bb5 100644 --- a/gst-libs/gst/mpegts/gst-dvb-descriptor.h +++ b/gst-libs/gst/mpegts/gst-dvb-descriptor.h @@ -612,10 +612,16 @@ struct _GstMpegtsContent guint8 user_byte; }; +#define GST_TYPE_MPEGTS_CONTENT (gst_mpegts_content_get_type ()) + +GST_MPEGTS_API +GType gst_mpegts_content_get_type (void); + GST_MPEGTS_API gboolean gst_mpegts_descriptor_parse_dvb_content (const GstMpegtsDescriptor * descriptor, GPtrArray ** content); + /* GST_MTS_DESC_DVB_PARENTAL_RATING (0x55) */ typedef struct _GstMpegtsDVBParentalRatingItem GstMpegtsDVBParentalRatingItem;