static void dump_section (GstMpegTsSection * section) { switch (GST_MPEGTS_SECTION_TYPE (section)) { case GST_MPEGTS_SECTION_PAT: dump_pat (section); break; case GST_MPEGTS_SECTION_PMT: dump_pmt (section); break; case GST_MPEGTS_SECTION_TDT: dump_tdt (section); break; case GST_MPEGTS_SECTION_TOT: dump_tot (section); break; case GST_MPEGTS_SECTION_SDT: dump_sdt (section); break; case GST_MPEGTS_SECTION_NIT: dump_nit (section); break; case GST_MPEGTS_SECTION_BAT: dump_bat (section); break; case GST_MPEGTS_SECTION_EIT: dump_eit (section); break; default: g_printf (" Unknown section type\n"); break; } }
static void dvb_base_bin_handle_message (GstBin * bin, GstMessage * message) { DvbBaseBin *dvbbasebin; dvbbasebin = GST_DVB_BASE_BIN (bin); /* note: message->src might be a GstPad, so use element cast w/o typecheck */ if (GST_ELEMENT_CAST (message->src) == dvbbasebin->tsparse) { GstMpegtsSection *section = gst_message_parse_mpegts_section (message); if (section) { switch (GST_MPEGTS_SECTION_TYPE (section)) { case GST_MPEGTS_SECTION_PAT: dvb_base_bin_pat_info_cb (dvbbasebin, section); break; case GST_MPEGTS_SECTION_PMT: dvb_base_bin_pmt_info_cb (dvbbasebin, section); break; default: break; } gst_mpegts_section_unref (section); } } /* chain up */ GST_BIN_CLASS (parent_class)->handle_message (bin, message); }
void parse_sdt (GstMpegtsSection * section, void* data) { ATS_METADATA* metadata; metadata = (ATS_METADATA*)data; g_type_class_ref (GST_TYPE_MPEGTS_SECTION_TYPE); g_type_class_ref (GST_TYPE_MPEGTS_SECTION_TABLE_ID); g_type_class_ref (GST_TYPE_MPEGTS_RUNNING_STATUS); g_type_class_ref (GST_TYPE_MPEGTS_DESCRIPTOR_TYPE); g_type_class_ref (GST_TYPE_MPEGTS_DVB_DESCRIPTOR_TYPE); g_type_class_ref (GST_TYPE_MPEGTS_ATSC_DESCRIPTOR_TYPE); g_type_class_ref (GST_TYPE_MPEGTS_ISDB_DESCRIPTOR_TYPE); g_type_class_ref (GST_TYPE_MPEGTS_MISC_DESCRIPTOR_TYPE); g_type_class_ref (GST_TYPE_MPEGTS_ISO639_AUDIO_TYPE); g_type_class_ref (GST_TYPE_MPEGTS_DVB_SERVICE_TYPE); g_type_class_ref (GST_TYPE_MPEGTS_DVB_TELETEXT_TYPE); g_type_class_ref (GST_TYPE_MPEGTS_STREAM_TYPE); g_type_class_ref (GST_TYPE_MPEGTS_SECTION_DVB_TABLE_ID); g_type_class_ref (GST_TYPE_MPEGTS_SECTION_ATSC_TABLE_ID); g_type_class_ref (GST_TYPE_MPEGTS_SECTION_SCTE_TABLE_ID); g_type_class_ref (GST_TYPE_MPEGTS_MODULATION_TYPE); g_type_class_ref (GST_TYPE_MPEGTS_DVB_CODE_RATE); g_type_class_ref (GST_TYPE_MPEGTS_CABLE_OUTER_FEC_SCHEME); g_type_class_ref (GST_TYPE_MPEGTS_TERRESTRIAL_TRANSMISSION_MODE); g_type_class_ref (GST_TYPE_MPEGTS_TERRESTRIAL_GUARD_INTERVAL); g_type_class_ref (GST_TYPE_MPEGTS_TERRESTRIAL_HIERARCHY); g_type_class_ref (GST_TYPE_MPEGTS_DVB_LINKAGE_TYPE); g_type_class_ref (GST_TYPE_MPEGTS_DVB_LINKAGE_HAND_OVER_TYPE); g_type_class_ref (GST_TYPE_MPEGTS_COMPONENT_STREAM_CONTENT); g_type_class_ref (GST_TYPE_MPEGTS_CONTENT_NIBBLE_HI); if (GST_MPEGTS_SECTION_TYPE (section) == GST_MPEGTS_SECTION_SDT) dump_sdt (section, metadata); }