mpegts: Unify API : GstMpegts / gst_mpegts_ / GST_*_MPEGTS_

It was previously a mix and match of both variants, introducing just too much
confusion.

The prefix are from now on:
* GstMpegts for structures and type names (and not GstMpegTs)
* gst_mpegts_ for functions (and not gst_mpeg_ts_)
* GST_MPEGTS_ for enums/flags (and not GST_MPEG_TS_)
* GST_TYPE_MPEGTS_ for types (and not GST_TYPE_MPEG_TS_)

The rationale for chosing that is:
* the namespace is shorter/direct (it's mpegts, not mpeg_ts nor mpeg-ts)
* the namespace is one word under Gst
* it's shorter (yah)
This commit is contained in:
Edward Hervey 2014-06-25 14:50:05 +02:00
parent cddabd751c
commit 22dfd9aef3
37 changed files with 1552 additions and 1552 deletions

View file

@ -184,101 +184,101 @@ gst_mpegts_initialize
<SECTION>
<FILE>gstmpegtsdescriptor</FILE>
<SUBSECTION Common>
GstMpegTsDescriptor
GstMpegTsDescriptorType
GstMpegTsMiscDescriptorType
GstMpegtsDescriptor
GstMpegtsDescriptorType
GstMpegtsMiscDescriptorType
gst_mpegts_find_descriptor
gst_mpegts_parse_descriptors
gst_mpegts_descriptor_from_custom
<SUBSECTION registration>
gst_mpegts_descriptor_from_registration
<SUBSECTION iso639>
GstMpegTsISO639LanguageDescriptor
GstMpegTsIso639AudioType
GstMpegtsISO639LanguageDescriptor
GstMpegtsIso639AudioType
gst_mpegts_descriptor_parse_iso_639_language
gst_mpegts_descriptor_parse_iso_639_language_idx
gst_mpegts_descriptor_parse_iso_639_language_nb
gst_mpegts_iso_639_language_descriptor_free
<SUBSECTION logical_channel>
GstMpegTsLogicalChannel
GstMpegTsLogicalChannelDescriptor
GstMpegtsLogicalChannel
GstMpegtsLogicalChannelDescriptor
gst_mpegts_descriptor_parse_logical_channel
<SUBSECTION Standard>
GST_TYPE_MPEG_TS_DVB_CODE_RATE
GST_TYPE_MPEG_TS_CABLE_OUTER_FEC_SCHEME
GST_TYPE_MPEG_TS_MODULATION_TYPE
GST_TYPE_MPEG_TS_SATELLITE_POLARIZATION_TYPE
GST_TYPE_MPEG_TS_SATELLITE_ROLLOFF
GST_TYPE_MPEGTS_DVB_CODE_RATE
GST_TYPE_MPEGTS_CABLE_OUTER_FEC_SCHEME
GST_TYPE_MPEGTS_MODULATION_TYPE
GST_TYPE_MPEGTS_SATELLITE_POLARIZATION_TYPE
GST_TYPE_MPEGTS_SATELLITE_ROLLOFF
GST_TYPE_MPEGTS_ISO_639_LANGUAGE
GST_TYPE_MPEGTS_DESCRIPTOR
GST_TYPE_MPEG_TS_DVB_SERVICE_TYPE
GST_TYPE_MPEG_TS_DESCRIPTOR_TYPE
GST_TYPE_MPEG_TS_ISO639_AUDIO_TYPE
GST_TYPE_MPEG_TS_ATSC_DESCRIPTOR_TYPE
GST_TYPE_MPEG_TS_DVB_DESCRIPTOR_TYPE
GST_TYPE_MPEG_TS_ISDB_DESCRIPTOR_TYPE
GST_TYPE_MPEG_TS_MISC_DESCRIPTOR_TYPE
GST_TYPE_MPEGTS_DVB_SERVICE_TYPE
GST_TYPE_MPEGTS_DESCRIPTOR_TYPE
GST_TYPE_MPEGTS_ISO639_AUDIO_TYPE
GST_TYPE_MPEGTS_ATSC_DESCRIPTOR_TYPE
GST_TYPE_MPEGTS_DVB_DESCRIPTOR_TYPE
GST_TYPE_MPEGTS_ISDB_DESCRIPTOR_TYPE
GST_TYPE_MPEGTS_MISC_DESCRIPTOR_TYPE
gst_mpegts_descriptor_get_type
gst_mpegts_iso_639_language_get_type
gst_mpeg_ts_cable_outer_fec_scheme_get_type
gst_mpeg_ts_modulation_type_get_type
gst_mpeg_ts_satellite_polarization_type_get_type
gst_mpeg_ts_satellite_rolloff_get_type
gst_mpeg_ts_dvb_code_rate_get_type
gst_mpeg_ts_descriptor_type_get_type
gst_mpeg_ts_atsc_descriptor_type_get_type
gst_mpeg_ts_dvb_descriptor_type_get_type
gst_mpeg_ts_isdb_descriptor_type_get_type
gst_mpeg_ts_misc_descriptor_type_get_type
gst_mpeg_ts_iso639_audio_type_get_type
gst_mpeg_ts_dvb_service_type_get_type
gst_mpegts_cable_outer_fec_scheme_get_type
gst_mpegts_modulation_type_get_type
gst_mpegts_satellite_polarization_type_get_type
gst_mpegts_satellite_rolloff_get_type
gst_mpegts_dvb_code_rate_get_type
gst_mpegts_descriptor_type_get_type
gst_mpegts_atsc_descriptor_type_get_type
gst_mpegts_dvb_descriptor_type_get_type
gst_mpegts_isdb_descriptor_type_get_type
gst_mpegts_misc_descriptor_type_get_type
gst_mpegts_iso639_audio_type_get_type
gst_mpegts_dvb_service_type_get_type
</SECTION>
<SECTION>
<FILE>gst-atsc-descriptor</FILE>
GstMpegTsATSCDescriptorType
GstMpegtsATSCDescriptorType
<SUBSECTION Standard>
GST_TYPE_MPEG_TS_ATSC_DESCRIPTOR_TYPE
gst_mpeg_ts_atsc_descriptor_type_get_type
GST_TYPE_MPEGTS_ATSC_DESCRIPTOR_TYPE
gst_mpegts_atsc_descriptor_type_get_type
</SECTION>
<SECTION>
<FILE>gst-dvb-descriptor</FILE>
GstMpegTsDVBDescriptorType
GstMpegTsDVBExtendedDescriptorType
GstMpegtsDVBDescriptorType
GstMpegtsDVBExtendedDescriptorType
<SUBSECTION content>
GstMpegTsContent
GstMpegtsContent
gst_mpegts_descriptor_parse_dvb_content
<SUBSECTION component>
GstMpegTsComponentDescriptor
GstMpegtsComponentDescriptor
gst_mpegts_descriptor_parse_dvb_component
<SUBSECTION extended_event>
GstMpegTsExtendedEventItem
GstMpegTsExtendedEventDescriptor
GstMpegtsExtendedEventItem
GstMpegtsExtendedEventDescriptor
gst_mpegts_descriptor_parse_dvb_extended_event
<SUBSECTION satellite_delivery>
GstMpegTsSatelliteDeliverySystemDescriptor
GstMpegTsDVBCodeRate
GstMpegTsModulationType
GstMpegTsSatellitePolarizationType
GstMpegTsSatelliteRolloff
GstMpegtsSatelliteDeliverySystemDescriptor
GstMpegtsDVBCodeRate
GstMpegtsModulationType
GstMpegtsSatellitePolarizationType
GstMpegtsSatelliteRolloff
gst_mpegts_descriptor_parse_satellite_delivery_system
<SUBSECTION cable_delivery>
GstMpegTsCableDeliverySystemDescriptor
GstMpegTsCableOuterFECScheme
GstMpegtsCableDeliverySystemDescriptor
GstMpegtsCableOuterFECScheme
gst_mpegts_descriptor_parse_cable_delivery_system
<SUBSECTION terrestrial_delivery>
GstMpegTsTerrestrialDeliverySystemDescriptor
GstMpegTsTerrestrialTransmissionMode
GstMpegTsTerrestrialGuardInterval
GstMpegTsTerrestrialHierarchy
GstMpegTsModulationType
GstMpegTsDVBCodeRate
GstMpegtsTerrestrialDeliverySystemDescriptor
GstMpegtsTerrestrialTransmissionMode
GstMpegtsTerrestrialGuardInterval
GstMpegtsTerrestrialHierarchy
GstMpegtsModulationType
GstMpegtsDVBCodeRate
gst_mpegts_descriptor_parse_terrestrial_delivery_system
<SUBSECTION t2_delivery>
GstMpegTsT2DeliverySystemCellExtension
GstMpegTsT2DeliverySystemCell
GstMpegTsT2DeliverySystemDescriptor
GstMpegtsT2DeliverySystemCellExtension
GstMpegtsT2DeliverySystemCell
GstMpegtsT2DeliverySystemDescriptor
gst_mpegts_descriptor_parse_dvb_t2_delivery_system
<SUBSECTION short_event>
gst_mpegts_descriptor_parse_dvb_short_event
@ -286,11 +286,11 @@ gst_mpegts_descriptor_parse_dvb_short_event
gst_mpegts_descriptor_parse_dvb_network_name
gst_mpegts_descriptor_from_dvb_network_name
<SUBSECTION service>
GstMpegTsDVBServiceType
GstMpegtsDVBServiceType
gst_mpegts_descriptor_parse_dvb_service
gst_mpegts_descriptor_from_dvb_service
<SUBSECTION teletext>
GstMpegTsDVBTeletextType
GstMpegtsDVBTeletextType
gst_mpegts_descriptor_parse_dvb_teletext_idx
gst_mpegts_descriptor_parse_dvb_teletext_nb
<SUBSECTION subtitling>
@ -298,53 +298,53 @@ gst_mpegts_descriptor_parse_dvb_subtitling_idx
gst_mpegts_descriptor_parse_dvb_subtitling_nb
gst_mpegts_descriptor_from_dvb_subtitling
<SUBSECTION linkage>
GstMpegTsDVBLinkageType
GstMpegTsDVBLinkageHandOverType
GstMpegTsDVBLinkageMobileHandOver
GstMpegTsDVBLinkageEvent
GstMpegTsDVBLinkageExtendedEvent
GstMpegTsDVBLinkageDescriptor
GstMpegtsDVBLinkageType
GstMpegtsDVBLinkageHandOverType
GstMpegtsDVBLinkageMobileHandOver
GstMpegtsDVBLinkageEvent
GstMpegtsDVBLinkageExtendedEvent
GstMpegtsDVBLinkageDescriptor
gst_mpegts_descriptor_parse_dvb_linkage
<SUBSECTION private_data_specifier>
gst_mpegts_descriptor_parse_dvb_private_data_specifier
<SUBSECTION frequency_list>
gst_mpegts_descriptor_parse_dvb_frequency_list
<SUBSECTION data_broadcast>
GstMpegTsDataBroadcastDescriptor
GstMpegtsDataBroadcastDescriptor
gst_mpegts_descriptor_parse_dvb_data_broadcast
<SUBSECTION scrambling>
GstMpegTsDVBScramblingModeType
GstMpegtsDVBScramblingModeType
gst_mpegts_descriptor_parse_dvb_scrambling
<SUBSECTION data_broadcast_id>
gst_mpegts_descriptor_parse_dvb_data_broadcast_id
<SUBSECTION parental_rating>
GstMpegTsDVBParentalRatingItem
GstMpegtsDVBParentalRatingItem
gst_mpegts_descriptor_parse_dvb_parental_rating
<SUBSECTION stream_identifier>
gst_mpegts_descriptor_parse_dvb_stream_identifier
<SUBSECTION ca_identifier>
gst_mpegts_descriptor_parse_dvb_ca_identifier
<SUBSECTION service_list>
GstMpegTsDVBServiceListItem
GstMpegtsDVBServiceListItem
gst_mpegts_descriptor_parse_dvb_service_list
<SUBSECTION stuffing>
gst_mpegts_descriptor_parse_dvb_stuffing
<SUBSECTION bouquet_name>
gst_mpegts_descriptor_parse_dvb_bouquet_name
<SUBSECTION multilingual_network_name>
GstMpegTsDvbMultilingualNetworkNameItem
GstMpegtsDvbMultilingualNetworkNameItem
gst_mpegts_descriptor_parse_dvb_multilingual_network_name
<SUBSECTION multilingual_bouquet_name>
GstMpegTsDvbMultilingualBouquetNameItem
GstMpegtsDvbMultilingualBouquetNameItem
gst_mpegts_descriptor_parse_dvb_multilingual_bouquet_name
<SUBSECTION multilingual_service_name>
GstMpegTsDvbMultilingualServiceNameItem
GstMpegtsDvbMultilingualServiceNameItem
gst_mpegts_descriptor_parse_dvb_multilingual_service_name
<SUBSECTION multilingual_component>
GstMpegTsDvbMultilingualComponentItem
GstMpegtsDvbMultilingualComponentItem
gst_mpegts_descriptor_parse_dvb_multilingual_component
<SUBSECTION Standard>
GST_TYPE_MPEG_TS_DVB_CODE_RATE
GST_TYPE_MPEGTS_DVB_CODE_RATE
GST_TYPE_MPEGTS_COMPONENT_DESCRIPTOR
GST_TYPE_MPEGTS_DVB_DATA_BROADCAST_DESCRIPTOR
GST_TYPE_MPEGTS_DVB_LINKAGE_DESCRIPTOR
@ -360,19 +360,19 @@ gst_mpegts_t2_delivery_system_descriptor_get_type
<SECTION>
<FILE>gst-isdb-descriptor</FILE>
GstMpegTsISDBDescriptorType
GstMpegtsISDBDescriptorType
<SUBSECTION Standard>
GST_TYPE_MPEG_TS_ISDB_DESCRIPTOR_TYPE
gst_mpeg_ts_isdb_descriptor_type_get_type
GST_TYPE_MPEGTS_ISDB_DESCRIPTOR_TYPE
gst_mpegts_isdb_descriptor_type_get_type
</SECTION>
<SECTION>
<FILE>gstmpegtssection</FILE>
<SUBSECTION section>
GST_MPEGTS_SECTION_TYPE
GstMpegTsSection
GstMpegTsSectionTableID
GstMpegTsSectionType
GstMpegtsSection
GstMpegtsSectionTableID
GstMpegtsSectionType
gst_message_new_mpegts_section
gst_message_parse_mpegts_section
gst_mpegts_section_send_event
@ -382,15 +382,15 @@ gst_mpegts_section_new
gst_mpegts_section_ref
gst_mpegts_section_unref
<SUBSECTION PAT>
GstMpegTsPatProgram
GstMpegtsPatProgram
gst_mpegts_section_get_pat
gst_mpegts_pat_new
gst_mpegts_pat_program_new
gst_mpegts_section_from_pat
<SUBSECTION PMT>
GstMpegTsPMT
GstMpegTsPMTStream
GstMpegTsStreamType
GstMpegtsPMT
GstMpegtsPMTStream
GstMpegtsStreamType
gst_mpegts_section_get_pmt
gst_mpegts_pmt_new
gst_mpegts_pmt_stream_new
@ -400,41 +400,41 @@ gst_mpegts_section_get_tsdt
<SUBSECTION CAT>
gst_mpegts_section_get_cat
<SUBSECTION Standard>
GST_TYPE_MPEG_TS_SECTION_TABLE_ID
GST_TYPE_MPEG_TS_SECTION_TYPE
GST_TYPE_MPEG_TS_SECTION_DVB_TABLE_ID
GST_TYPE_MPEGTS_SECTION_TABLE_ID
GST_TYPE_MPEGTS_SECTION_TYPE
GST_TYPE_MPEGTS_SECTION_DVB_TABLE_ID
GST_MPEGTS_SECTION
GST_TYPE_MPEG_TS_STREAM_TYPE
GST_TYPE_MPEGTS_STREAM_TYPE
GST_TYPE_MPEGTS_PMT
GST_TYPE_MPEGTS_PMT_STREAM
GST_TYPE_MPEGTS_SECTION
gst_mpeg_ts_section_table_id_get_type
gst_mpeg_ts_section_type_get_type
gst_mpegts_section_table_id_get_type
gst_mpegts_section_type_get_type
gst_mpegts_pmt_get_type
gst_mpegts_pmt_stream_get_type
gst_mpegts_section_get_type
gst_mpeg_ts_stream_type_get_type
gst_mpegts_stream_type_get_type
</SECTION>
<SECTION>
<FILE>gst-atsc-section</FILE>
GstMpegTsSectionATSCTableID
GstMpegTsAtscVCTSource
GstMpegTsAtscVCT
GstMpegtsSectionATSCTableID
GstMpegtsAtscVCTSource
GstMpegtsAtscVCT
gst_mpegts_section_get_atsc_tvct
gst_mpegts_section_get_atsc_cvct
GstMpegTsAtscMGTTableType
GstMpegTsAtscMGTTable
GstMpegTsAtscMGT
GstMpegtsAtscMGTTableType
GstMpegtsAtscMGTTable
GstMpegtsAtscMGT
gst_mpegts_section_get_atsc_mgt
gst_mpegts_atsc_string_segment_get_string
GstMpegTsAtscMultString
GstMpegTsAtscEITEvent
GstMpegTsAtscEIT
GstMpegtsAtscMultString
GstMpegtsAtscEITEvent
GstMpegtsAtscEIT
gst_mpegts_section_get_atsc_eit
GstMpegTsAtscETT
GstMpegtsAtscETT
gst_mpegts_section_get_atsc_ett
GstMpegTsAtscSTT
GstMpegtsAtscSTT
gst_mpegts_section_get_atsc_stt
gst_mpegts_atsc_stt_get_datetime_utc
<SUBSECTION Standard>
@ -448,7 +448,7 @@ GST_TYPE_MPEGTS_ATSC_STRING_SEGMENT
GST_TYPE_MPEGTS_ATSC_STT
GST_TYPE_MPEGTS_ATSC_VCT
GST_TYPE_MPEGTS_ATSC_VCT_SOURCE
GstMpegTsAtscStringSegment
GstMpegtsAtscStringSegment
gst_mpegts_atsc_eit_event_get_type
gst_mpegts_atsc_eit_get_type
gst_mpegts_atsc_ett_get_type
@ -463,34 +463,34 @@ gst_mpegts_atsc_vct_source_get_type
<SECTION>
<FILE>gst-dvb-section</FILE>
GstMpegTsSectionDVBTableID
GstMpegtsSectionDVBTableID
<SUBSECTION NIT>
GstMpegTsNIT
GstMpegTsNITStream
GstMpegtsNIT
GstMpegtsNITStream
gst_mpegts_section_get_nit
gst_mpegts_nit_new
gst_mpegts_nit_stream_new
gst_mpegts_section_from_nit
<SUBSECTION BAT>
GstMpegTsBAT
GstMpegTsBATStream
GstMpegtsBAT
GstMpegtsBATStream
gst_mpegts_section_get_bat
<SUBSECTION SDT>
GstMpegTsSDT
GstMpegTsSDTService
GstMpegtsSDT
GstMpegtsSDTService
gst_mpegts_section_get_sdt
gst_mpegts_sdt_new
gst_mpegts_sdt_service_new
gst_mpegts_section_from_sdt
<SUBSECTION EIT>
GstMpegTsEIT
GstMpegTsEITEvent
GstMpegTsRunningStatus
GstMpegtsEIT
GstMpegtsEITEvent
GstMpegtsRunningStatus
gst_mpegts_section_get_eit
<SUBSECTION TDT>
gst_mpegts_section_get_tdt
<SUBSECTION TOT>
GstMpegTsTOT
GstMpegtsTOT
gst_mpegts_section_get_tot
<SUBSECTION Standard>
GST_TYPE_MPEGTS_BAT
@ -502,10 +502,10 @@ GST_TYPE_MPEGTS_NIT_STREAM
GST_TYPE_MPEGTS_SDT
GST_TYPE_MPEGTS_SDT_SERVICE
GST_TYPE_MPEGTS_TOT
GST_TYPE_MPEG_TS_SECTION_DVB_TABLE_ID
GST_TYPE_MPEG_TS_RUNNING_STATUS
gst_mpeg_ts_running_status_get_type
gst_mpeg_ts_section_dvb_table_id_get_type
GST_TYPE_MPEGTS_SECTION_DVB_TABLE_ID
GST_TYPE_MPEGTS_RUNNING_STATUS
gst_mpegts_running_status_get_type
gst_mpegts_section_dvb_table_id_get_type
gst_mpegts_bat_stream_get_type
gst_mpegts_bat_get_type
gst_mpegts_eit_event_get_type

View file

@ -7,20 +7,20 @@
#include <gst/gl/gl.h>
gst_mpegts_section_get_type
gst_mpeg_ts_section_type_get_type
gst_mpeg_ts_section_table_id_get_type
gst_mpegts_section_type_get_type
gst_mpegts_section_table_id_get_type
gst_mpegts_descriptor_get_type
gst_mpeg_ts_cable_outer_fec_scheme_get_type
gst_mpeg_ts_modulation_type_get_type
gst_mpeg_ts_satellite_polarization_type_get_type
gst_mpeg_ts_satellite_rolloff_get_type
gst_mpeg_ts_dvb_code_rate_get_type
gst_mpeg_ts_descriptor_type_get_type
gst_mpeg_ts_iso639_audio_type_get_type
gst_mpeg_ts_running_status_get_type
gst_mpeg_ts_dvb_service_type_get_type
gst_mpeg_ts_stream_type_get_type
gst_mpegts_cable_outer_fec_scheme_get_type
gst_mpegts_modulation_type_get_type
gst_mpegts_satellite_polarization_type_get_type
gst_mpegts_satellite_rolloff_get_type
gst_mpegts_dvb_code_rate_get_type
gst_mpegts_descriptor_type_get_type
gst_mpegts_iso639_audio_type_get_type
gst_mpegts_running_status_get_type
gst_mpegts_dvb_service_type_get_type
gst_mpegts_stream_type_get_type
gst_insert_bin_get_type

View file

@ -67,7 +67,7 @@ GstMpegts-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstmpegts-@GST_API_
GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
$(INTROSPECTION_SCANNER) -v --namespace GstMpegts \
--nsversion=@GST_API_VERSION@ \
--identifier-prefix=GstMpegTs \
--identifier-prefix=GstMpegts \
--symbol-prefix=gst_mpegts \
--symbol-prefix=gst \
--warn-all -v \

View file

@ -35,35 +35,35 @@
*/
/* Terrestrial/Cable Virtual Channel Table TVCT/CVCT */
static GstMpegTsAtscVCTSource *
_gst_mpegts_atsc_vct_source_copy (GstMpegTsAtscVCTSource * source)
static GstMpegtsAtscVCTSource *
_gst_mpegts_atsc_vct_source_copy (GstMpegtsAtscVCTSource * source)
{
GstMpegTsAtscVCTSource *copy;
GstMpegtsAtscVCTSource *copy;
copy = g_slice_dup (GstMpegTsAtscVCTSource, source);
copy = g_slice_dup (GstMpegtsAtscVCTSource, source);
copy->descriptors = g_ptr_array_ref (source->descriptors);
return copy;
}
static void
_gst_mpegts_atsc_vct_source_free (GstMpegTsAtscVCTSource * source)
_gst_mpegts_atsc_vct_source_free (GstMpegtsAtscVCTSource * source)
{
if (source->descriptors)
g_ptr_array_unref (source->descriptors);
g_slice_free (GstMpegTsAtscVCTSource, source);
g_slice_free (GstMpegtsAtscVCTSource, source);
}
G_DEFINE_BOXED_TYPE (GstMpegTsAtscVCTSource, gst_mpegts_atsc_vct_source,
G_DEFINE_BOXED_TYPE (GstMpegtsAtscVCTSource, gst_mpegts_atsc_vct_source,
(GBoxedCopyFunc) _gst_mpegts_atsc_vct_source_copy,
(GFreeFunc) _gst_mpegts_atsc_vct_source_free);
static GstMpegTsAtscVCT *
_gst_mpegts_atsc_vct_copy (GstMpegTsAtscVCT * vct)
static GstMpegtsAtscVCT *
_gst_mpegts_atsc_vct_copy (GstMpegtsAtscVCT * vct)
{
GstMpegTsAtscVCT *copy;
GstMpegtsAtscVCT *copy;
copy = g_slice_dup (GstMpegTsAtscVCT, vct);
copy = g_slice_dup (GstMpegtsAtscVCT, vct);
copy->sources = g_ptr_array_ref (vct->sources);
copy->descriptors = g_ptr_array_ref (vct->descriptors);
@ -71,30 +71,30 @@ _gst_mpegts_atsc_vct_copy (GstMpegTsAtscVCT * vct)
}
static void
_gst_mpegts_atsc_vct_free (GstMpegTsAtscVCT * vct)
_gst_mpegts_atsc_vct_free (GstMpegtsAtscVCT * vct)
{
if (vct->sources)
g_ptr_array_unref (vct->sources);
if (vct->descriptors)
g_ptr_array_unref (vct->descriptors);
g_slice_free (GstMpegTsAtscVCT, vct);
g_slice_free (GstMpegtsAtscVCT, vct);
}
G_DEFINE_BOXED_TYPE (GstMpegTsAtscVCT, gst_mpegts_atsc_vct,
G_DEFINE_BOXED_TYPE (GstMpegtsAtscVCT, gst_mpegts_atsc_vct,
(GBoxedCopyFunc) _gst_mpegts_atsc_vct_copy,
(GFreeFunc) _gst_mpegts_atsc_vct_free);
static gpointer
_parse_atsc_vct (GstMpegTsSection * section)
_parse_atsc_vct (GstMpegtsSection * section)
{
GstMpegTsAtscVCT *vct = NULL;
GstMpegtsAtscVCT *vct = NULL;
guint8 *data, *end, source_nb;
guint32 tmp32;
guint16 descriptors_loop_length, tmp16;
guint i;
GError *err = NULL;
vct = g_slice_new0 (GstMpegTsAtscVCT);
vct = g_slice_new0 (GstMpegtsAtscVCT);
data = section->data;
end = data + section->section_length;
@ -118,14 +118,14 @@ _parse_atsc_vct (GstMpegTsSection * section)
(GDestroyNotify) _gst_mpegts_atsc_vct_source_free);
for (i = 0; i < source_nb; i++) {
GstMpegTsAtscVCTSource *source;
GstMpegtsAtscVCTSource *source;
/* minimum 32 bytes for a entry, 2 bytes second descriptor
loop-length, 4 bytes crc */
if (end - data < 32 + 2 + 4)
goto error;
source = g_slice_new0 (GstMpegTsAtscVCTSource);
source = g_slice_new0 (GstMpegtsAtscVCTSource);
g_ptr_array_add (vct->sources, source);
source->short_name =
@ -204,15 +204,15 @@ error:
/**
* gst_mpegts_section_get_atsc_tvct:
* @section: a #GstMpegTsSection of type %GST_MPEGTS_SECTION_ATSC_TVCT
* @section: a #GstMpegtsSection of type %GST_MPEGTS_SECTION_ATSC_TVCT
*
* Returns the #GstMpegTsAtscVCT contained in the @section
* Returns the #GstMpegtsAtscVCT contained in the @section
*
* Returns: The #GstMpegTsAtscVCT contained in the section, or %NULL if an error
* Returns: The #GstMpegtsAtscVCT contained in the section, or %NULL if an error
* happened.
*/
const GstMpegTsAtscVCT *
gst_mpegts_section_get_atsc_tvct (GstMpegTsSection * section)
const GstMpegtsAtscVCT *
gst_mpegts_section_get_atsc_tvct (GstMpegtsSection * section)
{
g_return_val_if_fail (section->section_type == GST_MPEGTS_SECTION_ATSC_TVCT,
NULL);
@ -223,20 +223,20 @@ gst_mpegts_section_get_atsc_tvct (GstMpegTsSection * section)
__common_section_checks (section, 16, _parse_atsc_vct,
(GDestroyNotify) _gst_mpegts_atsc_vct_free);
return (const GstMpegTsAtscVCT *) section->cached_parsed;
return (const GstMpegtsAtscVCT *) section->cached_parsed;
}
/**
* gst_mpegts_section_get_atsc_cvct:
* @section: a #GstMpegTsSection of type %GST_MPEGTS_SECTION_ATSC_CVCT
* @section: a #GstMpegtsSection of type %GST_MPEGTS_SECTION_ATSC_CVCT
*
* Returns the #GstMpegTsAtscVCT contained in the @section
* Returns the #GstMpegtsAtscVCT contained in the @section
*
* Returns: The #GstMpegTsAtscVCT contained in the section, or %NULL if an error
* Returns: The #GstMpegtsAtscVCT contained in the section, or %NULL if an error
* happened.
*/
const GstMpegTsAtscVCT *
gst_mpegts_section_get_atsc_cvct (GstMpegTsSection * section)
const GstMpegtsAtscVCT *
gst_mpegts_section_get_atsc_cvct (GstMpegtsSection * section)
{
g_return_val_if_fail (section->section_type == GST_MPEGTS_SECTION_ATSC_CVCT,
NULL);
@ -247,39 +247,39 @@ gst_mpegts_section_get_atsc_cvct (GstMpegTsSection * section)
__common_section_checks (section, 16, _parse_atsc_vct,
(GDestroyNotify) _gst_mpegts_atsc_vct_free);
return (const GstMpegTsAtscVCT *) section->cached_parsed;
return (const GstMpegtsAtscVCT *) section->cached_parsed;
}
/* MGT */
static GstMpegTsAtscMGTTable *
_gst_mpegts_atsc_mgt_table_copy (GstMpegTsAtscMGTTable * mgt_table)
static GstMpegtsAtscMGTTable *
_gst_mpegts_atsc_mgt_table_copy (GstMpegtsAtscMGTTable * mgt_table)
{
GstMpegTsAtscMGTTable *copy;
GstMpegtsAtscMGTTable *copy;
copy = g_slice_dup (GstMpegTsAtscMGTTable, mgt_table);
copy = g_slice_dup (GstMpegtsAtscMGTTable, mgt_table);
copy->descriptors = g_ptr_array_ref (mgt_table->descriptors);
return copy;
}
static void
_gst_mpegts_atsc_mgt_table_free (GstMpegTsAtscMGTTable * mgt_table)
_gst_mpegts_atsc_mgt_table_free (GstMpegtsAtscMGTTable * mgt_table)
{
g_ptr_array_unref (mgt_table->descriptors);
g_slice_free (GstMpegTsAtscMGTTable, mgt_table);
g_slice_free (GstMpegtsAtscMGTTable, mgt_table);
}
G_DEFINE_BOXED_TYPE (GstMpegTsAtscMGTTable, gst_mpegts_atsc_mgt_table,
G_DEFINE_BOXED_TYPE (GstMpegtsAtscMGTTable, gst_mpegts_atsc_mgt_table,
(GBoxedCopyFunc) _gst_mpegts_atsc_mgt_table_copy,
(GFreeFunc) _gst_mpegts_atsc_mgt_table_free);
static GstMpegTsAtscMGT *
_gst_mpegts_atsc_mgt_copy (GstMpegTsAtscMGT * mgt)
static GstMpegtsAtscMGT *
_gst_mpegts_atsc_mgt_copy (GstMpegtsAtscMGT * mgt)
{
GstMpegTsAtscMGT *copy;
GstMpegtsAtscMGT *copy;
copy = g_slice_dup (GstMpegTsAtscMGT, mgt);
copy = g_slice_dup (GstMpegtsAtscMGT, mgt);
copy->tables = g_ptr_array_ref (mgt->tables);
copy->descriptors = g_ptr_array_ref (mgt->descriptors);
@ -287,26 +287,26 @@ _gst_mpegts_atsc_mgt_copy (GstMpegTsAtscMGT * mgt)
}
static void
_gst_mpegts_atsc_mgt_free (GstMpegTsAtscMGT * mgt)
_gst_mpegts_atsc_mgt_free (GstMpegtsAtscMGT * mgt)
{
g_ptr_array_unref (mgt->tables);
g_ptr_array_unref (mgt->descriptors);
g_slice_free (GstMpegTsAtscMGT, mgt);
g_slice_free (GstMpegtsAtscMGT, mgt);
}
G_DEFINE_BOXED_TYPE (GstMpegTsAtscMGT, gst_mpegts_atsc_mgt,
G_DEFINE_BOXED_TYPE (GstMpegtsAtscMGT, gst_mpegts_atsc_mgt,
(GBoxedCopyFunc) _gst_mpegts_atsc_mgt_copy,
(GFreeFunc) _gst_mpegts_atsc_mgt_free);
static gpointer
_parse_atsc_mgt (GstMpegTsSection * section)
_parse_atsc_mgt (GstMpegtsSection * section)
{
GstMpegTsAtscMGT *mgt = NULL;
GstMpegtsAtscMGT *mgt = NULL;
guint i = 0;
guint8 *data, *end;
guint16 descriptors_loop_length;
mgt = g_slice_new0 (GstMpegTsAtscMGT);
mgt = g_slice_new0 (GstMpegtsAtscMGT);
data = section->data;
end = data + section->section_length;
@ -321,14 +321,14 @@ _parse_atsc_mgt (GstMpegTsSection * section)
mgt->tables = g_ptr_array_new_full (mgt->tables_defined,
(GDestroyNotify) _gst_mpegts_atsc_mgt_table_free);
for (i = 0; i < mgt->tables_defined && data + 11 < end; i++) {
GstMpegTsAtscMGTTable *mgt_table;
GstMpegtsAtscMGTTable *mgt_table;
if (data + 11 >= end) {
GST_WARNING ("MGT data too short to parse inner table num %d", i);
goto error;
}
mgt_table = g_slice_new0 (GstMpegTsAtscMGTTable);
mgt_table = g_slice_new0 (GstMpegtsAtscMGTTable);
g_ptr_array_add (mgt->tables, mgt_table);
mgt_table->table_type = GST_READ_UINT16_BE (data);
@ -373,15 +373,15 @@ error:
/**
* gst_mpegts_section_get_atsc_mgt:
* @section: a #GstMpegTsSection of type %GST_MPEGTS_SECTION_ATSC_MGT
* @section: a #GstMpegtsSection of type %GST_MPEGTS_SECTION_ATSC_MGT
*
* Returns the #GstMpegTsAtscMGT contained in the @section.
* Returns the #GstMpegtsAtscMGT contained in the @section.
*
* Returns: The #GstMpegTsAtscMGT contained in the section, or %NULL if an error
* Returns: The #GstMpegtsAtscMGT contained in the section, or %NULL if an error
* happened.
*/
const GstMpegTsAtscMGT *
gst_mpegts_section_get_atsc_mgt (GstMpegTsSection * section)
const GstMpegtsAtscMGT *
gst_mpegts_section_get_atsc_mgt (GstMpegtsSection * section)
{
g_return_val_if_fail (section->section_type == GST_MPEGTS_SECTION_ATSC_MGT,
NULL);
@ -392,31 +392,31 @@ gst_mpegts_section_get_atsc_mgt (GstMpegTsSection * section)
__common_section_checks (section, 17, _parse_atsc_mgt,
(GDestroyNotify) _gst_mpegts_atsc_mgt_free);
return (const GstMpegTsAtscMGT *) section->cached_parsed;
return (const GstMpegtsAtscMGT *) section->cached_parsed;
}
/* Multi string structure */
static GstMpegTsAtscStringSegment *
_gst_mpegts_atsc_string_segment_copy (GstMpegTsAtscStringSegment * seg)
static GstMpegtsAtscStringSegment *
_gst_mpegts_atsc_string_segment_copy (GstMpegtsAtscStringSegment * seg)
{
GstMpegTsAtscStringSegment *copy;
GstMpegtsAtscStringSegment *copy;
copy = g_slice_dup (GstMpegTsAtscStringSegment, seg);
copy = g_slice_dup (GstMpegtsAtscStringSegment, seg);
return copy;
}
static void
_gst_mpegts_atsc_string_segment_free (GstMpegTsAtscStringSegment * seg)
_gst_mpegts_atsc_string_segment_free (GstMpegtsAtscStringSegment * seg)
{
if (seg->cached_string)
g_free (seg->cached_string);
g_slice_free (GstMpegTsAtscStringSegment, seg);
g_slice_free (GstMpegtsAtscStringSegment, seg);
}
static void
_gst_mpegts_atsc_string_segment_decode_string (GstMpegTsAtscStringSegment * seg)
_gst_mpegts_atsc_string_segment_decode_string (GstMpegtsAtscStringSegment * seg)
{
const gchar *from_encoding;
@ -457,7 +457,7 @@ _gst_mpegts_atsc_string_segment_decode_string (GstMpegTsAtscStringSegment * seg)
}
const gchar *
gst_mpegts_atsc_string_segment_get_string (GstMpegTsAtscStringSegment * seg)
gst_mpegts_atsc_string_segment_get_string (GstMpegtsAtscStringSegment * seg)
{
if (!seg->cached_string)
_gst_mpegts_atsc_string_segment_decode_string (seg);
@ -465,29 +465,29 @@ gst_mpegts_atsc_string_segment_get_string (GstMpegTsAtscStringSegment * seg)
return seg->cached_string;
}
G_DEFINE_BOXED_TYPE (GstMpegTsAtscStringSegment, gst_mpegts_atsc_string_segment,
G_DEFINE_BOXED_TYPE (GstMpegtsAtscStringSegment, gst_mpegts_atsc_string_segment,
(GBoxedCopyFunc) _gst_mpegts_atsc_string_segment_copy,
(GFreeFunc) _gst_mpegts_atsc_string_segment_free);
static GstMpegTsAtscMultString *
_gst_mpegts_atsc_mult_string_copy (GstMpegTsAtscMultString * mstring)
static GstMpegtsAtscMultString *
_gst_mpegts_atsc_mult_string_copy (GstMpegtsAtscMultString * mstring)
{
GstMpegTsAtscMultString *copy;
GstMpegtsAtscMultString *copy;
copy = g_slice_dup (GstMpegTsAtscMultString, mstring);
copy = g_slice_dup (GstMpegtsAtscMultString, mstring);
copy->segments = g_ptr_array_ref (mstring->segments);
return copy;
}
static void
_gst_mpegts_atsc_mult_string_free (GstMpegTsAtscMultString * mstring)
_gst_mpegts_atsc_mult_string_free (GstMpegtsAtscMultString * mstring)
{
g_ptr_array_unref (mstring->segments);
g_slice_free (GstMpegTsAtscMultString, mstring);
g_slice_free (GstMpegtsAtscMultString, mstring);
}
G_DEFINE_BOXED_TYPE (GstMpegTsAtscMultString, gst_mpegts_atsc_mult_string,
G_DEFINE_BOXED_TYPE (GstMpegtsAtscMultString, gst_mpegts_atsc_mult_string,
(GBoxedCopyFunc) _gst_mpegts_atsc_mult_string_copy,
(GFreeFunc) _gst_mpegts_atsc_mult_string_free);
@ -509,11 +509,11 @@ _parse_atsc_mult_string (guint8 * data, guint datasize)
(GDestroyNotify) _gst_mpegts_atsc_mult_string_free);
for (i = 0; i < num_strings; i++) {
GstMpegTsAtscMultString *mstring;
GstMpegtsAtscMultString *mstring;
guint8 num_segments;
gint j;
mstring = g_slice_new0 (GstMpegTsAtscMultString);
mstring = g_slice_new0 (GstMpegtsAtscMultString);
g_ptr_array_add (res, mstring);
mstring->segments =
g_ptr_array_new_full (num_strings,
@ -536,9 +536,9 @@ _parse_atsc_mult_string (guint8 * data, guint datasize)
data += 1;
for (j = 0; j < num_segments; j++) {
GstMpegTsAtscStringSegment *seg;
GstMpegtsAtscStringSegment *seg;
seg = g_slice_new0 (GstMpegTsAtscStringSegment);
seg = g_slice_new0 (GstMpegtsAtscStringSegment);
g_ptr_array_add (mstring->segments, seg);
/* each entry needs at least 3 bytes */
@ -576,12 +576,12 @@ error:
/* EIT */
static GstMpegTsAtscEITEvent *
_gst_mpegts_atsc_eit_event_copy (GstMpegTsAtscEITEvent * event)
static GstMpegtsAtscEITEvent *
_gst_mpegts_atsc_eit_event_copy (GstMpegtsAtscEITEvent * event)
{
GstMpegTsAtscEITEvent *copy;
GstMpegtsAtscEITEvent *copy;
copy = g_slice_dup (GstMpegTsAtscEITEvent, event);
copy = g_slice_dup (GstMpegtsAtscEITEvent, event);
copy->titles = g_ptr_array_ref (event->titles);
copy->descriptors = g_ptr_array_ref (event->descriptors);
@ -589,51 +589,51 @@ _gst_mpegts_atsc_eit_event_copy (GstMpegTsAtscEITEvent * event)
}
static void
_gst_mpegts_atsc_eit_event_free (GstMpegTsAtscEITEvent * event)
_gst_mpegts_atsc_eit_event_free (GstMpegtsAtscEITEvent * event)
{
if (event->titles)
g_ptr_array_unref (event->titles);
if (event->descriptors)
g_ptr_array_unref (event->descriptors);
g_slice_free (GstMpegTsAtscEITEvent, event);
g_slice_free (GstMpegtsAtscEITEvent, event);
}
G_DEFINE_BOXED_TYPE (GstMpegTsAtscEITEvent, gst_mpegts_atsc_eit_event,
G_DEFINE_BOXED_TYPE (GstMpegtsAtscEITEvent, gst_mpegts_atsc_eit_event,
(GBoxedCopyFunc) _gst_mpegts_atsc_eit_event_copy,
(GFreeFunc) _gst_mpegts_atsc_eit_event_free);
static GstMpegTsAtscEIT *
_gst_mpegts_atsc_eit_copy (GstMpegTsAtscEIT * eit)
static GstMpegtsAtscEIT *
_gst_mpegts_atsc_eit_copy (GstMpegtsAtscEIT * eit)
{
GstMpegTsAtscEIT *copy;
GstMpegtsAtscEIT *copy;
copy = g_slice_dup (GstMpegTsAtscEIT, eit);
copy = g_slice_dup (GstMpegtsAtscEIT, eit);
copy->events = g_ptr_array_ref (eit->events);
return copy;
}
static void
_gst_mpegts_atsc_eit_free (GstMpegTsAtscEIT * eit)
_gst_mpegts_atsc_eit_free (GstMpegtsAtscEIT * eit)
{
if (eit->events)
g_ptr_array_unref (eit->events);
g_slice_free (GstMpegTsAtscEIT, eit);
g_slice_free (GstMpegtsAtscEIT, eit);
}
G_DEFINE_BOXED_TYPE (GstMpegTsAtscEIT, gst_mpegts_atsc_eit,
G_DEFINE_BOXED_TYPE (GstMpegtsAtscEIT, gst_mpegts_atsc_eit,
(GBoxedCopyFunc) _gst_mpegts_atsc_eit_copy,
(GFreeFunc) _gst_mpegts_atsc_eit_free);
static gpointer
_parse_atsc_eit (GstMpegTsSection * section)
_parse_atsc_eit (GstMpegtsSection * section)
{
GstMpegTsAtscEIT *eit = NULL;
GstMpegtsAtscEIT *eit = NULL;
guint i = 0;
guint8 *data, *end;
guint8 num_events;
eit = g_slice_new0 (GstMpegTsAtscEIT);
eit = g_slice_new0 (GstMpegtsAtscEIT);
data = section->data;
end = data + section->section_length;
@ -652,7 +652,7 @@ _parse_atsc_eit (GstMpegTsSection * section)
_gst_mpegts_atsc_eit_event_free);
for (i = 0; i < num_events; i++) {
GstMpegTsAtscEITEvent *event;
GstMpegtsAtscEITEvent *event;
guint32 tmp;
guint8 text_length;
guint16 descriptors_loop_length;
@ -663,7 +663,7 @@ _parse_atsc_eit (GstMpegTsSection * section)
goto error;
}
event = g_slice_new0 (GstMpegTsAtscEITEvent);
event = g_slice_new0 (GstMpegtsAtscEITEvent);
g_ptr_array_add (eit->events, event);
event->event_id = GST_READ_UINT16_BE (data) & 0x3FFF;
@ -716,15 +716,15 @@ error:
/**
* gst_mpegts_section_get_atsc_eit:
* @section: a #GstMpegTsSection of type %GST_MPEGTS_SECTION_ATSC_EIT
* @section: a #GstMpegtsSection of type %GST_MPEGTS_SECTION_ATSC_EIT
*
* Returns the #GstMpegTsAtscEIT contained in the @section.
* Returns the #GstMpegtsAtscEIT contained in the @section.
*
* Returns: The #GstMpegTsAtscEIT contained in the section, or %NULL if an error
* Returns: The #GstMpegtsAtscEIT contained in the section, or %NULL if an error
* happened.
*/
const GstMpegTsAtscEIT *
gst_mpegts_section_get_atsc_eit (GstMpegTsSection * section)
const GstMpegtsAtscEIT *
gst_mpegts_section_get_atsc_eit (GstMpegtsSection * section)
{
g_return_val_if_fail (section->section_type == GST_MPEGTS_SECTION_ATSC_EIT,
NULL);
@ -735,40 +735,40 @@ gst_mpegts_section_get_atsc_eit (GstMpegTsSection * section)
__common_section_checks (section, 14, _parse_atsc_eit,
(GDestroyNotify) _gst_mpegts_atsc_eit_free);
return (const GstMpegTsAtscEIT *) section->cached_parsed;
return (const GstMpegtsAtscEIT *) section->cached_parsed;
}
static GstMpegTsAtscETT *
_gst_mpegts_atsc_ett_copy (GstMpegTsAtscETT * ett)
static GstMpegtsAtscETT *
_gst_mpegts_atsc_ett_copy (GstMpegtsAtscETT * ett)
{
GstMpegTsAtscETT *copy;
GstMpegtsAtscETT *copy;
copy = g_slice_dup (GstMpegTsAtscETT, ett);
copy = g_slice_dup (GstMpegtsAtscETT, ett);
copy->messages = g_ptr_array_ref (ett->messages);
return copy;
}
static void
_gst_mpegts_atsc_ett_free (GstMpegTsAtscETT * ett)
_gst_mpegts_atsc_ett_free (GstMpegtsAtscETT * ett)
{
if (ett->messages)
g_ptr_array_unref (ett->messages);
g_slice_free (GstMpegTsAtscETT, ett);
g_slice_free (GstMpegtsAtscETT, ett);
}
G_DEFINE_BOXED_TYPE (GstMpegTsAtscETT, gst_mpegts_atsc_ett,
G_DEFINE_BOXED_TYPE (GstMpegtsAtscETT, gst_mpegts_atsc_ett,
(GBoxedCopyFunc) _gst_mpegts_atsc_ett_copy,
(GFreeFunc) _gst_mpegts_atsc_ett_free);
static gpointer
_parse_ett (GstMpegTsSection * section)
_parse_ett (GstMpegtsSection * section)
{
GstMpegTsAtscETT *ett = NULL;
GstMpegtsAtscETT *ett = NULL;
guint8 *data, *end;
ett = g_slice_new0 (GstMpegTsAtscETT);
ett = g_slice_new0 (GstMpegtsAtscETT);
data = section->data;
end = data + section->section_length;
@ -803,15 +803,15 @@ error:
/**
* gst_mpegts_section_get_atsc_ett:
* @section: a #GstMpegTsSection of type %GST_MPEGTS_SECTION_ATSC_ETT
* @section: a #GstMpegtsSection of type %GST_MPEGTS_SECTION_ATSC_ETT
*
* Returns the #GstMpegTsAtscETT contained in the @section.
* Returns the #GstMpegtsAtscETT contained in the @section.
*
* Returns: The #GstMpegTsAtscETT contained in the section, or %NULL if an error
* Returns: The #GstMpegtsAtscETT contained in the section, or %NULL if an error
* happened.
*/
const GstMpegTsAtscETT *
gst_mpegts_section_get_atsc_ett (GstMpegTsSection * section)
const GstMpegtsAtscETT *
gst_mpegts_section_get_atsc_ett (GstMpegtsSection * section)
{
g_return_val_if_fail (section->section_type == GST_MPEGTS_SECTION_ATSC_ETT,
NULL);
@ -821,42 +821,42 @@ gst_mpegts_section_get_atsc_ett (GstMpegTsSection * section)
section->cached_parsed = __common_section_checks (section, 17, _parse_ett,
(GDestroyNotify) _gst_mpegts_atsc_ett_free);
return (const GstMpegTsAtscETT *) section->cached_parsed;
return (const GstMpegtsAtscETT *) section->cached_parsed;
}
/* STT */
static GstMpegTsAtscSTT *
_gst_mpegts_atsc_stt_copy (GstMpegTsAtscSTT * stt)
static GstMpegtsAtscSTT *
_gst_mpegts_atsc_stt_copy (GstMpegtsAtscSTT * stt)
{
GstMpegTsAtscSTT *copy;
GstMpegtsAtscSTT *copy;
copy = g_slice_dup (GstMpegTsAtscSTT, stt);
copy = g_slice_dup (GstMpegtsAtscSTT, stt);
copy->descriptors = g_ptr_array_ref (stt->descriptors);
return copy;
}
static void
_gst_mpegts_atsc_stt_free (GstMpegTsAtscSTT * stt)
_gst_mpegts_atsc_stt_free (GstMpegtsAtscSTT * stt)
{
if (stt->descriptors)
g_ptr_array_unref (stt->descriptors);
g_slice_free (GstMpegTsAtscSTT, stt);
g_slice_free (GstMpegtsAtscSTT, stt);
}
G_DEFINE_BOXED_TYPE (GstMpegTsAtscSTT, gst_mpegts_atsc_stt,
G_DEFINE_BOXED_TYPE (GstMpegtsAtscSTT, gst_mpegts_atsc_stt,
(GBoxedCopyFunc) _gst_mpegts_atsc_stt_copy,
(GFreeFunc) _gst_mpegts_atsc_stt_free);
static gpointer
_parse_atsc_stt (GstMpegTsSection * section)
_parse_atsc_stt (GstMpegtsSection * section)
{
GstMpegTsAtscSTT *stt = NULL;
GstMpegtsAtscSTT *stt = NULL;
guint8 *data, *end;
guint16 daylight_saving;
stt = g_slice_new0 (GstMpegTsAtscSTT);
stt = g_slice_new0 (GstMpegtsAtscSTT);
data = section->data;
end = data + section->section_length;
@ -892,15 +892,15 @@ error:
/**
* gst_mpegts_section_get_atsc_stt:
* @section: a #GstMpegTsSection of type %GST_MPEGTS_SECTION_ATSC_STT
* @section: a #GstMpegtsSection of type %GST_MPEGTS_SECTION_ATSC_STT
*
* Returns the #GstMpegTsAtscSTT contained in the @section.
* Returns the #GstMpegtsAtscSTT contained in the @section.
*
* Returns: The #GstMpegTsAtscSTT contained in the section, or %NULL if an error
* Returns: The #GstMpegtsAtscSTT contained in the section, or %NULL if an error
* happened.
*/
const GstMpegTsAtscSTT *
gst_mpegts_section_get_atsc_stt (GstMpegTsSection * section)
const GstMpegtsAtscSTT *
gst_mpegts_section_get_atsc_stt (GstMpegtsSection * section)
{
g_return_val_if_fail (section->section_type == GST_MPEGTS_SECTION_ATSC_STT,
NULL);
@ -911,7 +911,7 @@ gst_mpegts_section_get_atsc_stt (GstMpegTsSection * section)
__common_section_checks (section, 20, _parse_atsc_stt,
(GDestroyNotify) _gst_mpegts_atsc_stt_free);
return (const GstMpegTsAtscSTT *) section->cached_parsed;
return (const GstMpegtsAtscSTT *) section->cached_parsed;
}
#define GPS_TO_UTC_TICKS G_GINT64_CONSTANT(315964800)
@ -923,7 +923,7 @@ _gst_mpegts_atsc_gps_time_to_datetime (guint32 systemtime, guint8 gps_offset)
}
GstDateTime *
gst_mpegts_atsc_stt_get_datetime_utc (GstMpegTsAtscSTT * stt)
gst_mpegts_atsc_stt_get_datetime_utc (GstMpegtsAtscSTT * stt)
{
if (stt->utc_datetime == NULL)
stt->utc_datetime = _gst_mpegts_atsc_gps_time_to_datetime (stt->system_time,

View file

@ -31,13 +31,13 @@
G_BEGIN_DECLS
/**
* GstMpegTsSectionATSCTableID:
* GstMpegtsSectionATSCTableID:
*
* Values for a #GstMpegTsSection table_id.
* Values for a #GstMpegtsSection table_id.
*
* These are the registered ATSC table_id variants.
*
* see also: #GstMpegTsSectionTableID
* see also: #GstMpegtsSectionTableID
*/
typedef enum {
@ -64,22 +64,22 @@ typedef enum {
/* 0xD8 ?? */
GST_MTS_TABLE_ID_ATSC_AGGREGATE_DATA_EVENT = 0xD9,
GST_MTS_TABLE_ID_ATSC_SATELLITE_VIRTUAL_CHANNEL = 0xDA,
} GstMpegTsSectionATSCTableID;
} GstMpegtsSectionATSCTableID;
/* TVCT/CVCT */
#define GST_TYPE_MPEGTS_ATSC_VCT (gst_mpegts_atsc_vct_get_type ())
#define GST_TYPE_MPEGTS_ATSC_VCT_SOURCE (gst_mpegts_atsc_vct_source_get_type ())
typedef struct _GstMpegTsAtscVCTSource GstMpegTsAtscVCTSource;
typedef struct _GstMpegTsAtscVCT GstMpegTsAtscVCT;
typedef struct _GstMpegtsAtscVCTSource GstMpegtsAtscVCTSource;
typedef struct _GstMpegtsAtscVCT GstMpegtsAtscVCT;
/**
* GstMpegTsAtscVCTSource:
* @descriptors: (element-type GstMpegTsDescriptor): descriptors
* GstMpegtsAtscVCTSource:
* @descriptors: (element-type GstMpegtsDescriptor): descriptors
*
* Source from a @GstMpegTsAtscVCT, can be used both for TVCT and CVCT tables
* Source from a @GstMpegtsAtscVCT, can be used both for TVCT and CVCT tables
*/
struct _GstMpegTsAtscVCTSource
struct _GstMpegtsAtscVCTSource
{
gchar *short_name;
guint16 major_channel_number;
@ -102,16 +102,16 @@ struct _GstMpegTsAtscVCTSource
};
/**
* GstMpegTsAtscVCT:
* @sources: (element-type GstMpegTsAtscVCTSource): sources
* @descriptors: (element-type GstMpegTsDescriptor): descriptors
* GstMpegtsAtscVCT:
* @sources: (element-type GstMpegtsAtscVCTSource): sources
* @descriptors: (element-type GstMpegtsDescriptor): descriptors
*
* Represents both:
* Terrestrial Virtual Channel Table (A65)
* Cable Virtual Channel Table (A65)
*
*/
struct _GstMpegTsAtscVCT
struct _GstMpegtsAtscVCT
{
guint16 transport_stream_id;
guint8 protocol_version;
@ -122,30 +122,30 @@ struct _GstMpegTsAtscVCT
GType gst_mpegts_atsc_vct_get_type (void);
GType gst_mpegts_atsc_vct_source_get_type (void);
const GstMpegTsAtscVCT * gst_mpegts_section_get_atsc_tvct (GstMpegTsSection * section);
const GstMpegTsAtscVCT * gst_mpegts_section_get_atsc_cvct (GstMpegTsSection * section);
const GstMpegtsAtscVCT * gst_mpegts_section_get_atsc_tvct (GstMpegtsSection * section);
const GstMpegtsAtscVCT * gst_mpegts_section_get_atsc_cvct (GstMpegtsSection * section);
/* MGT */
#define GST_TYPE_MPEGTS_ATSC_MGT (gst_mpegts_atsc_mgt_get_type ())
#define GST_TYPE_MPEGTS_ATSC_MGT_TABLE (gst_mpegts_atsc_mgt_table_get_type ())
typedef struct _GstMpegTsAtscMGTTable GstMpegTsAtscMGTTable;
typedef struct _GstMpegTsAtscMGT GstMpegTsAtscMGT;
typedef struct _GstMpegtsAtscMGTTable GstMpegtsAtscMGTTable;
typedef struct _GstMpegtsAtscMGT GstMpegtsAtscMGT;
typedef enum {
GST_MPEG_TS_ATSC_MGT_TABLE_TYPE_EIT0 = 0x0100,
GST_MPEG_TS_ATSC_MGT_TABLE_TYPE_EIT127 = 0x017F,
GST_MPEG_TS_ATSC_MGT_TABLE_TYPE_ETT0 = 0x0200,
GST_MPEG_TS_ATSC_MGT_TABLE_TYPE_ETT127 = 0x027F
} GstMpegTsAtscMGTTableType;
GST_MPEGTS_ATSC_MGT_TABLE_TYPE_EIT0 = 0x0100,
GST_MPEGTS_ATSC_MGT_TABLE_TYPE_EIT127 = 0x017F,
GST_MPEGTS_ATSC_MGT_TABLE_TYPE_ETT0 = 0x0200,
GST_MPEGTS_ATSC_MGT_TABLE_TYPE_ETT127 = 0x027F
} GstMpegtsAtscMGTTableType;
/**
* GstMpegTsAtscMGTTable:
* @descriptors: (element-type GstMpegTsDescriptor): descriptors
* GstMpegtsAtscMGTTable:
* @descriptors: (element-type GstMpegtsDescriptor): descriptors
*
* Source from a @GstMpegTsAtscMGT
* Source from a @GstMpegtsAtscMGT
*/
struct _GstMpegTsAtscMGTTable
struct _GstMpegtsAtscMGTTable
{
guint16 table_type;
guint16 pid;
@ -155,14 +155,14 @@ struct _GstMpegTsAtscMGTTable
};
/**
* GstMpegTsAtscMGT:
* @tables: (element-type GstMpegTsAtscMGTTable): the tables
* @descriptors: (element-type GstMpegTsDescriptor): descriptors
* GstMpegtsAtscMGT:
* @tables: (element-type GstMpegtsAtscMGTTable): the tables
* @descriptors: (element-type GstMpegtsDescriptor): descriptors
*
* Master Guide Table (A65)
*
*/
struct _GstMpegTsAtscMGT
struct _GstMpegtsAtscMGT
{
guint8 protocol_version;
guint16 tables_defined;
@ -173,17 +173,17 @@ struct _GstMpegTsAtscMGT
GType gst_mpegts_atsc_mgt_get_type (void);
GType gst_mpegts_atsc_mgt_table_get_type (void);
const GstMpegTsAtscMGT * gst_mpegts_section_get_atsc_mgt (GstMpegTsSection * section);
const GstMpegtsAtscMGT * gst_mpegts_section_get_atsc_mgt (GstMpegtsSection * section);
/* Multiple string structure (used in ETT and EIT */
#define GST_TYPE_MPEGTS_ATSC_STRING_SEGMENT (gst_mpegts_atsc_string_segment_get_type())
#define GST_TYPE_MPEGTS_ATSC_MULT_STRING (gst_mpegts_atsc_mult_string_get_type())
typedef struct _GstMpegTsAtscStringSegment GstMpegTsAtscStringSegment;
typedef struct _GstMpegTsAtscMultString GstMpegTsAtscMultString;
typedef struct _GstMpegtsAtscStringSegment GstMpegtsAtscStringSegment;
typedef struct _GstMpegtsAtscMultString GstMpegtsAtscMultString;
struct _GstMpegTsAtscStringSegment {
struct _GstMpegtsAtscStringSegment {
guint8 compression_type;
guint8 mode;
guint8 compressed_data_size;
@ -192,14 +192,14 @@ struct _GstMpegTsAtscStringSegment {
gchar *cached_string;
};
const gchar * gst_mpegts_atsc_string_segment_get_string (GstMpegTsAtscStringSegment * seg);
const gchar * gst_mpegts_atsc_string_segment_get_string (GstMpegtsAtscStringSegment * seg);
/**
* GstMpegTsAtscMultString:
* @segments: (element-type GstMpegTsAtscStringSegment)
* GstMpegtsAtscMultString:
* @segments: (element-type GstMpegtsAtscStringSegment)
*
*/
struct _GstMpegTsAtscMultString {
struct _GstMpegtsAtscMultString {
gchar iso_639_langcode[4];
GPtrArray *segments;
};
@ -212,17 +212,17 @@ GType gst_mpegts_atsc_mult_string_get_type (void);
#define GST_TYPE_MPEGTS_ATSC_EIT_EVENT (gst_mpegts_atsc_eit_event_get_type())
#define GST_TYPE_MPEGTS_ATSC_EIT (gst_mpegts_atsc_eit_get_type())
typedef struct _GstMpegTsAtscEITEvent GstMpegTsAtscEITEvent;
typedef struct _GstMpegTsAtscEIT GstMpegTsAtscEIT;
typedef struct _GstMpegtsAtscEITEvent GstMpegtsAtscEITEvent;
typedef struct _GstMpegtsAtscEIT GstMpegtsAtscEIT;
/**
* GstMpegTsAtscEITEvent:
* @titles: (element-type GstMpegTsAtscMultString): the titles
* @descriptors: (element-type GstMpegTsDescriptor): descriptors
* GstMpegtsAtscEITEvent:
* @titles: (element-type GstMpegtsAtscMultString): the titles
* @descriptors: (element-type GstMpegtsDescriptor): descriptors
*
* An ATSC EIT Event
*/
struct _GstMpegTsAtscEITEvent {
struct _GstMpegtsAtscEITEvent {
guint16 event_id;
guint32 start_time;
guint8 etm_location;
@ -233,13 +233,13 @@ struct _GstMpegTsAtscEITEvent {
};
/**
* GstMpegTsAtscEIT:
* @events: (element-type GstMpegTsAtscEITEvent): Events
* GstMpegtsAtscEIT:
* @events: (element-type GstMpegtsAtscEITEvent): Events
*
* Event Information Table (ATSC)
*
*/
struct _GstMpegTsAtscEIT
struct _GstMpegtsAtscEIT
{
guint16 source_id;
guint8 protocol_version;
@ -250,22 +250,22 @@ struct _GstMpegTsAtscEIT
GType gst_mpegts_atsc_eit_event_get_type (void);
GType gst_mpegts_atsc_eit_get_type (void);
const GstMpegTsAtscEIT *gst_mpegts_section_get_atsc_eit (GstMpegTsSection *section);
const GstMpegtsAtscEIT *gst_mpegts_section_get_atsc_eit (GstMpegtsSection *section);
/* ETT */
#define GST_TYPE_MPEGTS_ATSC_ETT (gst_mpegts_atsc_ett_get_type())
typedef struct _GstMpegTsAtscETT GstMpegTsAtscETT;
typedef struct _GstMpegtsAtscETT GstMpegtsAtscETT;
/**
* GstMpegTsAtscETT:
* @messages: (element-type GstMpegTsAtscMultString): List of texts
* GstMpegtsAtscETT:
* @messages: (element-type GstMpegtsAtscMultString): List of texts
*
* Extended Text Table (ATSC)
*
*/
struct _GstMpegTsAtscETT
struct _GstMpegtsAtscETT
{
guint16 ett_table_id_extension;
guint16 protocol_version;
@ -276,21 +276,21 @@ struct _GstMpegTsAtscETT
GType gst_mpegts_atsc_ett_get_type (void);
const GstMpegTsAtscETT *gst_mpegts_section_get_atsc_ett (GstMpegTsSection *section);
const GstMpegtsAtscETT *gst_mpegts_section_get_atsc_ett (GstMpegtsSection *section);
/* STT */
#define GST_TYPE_MPEGTS_ATSC_STT (gst_mpegts_atsc_stt_get_type ())
typedef struct _GstMpegTsAtscSTT GstMpegTsAtscSTT;
typedef struct _GstMpegtsAtscSTT GstMpegtsAtscSTT;
/**
* GstMpegTsAtscSTT:
* @descriptors: (element-type GstMpegTsDescriptor): descriptors
* GstMpegtsAtscSTT:
* @descriptors: (element-type GstMpegtsDescriptor): descriptors
*
* System Time Table (A65)
*
*/
struct _GstMpegTsAtscSTT
struct _GstMpegtsAtscSTT
{
guint8 protocol_version;
guint32 system_time;
@ -305,9 +305,9 @@ struct _GstMpegTsAtscSTT
GType gst_mpegts_atsc_stt_get_type (void);
const GstMpegTsAtscSTT * gst_mpegts_section_get_atsc_stt (GstMpegTsSection * section);
const GstMpegtsAtscSTT * gst_mpegts_section_get_atsc_stt (GstMpegtsSection * section);
/* FIXME receive a non-const parameter but we only provide a const getter */
GstDateTime * gst_mpegts_atsc_stt_get_datetime_utc (GstMpegTsAtscSTT * stt);
GstDateTime * gst_mpegts_atsc_stt_get_datetime_utc (GstMpegtsAtscSTT * stt);
G_END_DECLS

File diff suppressed because it is too large Load diff

View file

@ -37,9 +37,9 @@
G_BEGIN_DECLS
/**
* GstMpegTsDVBDescriptorType:
* GstMpegtsDVBDescriptorType:
*
* The type of #GstMpegTsDescriptor
* The type of #GstMpegtsDescriptor
*
* These values correspond to the registered descriptor type from
* the various DVB specifications.
@ -114,12 +114,12 @@ typedef enum {
GST_MTS_DESC_DVB_XAIT_LOCATION = 0x7D,
GST_MTS_DESC_DVB_FTA_CONTENT_MANAGEMENT = 0x7E,
GST_MTS_DESC_DVB_EXTENSION = 0x7F,
} GstMpegTsDVBDescriptorType;
} GstMpegtsDVBDescriptorType;
/**
* GstMpegTsDVBExtendedDescriptorType:
* GstMpegtsDVBExtendedDescriptorType:
*
* The type of #GstMpegTsDescriptor
* The type of #GstMpegtsDescriptor
*
* These values correspond to the registered extended descriptor
* type from the various DVB specifications.
@ -150,24 +150,24 @@ typedef enum {
GST_MTS_DESC_EXT_DVB_VIDEO_DEPTH_RANGE = 0x10,
GST_MTS_DESC_EXT_DVB_T2MI = 0x11,
GST_MTS_DESC_EXT_DVB_URI_LINKAGE = 0x13,
} GstMpegTsDVBExtendedDescriptorType;
} GstMpegtsDVBExtendedDescriptorType;
/* GST_MTS_DESC_DVB_CAROUSEL_IDENTIFIER (0x13) */
/* FIXME : Implement */
/* GST_MTS_DESC_DVB_NETWORK_NAME (0x40) */
gboolean gst_mpegts_descriptor_parse_dvb_network_name (const GstMpegTsDescriptor *descriptor,
gboolean gst_mpegts_descriptor_parse_dvb_network_name (const GstMpegtsDescriptor *descriptor,
gchar **name);
GstMpegTsDescriptor *gst_mpegts_descriptor_from_dvb_network_name (const gchar * name);
GstMpegtsDescriptor *gst_mpegts_descriptor_from_dvb_network_name (const gchar * name);
/* GST_MTS_DESC_DVB_STUFFING (0x42) */
gboolean gst_mpegts_descriptor_parse_dvb_stuffing (const GstMpegTsDescriptor * descriptor,
gboolean gst_mpegts_descriptor_parse_dvb_stuffing (const GstMpegtsDescriptor * descriptor,
guint8 ** stuffing_bytes);
/* GST_MTS_DESC_DVB_SATELLITE_DELIVERY_SYSTEM (0x43) */
typedef struct _GstMpegTsSatelliteDeliverySystemDescriptor GstMpegTsSatelliteDeliverySystemDescriptor;
typedef struct _GstMpegtsSatelliteDeliverySystemDescriptor GstMpegtsSatelliteDeliverySystemDescriptor;
typedef enum {
GST_MPEGTS_MODULATION_QPSK = 0,
@ -185,7 +185,7 @@ typedef enum {
GST_MPEGTS_MODULATION_DQPSK,
GST_MPEGTS_MODULATION_QAM_4_NR_,
GST_MPEGTS_MODULATION_NONE
} GstMpegTsModulationType;
} GstMpegtsModulationType;
typedef enum {
GST_MPEGTS_FEC_NONE = 0,
@ -201,7 +201,7 @@ typedef enum {
GST_MPEGTS_FEC_3_5,
GST_MPEGTS_FEC_9_10,
GST_MPEGTS_FEC_2_5
} GstMpegTsDVBCodeRate;
} GstMpegtsDVBCodeRate;
typedef enum {
GST_MPEGTS_ROLLOFF_35 = 0,
@ -209,17 +209,17 @@ typedef enum {
GST_MPEGTS_ROLLOFF_25,
GST_MPEGTS_ROLLOFF_RESERVED,
GST_MPEGTS_ROLLOFF_AUTO
} GstMpegTsSatelliteRolloff;
} GstMpegtsSatelliteRolloff;
typedef enum {
GST_MPEGTS_POLARIZATION_LINEAR_HORIZONTAL = 0,
GST_MPEGTS_POLARIZATION_LINEAR_VERTICAL,
GST_MPEGTS_POLARIZATION_CIRCULAR_LEFT,
GST_MPEGTS_POLARIZATION_CIRCULAR_RIGHT
} GstMpegTsSatellitePolarizationType;
} GstMpegtsSatellitePolarizationType;
/**
* GstMpegTsSatelliteDeliverySystemDescriptor:
* GstMpegtsSatelliteDeliverySystemDescriptor:
* @frequency: the frequency in kHz (kiloHertz)
* @orbital_position: the orbital position in degrees
* @west_east: If %TRUE, the satellite is in the eastern part of the orbit,
@ -233,23 +233,23 @@ typedef enum {
*
* Satellite Delivery System Descriptor (EN 300 468 v.1.13.1)
*/
struct _GstMpegTsSatelliteDeliverySystemDescriptor
struct _GstMpegtsSatelliteDeliverySystemDescriptor
{
guint32 frequency;
gfloat orbital_position;
gboolean west_east;
GstMpegTsSatellitePolarizationType polarization;
GstMpegtsSatellitePolarizationType polarization;
GstMpegTsSatelliteRolloff roll_off;
GstMpegtsSatelliteRolloff roll_off;
gboolean modulation_system;
GstMpegTsModulationType modulation_type;
GstMpegtsModulationType modulation_type;
guint32 symbol_rate;
GstMpegTsDVBCodeRate fec_inner;
GstMpegtsDVBCodeRate fec_inner;
};
gboolean gst_mpegts_descriptor_parse_satellite_delivery_system (const GstMpegTsDescriptor *descriptor,
GstMpegTsSatelliteDeliverySystemDescriptor *res);
gboolean gst_mpegts_descriptor_parse_satellite_delivery_system (const GstMpegtsDescriptor *descriptor,
GstMpegtsSatelliteDeliverySystemDescriptor *res);
/* GST_MTS_DESC_DVB_CABLE_DELIVERY_SYSTEM (0x44) */
@ -257,11 +257,11 @@ typedef enum {
GST_MPEGTS_CABLE_OUTER_FEC_UNDEFINED = 0,
GST_MPEGTS_CABLE_OUTER_FEC_NONE,
GST_MPEGTS_CABLE_OUTER_FEC_RS_204_188,
} GstMpegTsCableOuterFECScheme;
} GstMpegtsCableOuterFECScheme;
typedef struct _GstMpegTsCableDeliverySystemDescriptor GstMpegTsCableDeliverySystemDescriptor;
typedef struct _GstMpegtsCableDeliverySystemDescriptor GstMpegtsCableDeliverySystemDescriptor;
/**
* GstMpegTsCableDeliverySystemDescriptor:
* GstMpegtsCableDeliverySystemDescriptor:
* @frequency: the frequency in Hz (Hertz)
* @outer_fec: the outer FEC scheme used
* @modulation: Modulation scheme used
@ -270,26 +270,26 @@ typedef struct _GstMpegTsCableDeliverySystemDescriptor GstMpegTsCableDeliverySys
*
* Cable Delivery System Descriptor (EN 300 468 v.1.13.1)
*/
struct _GstMpegTsCableDeliverySystemDescriptor
struct _GstMpegtsCableDeliverySystemDescriptor
{
guint32 frequency;
GstMpegTsCableOuterFECScheme outer_fec;
GstMpegTsModulationType modulation;
GstMpegtsCableOuterFECScheme outer_fec;
GstMpegtsModulationType modulation;
guint32 symbol_rate;
GstMpegTsDVBCodeRate fec_inner;
GstMpegtsDVBCodeRate fec_inner;
};
gboolean gst_mpegts_descriptor_parse_cable_delivery_system (const GstMpegTsDescriptor *descriptor,
GstMpegTsCableDeliverySystemDescriptor *res);
gboolean gst_mpegts_descriptor_parse_cable_delivery_system (const GstMpegtsDescriptor *descriptor,
GstMpegtsCableDeliverySystemDescriptor *res);
/* GST_MTS_DESC_DVB_BOUQUET_NAME (0x47) */
gboolean gst_mpegts_descriptor_parse_dvb_bouquet_name (const GstMpegTsDescriptor * descriptor,
gboolean gst_mpegts_descriptor_parse_dvb_bouquet_name (const GstMpegtsDescriptor * descriptor,
gchar ** bouquet_name);
/* GST_MTS_DESC_DVB_SERVICE (0x48) */
/**
* GstMpegTsDVBServiceType:
* GstMpegtsDVBServiceType:
*
* The type of service of a channel.
*
@ -328,37 +328,37 @@ typedef enum {
/* 0x80 - 0xfe user defined */
/* 0xff Reserved for future use */
GST_DVB_SERVICE_RESERVED_FF
} GstMpegTsDVBServiceType;
} GstMpegtsDVBServiceType;
gboolean gst_mpegts_descriptor_parse_dvb_service (const GstMpegTsDescriptor *descriptor,
GstMpegTsDVBServiceType *service_type,
gboolean gst_mpegts_descriptor_parse_dvb_service (const GstMpegtsDescriptor *descriptor,
GstMpegtsDVBServiceType *service_type,
gchar **service_name,
gchar **provider_name);
GstMpegTsDescriptor *gst_mpegts_descriptor_from_dvb_service (GstMpegTsDVBServiceType service_type,
GstMpegtsDescriptor *gst_mpegts_descriptor_from_dvb_service (GstMpegtsDVBServiceType service_type,
const gchar * service_name,
const gchar * service_provider);
/* GST_MTS_DESC_DVB_SERVICE_LIST (0x41) */
typedef struct _GstMpegTsDVBServiceListItem GstMpegTsDVBServiceListItem;
typedef struct _GstMpegtsDVBServiceListItem GstMpegtsDVBServiceListItem;
/**
* GstMpegTsDVBServiceListItem:
* GstMpegtsDVBServiceListItem:
* @service_id: the id of a service
* @type: the type of a service
*/
struct _GstMpegTsDVBServiceListItem
struct _GstMpegtsDVBServiceListItem
{
guint16 service_id;
GstMpegTsDVBServiceType type;
GstMpegtsDVBServiceType type;
};
gboolean gst_mpegts_descriptor_parse_dvb_service_list (const GstMpegTsDescriptor * descriptor,
gboolean gst_mpegts_descriptor_parse_dvb_service_list (const GstMpegtsDescriptor * descriptor,
GPtrArray ** list);
/* GST_MTS_DESC_DVB_LINKAGE (0x4A) */
/**
* GstMpegTsDVBLinkageType:
* GstMpegtsDVBLinkageType:
*
* Linkage Type (EN 300 468 v.1.13.1)
*/
@ -379,37 +379,37 @@ typedef enum {
GST_MPEGTS_DVB_LINKAGE_TS_CONTAINING_INT = 0x0C,
GST_MPEGTS_DVB_LINKAGE_EVENT = 0x0D,
GST_MPEGTS_DVB_LINKAGE_EXTENDED_EVENT = 0x0E,
} GstMpegTsDVBLinkageType;
} GstMpegtsDVBLinkageType;
typedef enum {
GST_MPEGTS_DVB_LINKAGE_HAND_OVER_RESERVED = 0x00,
GST_MPEGTS_DVB_LINKAGE_HAND_OVER_IDENTICAL = 0x01,
GST_MPEGTS_DVB_LINKAGE_HAND_OVER_LOCAL_VARIATION = 0x02,
GST_MPEGTS_DVB_LINKAGE_HAND_OVER_ASSOCIATED = 0x03,
} GstMpegTsDVBLinkageHandOverType;
} GstMpegtsDVBLinkageHandOverType;
typedef struct _GstMpegTsDVBLinkageMobileHandOver GstMpegTsDVBLinkageMobileHandOver;
typedef struct _GstMpegTsDVBLinkageEvent GstMpegTsDVBLinkageEvent;
typedef struct _GstMpegTsDVBLinkageExtendedEvent GstMpegTsDVBLinkageExtendedEvent;
typedef struct _GstMpegTsDVBLinkageDescriptor GstMpegTsDVBLinkageDescriptor;
typedef struct _GstMpegtsDVBLinkageMobileHandOver GstMpegtsDVBLinkageMobileHandOver;
typedef struct _GstMpegtsDVBLinkageEvent GstMpegtsDVBLinkageEvent;
typedef struct _GstMpegtsDVBLinkageExtendedEvent GstMpegtsDVBLinkageExtendedEvent;
typedef struct _GstMpegtsDVBLinkageDescriptor GstMpegtsDVBLinkageDescriptor;
struct _GstMpegTsDVBLinkageMobileHandOver
struct _GstMpegtsDVBLinkageMobileHandOver
{
GstMpegTsDVBLinkageHandOverType hand_over_type;
GstMpegtsDVBLinkageHandOverType hand_over_type;
/* 0 = NIT, 1 = SDT */
gboolean origin_type;
guint16 network_id;
guint16 initial_service_id;
};
struct _GstMpegTsDVBLinkageEvent
struct _GstMpegtsDVBLinkageEvent
{
guint16 target_event_id;
gboolean target_listed;
gboolean event_simulcast;
};
struct _GstMpegTsDVBLinkageExtendedEvent
struct _GstMpegtsDVBLinkageExtendedEvent
{
guint16 target_event_id;
gboolean target_listed;
@ -429,7 +429,7 @@ struct _GstMpegTsDVBLinkageExtendedEvent
};
/**
* GstMpegTsDVBLinkageDescriptor:
* GstMpegtsDVBLinkageDescriptor:
* @transport_stream_id: the transport id
* @original_network_id: the original network id
* @service_id: the service id
@ -438,12 +438,12 @@ struct _GstMpegTsDVBLinkageExtendedEvent
* @private_data_length: the length for %private_data_bytes
* @private_data_bytes: additional data bytes
*/
struct _GstMpegTsDVBLinkageDescriptor
struct _GstMpegtsDVBLinkageDescriptor
{
guint16 transport_stream_id;
guint16 original_network_id;
guint16 service_id;
GstMpegTsDVBLinkageType linkage_type;
GstMpegtsDVBLinkageType linkage_type;
gpointer linkage_data;
guint8 private_data_length;
guint8 *private_data_bytes;
@ -453,39 +453,39 @@ struct _GstMpegTsDVBLinkageDescriptor
GType gst_mpegts_dvb_linkage_descriptor_get_type (void);
void gst_mpegts_dvb_linkage_descriptor_free (GstMpegTsDVBLinkageDescriptor * source);
void gst_mpegts_dvb_linkage_descriptor_free (GstMpegtsDVBLinkageDescriptor * source);
gboolean gst_mpegts_descriptor_parse_dvb_linkage (const GstMpegTsDescriptor * descriptor,
GstMpegTsDVBLinkageDescriptor ** res);
gboolean gst_mpegts_descriptor_parse_dvb_linkage (const GstMpegtsDescriptor * descriptor,
GstMpegtsDVBLinkageDescriptor ** res);
/* GST_MTS_DESC_DVB_SHORT_EVENT (0x4D) */
gboolean gst_mpegts_descriptor_parse_dvb_short_event (const GstMpegTsDescriptor *descriptor,
gboolean gst_mpegts_descriptor_parse_dvb_short_event (const GstMpegtsDescriptor *descriptor,
gchar **language_code,
gchar **event_name,
gchar **text);
/* GST_MTS_DESC_DVB_EXTENDED_EVENT (0x4E) */
typedef struct _GstMpegTsExtendedEventDescriptor GstMpegTsExtendedEventDescriptor;
typedef struct _GstMpegTsExtendedEventItem GstMpegTsExtendedEventItem;
typedef struct _GstMpegtsExtendedEventDescriptor GstMpegtsExtendedEventDescriptor;
typedef struct _GstMpegtsExtendedEventItem GstMpegtsExtendedEventItem;
/* FIXME : Maybe make a separate method for getting a specific item entry ? */
struct _GstMpegTsExtendedEventItem
struct _GstMpegtsExtendedEventItem
{
gchar *item_description;
gchar *item;
};
/**
* GstMpegTsExtendedEventDescriptor:
* GstMpegtsExtendedEventDescriptor:
* @desctiptor_number:
* @last_descriptor_number:
* @language_code: NULL terminated language code.
* @items: (element-type GstMpegTsExtendedEventItem): the #GstMpegTsExtendedEventItem
* @items: (element-type GstMpegtsExtendedEventItem): the #GstMpegtsExtendedEventItem
* @text:
*
* Extended Event Descriptor (EN 300 468 v.1.13.1)
*/
struct _GstMpegTsExtendedEventDescriptor
struct _GstMpegtsExtendedEventDescriptor
{
guint8 descriptor_number;
guint8 last_descriptor_number;
@ -497,9 +497,9 @@ struct _GstMpegTsExtendedEventDescriptor
#define GST_TYPE_MPEGTS_EXTENDED_EVENT_DESCRIPTOR (gst_mpegts_extended_event_descriptor_get_type())
GType gst_mpegts_extended_event_descriptor_get_type (void);
void gst_mpegts_extended_event_descriptor_free (GstMpegTsExtendedEventDescriptor * source);
gboolean gst_mpegts_descriptor_parse_dvb_extended_event (const GstMpegTsDescriptor *descriptor,
GstMpegTsExtendedEventDescriptor **res);
void gst_mpegts_extended_event_descriptor_free (GstMpegtsExtendedEventDescriptor * source);
gboolean gst_mpegts_descriptor_parse_dvb_extended_event (const GstMpegtsDescriptor *descriptor,
GstMpegtsExtendedEventDescriptor **res);
/* GST_MTS_DESC_DVB_COMPONENT (0x50) */
#define GST_TYPE_MPEGTS_COMPONENT_DESCRIPTOR (gst_mpegts_component_descriptor_get_type ())
@ -512,10 +512,10 @@ typedef enum {
GST_MPEGTS_STREAM_CONTENT_AAC = 0x06,
GST_MPEGTS_STREAM_CONTENT_DTS = 0x07,
GST_MPEGTS_STREAM_CONTENT_SRM_CPCM = 0x08
} GstMpegTsComponentStreamContent;
} GstMpegtsComponentStreamContent;
typedef struct _GstMpegTsComponentDescriptor GstMpegTsComponentDescriptor;
struct _GstMpegTsComponentDescriptor
typedef struct _GstMpegtsComponentDescriptor GstMpegtsComponentDescriptor;
struct _GstMpegtsComponentDescriptor
{
guint8 stream_content;
guint8 component_type;
@ -525,16 +525,16 @@ struct _GstMpegTsComponentDescriptor
};
GType gst_mpegts_component_descriptor_get_type (void);
void gst_mpegts_dvb_component_descriptor_free (GstMpegTsComponentDescriptor * source);
gboolean gst_mpegts_descriptor_parse_dvb_component (const GstMpegTsDescriptor *descriptor,
GstMpegTsComponentDescriptor **res);
void gst_mpegts_dvb_component_descriptor_free (GstMpegtsComponentDescriptor * source);
gboolean gst_mpegts_descriptor_parse_dvb_component (const GstMpegtsDescriptor *descriptor,
GstMpegtsComponentDescriptor **res);
/* GST_MTS_DESC_DVB_STREAM_IDENTIFIER (0x52) */
gboolean gst_mpegts_descriptor_parse_dvb_stream_identifier (const GstMpegTsDescriptor *descriptor,
gboolean gst_mpegts_descriptor_parse_dvb_stream_identifier (const GstMpegtsDescriptor *descriptor,
guint8 *component_tag);
/* GST_MTS_DESC_DVB_CA_IDENTIFIER (0x53) */
gboolean gst_mpegts_descriptor_parse_dvb_ca_identifier (const GstMpegTsDescriptor * descriptor,
gboolean gst_mpegts_descriptor_parse_dvb_ca_identifier (const GstMpegtsDescriptor * descriptor,
GArray ** list);
/* GST_MTS_DESC_DVB_CONTENT (0x54) */
@ -550,40 +550,40 @@ typedef enum {
GST_MPEGTS_CONTENT_EDUCATION_SCIENCE_FACTUAL = 0x09,
GST_MPEGTS_CONTENT_LEISURE_HOBBIES = 0x0A,
GST_MPEGTS_CONTENT_SPECIAL_CHARACTERISTICS = 0x0B
} GstMpegTsContentNibbleHi;
} GstMpegtsContentNibbleHi;
typedef struct _GstMpegTsContent GstMpegTsContent;
struct _GstMpegTsContent
typedef struct _GstMpegtsContent GstMpegtsContent;
struct _GstMpegtsContent
{
GstMpegTsContentNibbleHi content_nibble_1;
GstMpegtsContentNibbleHi content_nibble_1;
guint8 content_nibble_2;
guint8 user_byte;
};
gboolean gst_mpegts_descriptor_parse_dvb_content (const GstMpegTsDescriptor *
gboolean gst_mpegts_descriptor_parse_dvb_content (const GstMpegtsDescriptor *
descriptor, GPtrArray ** content);
/* GST_MTS_DESC_DVB_PARENTAL_RATING (0x55) */
typedef struct _GstMpegTsDVBParentalRatingItem GstMpegTsDVBParentalRatingItem;
typedef struct _GstMpegtsDVBParentalRatingItem GstMpegtsDVBParentalRatingItem;
/**
* GstMpegTsDVBParentalRating:
* GstMpegtsDVBParentalRating:
* @country_code: This 24-bit field identifies a country using the 3-character
* code as specified in ISO 3166
* @rating: the rating age
*/
struct _GstMpegTsDVBParentalRatingItem
struct _GstMpegtsDVBParentalRatingItem
{
gchar *country_code;
guint8 rating;
};
gboolean gst_mpegts_descriptor_parse_dvb_parental_rating (const GstMpegTsDescriptor
gboolean gst_mpegts_descriptor_parse_dvb_parental_rating (const GstMpegtsDescriptor
* descriptor, GPtrArray ** rating);
/* GST_MTS_DESC_DVB_TELETEXT (0x56) */
/**
* GstMpegTsDVBTeletextType:
* GstMpegtsDVBTeletextType:
*
* The type of teletext page.
*
@ -595,30 +595,30 @@ typedef enum {
ADDITIONAL_INFO_PAGE,
PROGRAMME_SCHEDULE_PAGE,
HEARING_IMPAIRED_PAGE
} GstMpegTsDVBTeletextType;
} GstMpegtsDVBTeletextType;
gboolean gst_mpegts_descriptor_parse_dvb_teletext_idx (const GstMpegTsDescriptor *
gboolean gst_mpegts_descriptor_parse_dvb_teletext_idx (const GstMpegtsDescriptor *
descriptor, guint idx, gchar ** language_code,
GstMpegTsDVBTeletextType * teletext_type, guint8 * magazine_number,
GstMpegtsDVBTeletextType * teletext_type, guint8 * magazine_number,
guint8 * page_number);
guint gst_mpegts_descriptor_parse_dvb_teletext_nb (const GstMpegTsDescriptor *
guint gst_mpegts_descriptor_parse_dvb_teletext_nb (const GstMpegtsDescriptor *
descriptor);
/* GST_MTS_DESC_DVB_SUBTITLING (0x59) */
gboolean gst_mpegts_descriptor_parse_dvb_subtitling_idx (const GstMpegTsDescriptor *descriptor,
gboolean gst_mpegts_descriptor_parse_dvb_subtitling_idx (const GstMpegtsDescriptor *descriptor,
guint idx, gchar ** lang,
guint8 *type, guint16 *composition_page_id,
guint16 *ancillary_page_id);
guint gst_mpegts_descriptor_parse_dvb_subtitling_nb (const GstMpegTsDescriptor *descriptor);
guint gst_mpegts_descriptor_parse_dvb_subtitling_nb (const GstMpegtsDescriptor *descriptor);
GstMpegTsDescriptor * gst_mpegts_descriptor_from_dvb_subtitling (const gchar *lang,
GstMpegtsDescriptor * gst_mpegts_descriptor_from_dvb_subtitling (const gchar *lang,
guint8 type, guint16 composition, guint16 ancillary);
/* GST_MTS_DESC_DVB_TERRESTRIAL_DELIVERY_SYSTEM (0x5A) */
typedef struct _GstMpegTsTerrestrialDeliverySystemDescriptor GstMpegTsTerrestrialDeliverySystemDescriptor;
typedef struct _GstMpegtsTerrestrialDeliverySystemDescriptor GstMpegtsTerrestrialDeliverySystemDescriptor;
typedef enum {
GST_MPEGTS_TRANSMISSION_MODE_2K = 0,
@ -630,7 +630,7 @@ typedef enum {
GST_MPEGTS_TRANSMISSION_MODE_32K,
GST_MPEGTS_TRANSMISSION_MODE_C1,
GST_MPEGTS_TRANSMISSION_MODE_C3780
} GstMpegTsTerrestrialTransmissionMode;
} GstMpegtsTerrestrialTransmissionMode;
typedef enum {
GST_MPEGTS_GUARD_INTERVAL_1_32 = 0,
@ -644,7 +644,7 @@ typedef enum {
GST_MPEGTS_GUARD_INTERVAL_PN420,
GST_MPEGTS_GUARD_INTERVAL_PN595,
GST_MPEGTS_GUARD_INTERVAL_PN945
} GstMpegTsTerrestrialGuardInterval;
} GstMpegtsTerrestrialGuardInterval;
typedef enum {
GST_MPEGTS_HIERARCHY_NONE = 0,
@ -652,10 +652,10 @@ typedef enum {
GST_MPEGTS_HIERARCHY_2,
GST_MPEGTS_HIERARCHY_4,
GST_MPEGTS_HIERARCHY_AUTO
} GstMpegTsTerrestrialHierarchy;
} GstMpegtsTerrestrialHierarchy;
/**
* GstMpegTsTerrestrialDeliverySystemDescriptor:
* GstMpegtsTerrestrialDeliverySystemDescriptor:
* @frequency: the frequency in Hz (Hertz)
* @bandwidth: the bandwidth in Hz (Hertz)
* @priority: %TRUE High Priority %FALSE Low Priority
@ -672,122 +672,122 @@ typedef enum {
* Terrestrial Delivery System Descriptor (EN 300 468 v.1.13.1)
*/
struct _GstMpegTsTerrestrialDeliverySystemDescriptor
struct _GstMpegtsTerrestrialDeliverySystemDescriptor
{
guint32 frequency;
guint32 bandwidth;
gboolean priority;
gboolean time_slicing;
gboolean mpe_fec;
GstMpegTsModulationType constellation;
GstMpegTsTerrestrialHierarchy hierarchy;
GstMpegTsDVBCodeRate code_rate_hp;
GstMpegTsDVBCodeRate code_rate_lp;
GstMpegTsTerrestrialGuardInterval guard_interval;
GstMpegTsTerrestrialTransmissionMode transmission_mode;
GstMpegtsModulationType constellation;
GstMpegtsTerrestrialHierarchy hierarchy;
GstMpegtsDVBCodeRate code_rate_hp;
GstMpegtsDVBCodeRate code_rate_lp;
GstMpegtsTerrestrialGuardInterval guard_interval;
GstMpegtsTerrestrialTransmissionMode transmission_mode;
gboolean other_frequency;
};
gboolean gst_mpegts_descriptor_parse_terrestrial_delivery_system (const GstMpegTsDescriptor
*descriptor, GstMpegTsTerrestrialDeliverySystemDescriptor * res);
gboolean gst_mpegts_descriptor_parse_terrestrial_delivery_system (const GstMpegtsDescriptor
*descriptor, GstMpegtsTerrestrialDeliverySystemDescriptor * res);
/* GST_MTS_DESC_DVB_MULTILINGUAL_NETWORK_NAME (0x5B) */
typedef struct _GstMpegTsDvbMultilingualNetworkNameItem GstMpegTsDvbMultilingualNetworkNameItem;
typedef struct _GstMpegtsDvbMultilingualNetworkNameItem GstMpegtsDvbMultilingualNetworkNameItem;
/**
* GstMpegTsDvbMultilingualNetworkNameItem:
* GstMpegtsDvbMultilingualNetworkNameItem:
* @language_code: the ISO 639 language code
* @network_name: the network name
*
* a multilingual network name entry
*/
struct _GstMpegTsDvbMultilingualNetworkNameItem
struct _GstMpegtsDvbMultilingualNetworkNameItem
{
gchar *language_code;
gchar *network_name;
};
gboolean gst_mpegts_descriptor_parse_dvb_multilingual_network_name (const GstMpegTsDescriptor
gboolean gst_mpegts_descriptor_parse_dvb_multilingual_network_name (const GstMpegtsDescriptor
*descriptor, GPtrArray ** network_name_items);
/* GST_MTS_DESC_DVB_MULTILINGUAL_BOUQUET_NAME (0x5C) */
typedef struct _GstMpegTsDvbMultilingualBouquetNameItem GstMpegTsDvbMultilingualBouquetNameItem;
typedef struct _GstMpegtsDvbMultilingualBouquetNameItem GstMpegtsDvbMultilingualBouquetNameItem;
/**
* GstMpegTsDvbMultilingualBouquetNameItem:
* GstMpegtsDvbMultilingualBouquetNameItem:
* @language_code: the ISO 639 language code
* @bouquet_name: the bouquet name
*
* a multilingual bouquet name entry
*/
struct _GstMpegTsDvbMultilingualBouquetNameItem
struct _GstMpegtsDvbMultilingualBouquetNameItem
{
gchar *language_code;
gchar *bouquet_name;
};
gboolean gst_mpegts_descriptor_parse_dvb_multilingual_bouquet_name (const GstMpegTsDescriptor
gboolean gst_mpegts_descriptor_parse_dvb_multilingual_bouquet_name (const GstMpegtsDescriptor
*descriptor, GPtrArray ** bouquet_name_items);
/* GST_MTS_DESC_DVB_MULTILINGUAL_SERVICE_NAME (0x5D) */
typedef struct _GstMpegTsDvbMultilingualServiceNameItem GstMpegTsDvbMultilingualServiceNameItem;
typedef struct _GstMpegtsDvbMultilingualServiceNameItem GstMpegtsDvbMultilingualServiceNameItem;
/**
* GstMpegTsDvbMultilingualServiceNameItem:
* GstMpegtsDvbMultilingualServiceNameItem:
* @language_code: the ISO 639 language code
* @provider_name: the provider name
* @service_name: the service name
*
* a multilingual service name entry
*/
struct _GstMpegTsDvbMultilingualServiceNameItem
struct _GstMpegtsDvbMultilingualServiceNameItem
{
gchar *language_code;
gchar *provider_name;
gchar *service_name;
};
gboolean gst_mpegts_descriptor_parse_dvb_multilingual_service_name (const GstMpegTsDescriptor
gboolean gst_mpegts_descriptor_parse_dvb_multilingual_service_name (const GstMpegtsDescriptor
*descriptor, GPtrArray ** service_name_items);
/* GST_MTS_DESC_DVB_MULTILINGUAL_COMPONENT (0x5E) */
typedef struct _GstMpegTsDvbMultilingualComponentItem GstMpegTsDvbMultilingualComponentItem;
typedef struct _GstMpegtsDvbMultilingualComponentItem GstMpegtsDvbMultilingualComponentItem;
/**
* GstMpegTsDvbMultilingualComponentItem:
* GstMpegtsDvbMultilingualComponentItem:
* @language_code: the ISO 639 language code
* @description: the component description
*/
struct _GstMpegTsDvbMultilingualComponentItem
struct _GstMpegtsDvbMultilingualComponentItem
{
gchar *language_code;
gchar *description;
};
gboolean gst_mpegts_descriptor_parse_dvb_multilingual_component (const GstMpegTsDescriptor
gboolean gst_mpegts_descriptor_parse_dvb_multilingual_component (const GstMpegtsDescriptor
*descriptor, guint8 * component_tag, GPtrArray ** component_description_items);
/* GST_MTS_DESC_DVB_PRIVATE_DATA_SPECIFIER (0x5F) */
gboolean gst_mpegts_descriptor_parse_dvb_private_data_specifier (const GstMpegTsDescriptor
gboolean gst_mpegts_descriptor_parse_dvb_private_data_specifier (const GstMpegtsDescriptor
* descriptor, guint32 * private_data_specifier, guint8 ** private_data,
guint8 * length);
/* GST_MTS_DESC_DVB_FREQUENCY_LIST (0x62) */
gboolean gst_mpegts_descriptor_parse_dvb_frequency_list (const GstMpegTsDescriptor
gboolean gst_mpegts_descriptor_parse_dvb_frequency_list (const GstMpegtsDescriptor
* descriptor, gboolean * offset, GArray ** list);
/* GST_MTS_DESC_DVB_DATA_BROADCAST (0x64) */
typedef struct _GstMpegTsDataBroadcastDescriptor GstMpegTsDataBroadcastDescriptor;
typedef struct _GstMpegtsDataBroadcastDescriptor GstMpegtsDataBroadcastDescriptor;
/**
* GstMpegTsDataBroadcastDescriptor:
* GstMpegtsDataBroadcastDescriptor:
* @data_broadcast_id: the data broadcast id
* @component_tag: the component tag
* @selector_bytes: the selector byte field
* @language_code: language of @text
* @text: description of data broadcast
*/
struct _GstMpegTsDataBroadcastDescriptor
struct _GstMpegtsDataBroadcastDescriptor
{
guint16 data_broadcast_id;
guint8 component_tag;
@ -800,9 +800,9 @@ struct _GstMpegTsDataBroadcastDescriptor
#define GST_TYPE_MPEGTS_DVB_DATA_BROADCAST_DESCRIPTOR (gst_mpegts_dvb_data_broadcast_descriptor_get_type ())
GType gst_mpegts_dvb_data_broadcast_descriptor_get_type (void);
void gst_mpegts_dvb_data_broadcast_descriptor_free (GstMpegTsDataBroadcastDescriptor * source);
gboolean gst_mpegts_descriptor_parse_dvb_data_broadcast (const GstMpegTsDescriptor
*descriptor, GstMpegTsDataBroadcastDescriptor ** res);
void gst_mpegts_dvb_data_broadcast_descriptor_free (GstMpegtsDataBroadcastDescriptor * source);
gboolean gst_mpegts_descriptor_parse_dvb_data_broadcast (const GstMpegtsDescriptor
*descriptor, GstMpegtsDataBroadcastDescriptor ** res);
/* GST_MTS_DESC_DVB_SCRAMBLING (0x65) */
typedef enum
@ -818,51 +818,51 @@ typedef enum
/* 0x11 - 0x1f reserved for future DVB-CISSA versions */
GST_MPEGTS_DVB_SCRAMBLING_MODE_ATIS_0 = 0x70,
GST_MPEGTS_DVB_SCRAMBLING_MODE_ATIS_F = 0x7f,
} GstMpegTsDVBScramblingModeType;
} GstMpegtsDVBScramblingModeType;
gboolean gst_mpegts_descriptor_parse_dvb_scrambling (const GstMpegTsDescriptor * descriptor,
GstMpegTsDVBScramblingModeType * scrambling_mode);
gboolean gst_mpegts_descriptor_parse_dvb_scrambling (const GstMpegtsDescriptor * descriptor,
GstMpegtsDVBScramblingModeType * scrambling_mode);
/* GST_MTS_DESC_DVB_DATA_BROADCAST_ID (0x66) */
gboolean gst_mpegts_descriptor_parse_dvb_data_broadcast_id (const GstMpegTsDescriptor
gboolean gst_mpegts_descriptor_parse_dvb_data_broadcast_id (const GstMpegtsDescriptor
* descriptor, guint16 * data_broadcast_id, guint8 ** id_selector_bytes, guint8 * len);
/* GST_MTS_DESC_DVB_AC3 (0x6a) */
/* FIXME : Implement */
/* GST_MTS_DESC_EXT_DVB_T2_DELIVERY_SYSTEM (0x7F && 0x04) */
typedef struct _GstMpegTsT2DeliverySystemCellExtension GstMpegTsT2DeliverySystemCellExtension;
typedef struct _GstMpegtsT2DeliverySystemCellExtension GstMpegtsT2DeliverySystemCellExtension;
/**
* GstMpegTsT2DeliverySystemCellExtension:
* GstMpegtsT2DeliverySystemCellExtension:
* @cell_id_extension: id of the sub cell
* @transposer_frequency: centre frequency of the sub cell in Hz
*/
struct _GstMpegTsT2DeliverySystemCellExtension
struct _GstMpegtsT2DeliverySystemCellExtension
{
guint8 cell_id_extension;
guint32 transposer_frequency;
};
typedef struct _GstMpegTsT2DeliverySystemCell GstMpegTsT2DeliverySystemCell;
typedef struct _GstMpegtsT2DeliverySystemCell GstMpegtsT2DeliverySystemCell;
/**
* GstMpegTsT2DeliverySystemCell:
* GstMpegtsT2DeliverySystemCell:
* @cell_id: id of the cell
* @centre_frequencies: centre frequencies in Hz
* @sub_cells: (element-type GstMpegTsT2DeliverySystemCellExtension):
* @sub_cells: (element-type GstMpegtsT2DeliverySystemCellExtension):
*/
struct _GstMpegTsT2DeliverySystemCell
struct _GstMpegtsT2DeliverySystemCell
{
guint16 cell_id;
GArray *centre_frequencies;
GPtrArray *sub_cells;
};
typedef struct _GstMpegTsT2DeliverySystemDescriptor GstMpegTsT2DeliverySystemDescriptor;
typedef struct _GstMpegtsT2DeliverySystemDescriptor GstMpegtsT2DeliverySystemDescriptor;
/**
* GstMpegTsT2DeliverySystemDescriptor:
* GstMpegtsT2DeliverySystemDescriptor:
* @plp_id:
* @t2_system_id:
* @siso_miso:
@ -871,19 +871,19 @@ typedef struct _GstMpegTsT2DeliverySystemDescriptor GstMpegTsT2DeliverySystemDes
* @transmission_mode:
* @other_frequency:
* @tfs:
* @cells: (element-type GstMpegTsT2DeliverySystemCell):
* @cells: (element-type GstMpegtsT2DeliverySystemCell):
*
* describe DVB-T2 transmissions according to EN 302 755
*/
struct _GstMpegTsT2DeliverySystemDescriptor
struct _GstMpegtsT2DeliverySystemDescriptor
{
guint8 plp_id;
guint16 t2_system_id;
/* FIXME: */
guint8 siso_miso;
guint32 bandwidth;
GstMpegTsTerrestrialGuardInterval guard_interval;
GstMpegTsTerrestrialTransmissionMode transmission_mode;
GstMpegtsTerrestrialGuardInterval guard_interval;
GstMpegtsTerrestrialTransmissionMode transmission_mode;
gboolean other_frequency;
gboolean tfs;
GPtrArray *cells;
@ -891,9 +891,9 @@ struct _GstMpegTsT2DeliverySystemDescriptor
#define GST_TYPE_MPEGTS_T2_DELIVERY_SYSTEM_DESCRIPTOR (gst_mpegts_t2_delivery_system_descriptor_get_type ())
GType gst_mpegts_t2_delivery_system_descriptor_get_type (void);
void gst_mpegts_t2_delivery_system_descriptor_free (GstMpegTsT2DeliverySystemDescriptor * source);
gboolean gst_mpegts_descriptor_parse_dvb_t2_delivery_system (const GstMpegTsDescriptor
*descriptor, GstMpegTsT2DeliverySystemDescriptor ** res);
void gst_mpegts_t2_delivery_system_descriptor_free (GstMpegtsT2DeliverySystemDescriptor * source);
gboolean gst_mpegts_descriptor_parse_dvb_t2_delivery_system (const GstMpegtsDescriptor
*descriptor, GstMpegtsT2DeliverySystemDescriptor ** res);
G_END_DECLS

View file

@ -101,12 +101,12 @@ _parse_utc_time (guint8 * data)
}
/* Event Information Table */
static GstMpegTsEITEvent *
_gst_mpegts_eit_event_copy (GstMpegTsEITEvent * eit)
static GstMpegtsEITEvent *
_gst_mpegts_eit_event_copy (GstMpegtsEITEvent * eit)
{
GstMpegTsEITEvent *copy;
GstMpegtsEITEvent *copy;
copy = g_slice_dup (GstMpegTsEITEvent, eit);
copy = g_slice_dup (GstMpegtsEITEvent, eit);
copy->start_time = gst_date_time_ref (eit->start_time);
copy->descriptors = g_ptr_array_ref (eit->descriptors);
@ -114,49 +114,49 @@ _gst_mpegts_eit_event_copy (GstMpegTsEITEvent * eit)
}
static void
_gst_mpegts_eit_event_free (GstMpegTsEITEvent * eit)
_gst_mpegts_eit_event_free (GstMpegtsEITEvent * eit)
{
if (eit->start_time)
gst_date_time_unref (eit->start_time);
if (eit->descriptors)
g_ptr_array_unref (eit->descriptors);
g_slice_free (GstMpegTsEITEvent, eit);
g_slice_free (GstMpegtsEITEvent, eit);
}
G_DEFINE_BOXED_TYPE (GstMpegTsEITEvent, gst_mpegts_eit_event,
G_DEFINE_BOXED_TYPE (GstMpegtsEITEvent, gst_mpegts_eit_event,
(GBoxedCopyFunc) _gst_mpegts_eit_event_copy,
(GFreeFunc) _gst_mpegts_eit_event_free);
static GstMpegTsEIT *
_gst_mpegts_eit_copy (GstMpegTsEIT * eit)
static GstMpegtsEIT *
_gst_mpegts_eit_copy (GstMpegtsEIT * eit)
{
GstMpegTsEIT *copy;
GstMpegtsEIT *copy;
copy = g_slice_dup (GstMpegTsEIT, eit);
copy = g_slice_dup (GstMpegtsEIT, eit);
copy->events = g_ptr_array_ref (eit->events);
return copy;
}
static void
_gst_mpegts_eit_free (GstMpegTsEIT * eit)
_gst_mpegts_eit_free (GstMpegtsEIT * eit)
{
g_ptr_array_unref (eit->events);
g_slice_free (GstMpegTsEIT, eit);
g_slice_free (GstMpegtsEIT, eit);
}
G_DEFINE_BOXED_TYPE (GstMpegTsEIT, gst_mpegts_eit,
G_DEFINE_BOXED_TYPE (GstMpegtsEIT, gst_mpegts_eit,
(GBoxedCopyFunc) _gst_mpegts_eit_copy, (GFreeFunc) _gst_mpegts_eit_free);
static gpointer
_parse_eit (GstMpegTsSection * section)
_parse_eit (GstMpegtsSection * section)
{
GstMpegTsEIT *eit = NULL;
GstMpegtsEIT *eit = NULL;
guint i = 0, allocated_events = 12;
guint8 *data, *end, *duration_ptr;
guint16 descriptors_loop_length;
eit = g_slice_new0 (GstMpegTsEIT);
eit = g_slice_new0 (GstMpegtsEIT);
data = section->data;
end = data + section->section_length;
@ -181,7 +181,7 @@ _parse_eit (GstMpegTsSection * section)
(GDestroyNotify) _gst_mpegts_eit_event_free);
while (data < end - 4) {
GstMpegTsEITEvent *event;
GstMpegtsEITEvent *event;
/* 12 is the minimum entry size + CRC */
if (end - data < 12 + 4) {
@ -190,7 +190,7 @@ _parse_eit (GstMpegTsSection * section)
goto error;
}
event = g_slice_new0 (GstMpegTsEITEvent);
event = g_slice_new0 (GstMpegtsEITEvent);
g_ptr_array_add (eit->events, event);
event->event_id = GST_READ_UINT16_BE (data);
@ -238,15 +238,15 @@ error:
/**
* gst_mpegts_section_get_eit:
* @section: a #GstMpegTsSection of type %GST_MPEGTS_SECTION_EIT
* @section: a #GstMpegtsSection of type %GST_MPEGTS_SECTION_EIT
*
* Returns the #GstMpegTsEIT contained in the @section.
* Returns the #GstMpegtsEIT contained in the @section.
*
* Returns: The #GstMpegTsEIT contained in the section, or %NULL if an error
* Returns: The #GstMpegtsEIT contained in the section, or %NULL if an error
* happened.
*/
const GstMpegTsEIT *
gst_mpegts_section_get_eit (GstMpegTsSection * section)
const GstMpegtsEIT *
gst_mpegts_section_get_eit (GstMpegtsSection * section)
{
g_return_val_if_fail (section->section_type == GST_MPEGTS_SECTION_EIT, NULL);
g_return_val_if_fail (section->cached_parsed || section->data, NULL);
@ -255,39 +255,39 @@ gst_mpegts_section_get_eit (GstMpegTsSection * section)
section->cached_parsed = __common_section_checks (section, 18, _parse_eit,
(GDestroyNotify) _gst_mpegts_eit_free);
return (const GstMpegTsEIT *) section->cached_parsed;
return (const GstMpegtsEIT *) section->cached_parsed;
}
/* Bouquet Association Table */
static GstMpegTsBATStream *
_gst_mpegts_bat_stream_copy (GstMpegTsBATStream * bat)
static GstMpegtsBATStream *
_gst_mpegts_bat_stream_copy (GstMpegtsBATStream * bat)
{
GstMpegTsBATStream *copy;
GstMpegtsBATStream *copy;
copy = g_slice_dup (GstMpegTsBATStream, bat);
copy = g_slice_dup (GstMpegtsBATStream, bat);
copy->descriptors = g_ptr_array_ref (bat->descriptors);
return copy;
}
static void
_gst_mpegts_bat_stream_free (GstMpegTsBATStream * bat)
_gst_mpegts_bat_stream_free (GstMpegtsBATStream * bat)
{
if (bat->descriptors)
g_ptr_array_unref (bat->descriptors);
g_slice_free (GstMpegTsBATStream, bat);
g_slice_free (GstMpegtsBATStream, bat);
}
G_DEFINE_BOXED_TYPE (GstMpegTsBATStream, gst_mpegts_bat_stream,
G_DEFINE_BOXED_TYPE (GstMpegtsBATStream, gst_mpegts_bat_stream,
(GBoxedCopyFunc) _gst_mpegts_bat_stream_copy,
(GFreeFunc) _gst_mpegts_bat_stream_free);
static GstMpegTsBAT *
_gst_mpegts_bat_copy (GstMpegTsBAT * bat)
static GstMpegtsBAT *
_gst_mpegts_bat_copy (GstMpegtsBAT * bat)
{
GstMpegTsBAT *copy;
GstMpegtsBAT *copy;
copy = g_slice_dup (GstMpegTsBAT, bat);
copy = g_slice_dup (GstMpegtsBAT, bat);
copy->descriptors = g_ptr_array_ref (bat->descriptors);
copy->streams = g_ptr_array_ref (bat->streams);
@ -295,29 +295,29 @@ _gst_mpegts_bat_copy (GstMpegTsBAT * bat)
}
static void
_gst_mpegts_bat_free (GstMpegTsBAT * bat)
_gst_mpegts_bat_free (GstMpegtsBAT * bat)
{
if (bat->descriptors)
g_ptr_array_unref (bat->descriptors);
if (bat->streams)
g_ptr_array_unref (bat->streams);
g_slice_free (GstMpegTsBAT, bat);
g_slice_free (GstMpegtsBAT, bat);
}
G_DEFINE_BOXED_TYPE (GstMpegTsBAT, gst_mpegts_bat,
G_DEFINE_BOXED_TYPE (GstMpegtsBAT, gst_mpegts_bat,
(GBoxedCopyFunc) _gst_mpegts_bat_copy, (GFreeFunc) _gst_mpegts_bat_free);
static gpointer
_parse_bat (GstMpegTsSection * section)
_parse_bat (GstMpegtsSection * section)
{
GstMpegTsBAT *bat = NULL;
GstMpegtsBAT *bat = NULL;
guint i = 0, allocated_streams = 12;
guint8 *data, *end, *entry_begin;
guint16 descriptors_loop_length, transport_stream_loop_length;
GST_DEBUG ("BAT");
bat = g_slice_new0 (GstMpegTsBAT);
bat = g_slice_new0 (GstMpegtsBAT);
data = section->data;
end = data + section->section_length;
@ -355,7 +355,7 @@ _parse_bat (GstMpegTsSection * section)
/* read up to the CRC */
while (transport_stream_loop_length - 4 > 0) {
GstMpegTsBATStream *stream = g_slice_new0 (GstMpegTsBATStream);
GstMpegtsBATStream *stream = g_slice_new0 (GstMpegtsBATStream);
g_ptr_array_add (bat->streams, stream);
@ -414,15 +414,15 @@ error:
/**
* gst_mpegts_section_get_bat:
* @section: a #GstMpegTsSection of type %GST_MPEGTS_SECTION_BAT
* @section: a #GstMpegtsSection of type %GST_MPEGTS_SECTION_BAT
*
* Returns the #GstMpegTsBAT contained in the @section.
* Returns the #GstMpegtsBAT contained in the @section.
*
* Returns: The #GstMpegTsBAT contained in the section, or %NULL if an error
* Returns: The #GstMpegtsBAT contained in the section, or %NULL if an error
* happened.
*/
const GstMpegTsBAT *
gst_mpegts_section_get_bat (GstMpegTsSection * section)
const GstMpegtsBAT *
gst_mpegts_section_get_bat (GstMpegtsSection * section)
{
g_return_val_if_fail (section->section_type == GST_MPEGTS_SECTION_BAT, NULL);
g_return_val_if_fail (section->cached_parsed || section->data, NULL);
@ -432,39 +432,39 @@ gst_mpegts_section_get_bat (GstMpegTsSection * section)
__common_section_checks (section, 16, _parse_bat,
(GDestroyNotify) _gst_mpegts_bat_free);
return (const GstMpegTsBAT *) section->cached_parsed;
return (const GstMpegtsBAT *) section->cached_parsed;
}
/* Network Information Table */
static GstMpegTsNITStream *
_gst_mpegts_nit_stream_copy (GstMpegTsNITStream * nit)
static GstMpegtsNITStream *
_gst_mpegts_nit_stream_copy (GstMpegtsNITStream * nit)
{
GstMpegTsNITStream *copy;
GstMpegtsNITStream *copy;
copy = g_slice_dup (GstMpegTsNITStream, nit);
copy = g_slice_dup (GstMpegtsNITStream, nit);
copy->descriptors = g_ptr_array_ref (nit->descriptors);
return copy;
}
static void
_gst_mpegts_nit_stream_free (GstMpegTsNITStream * nit)
_gst_mpegts_nit_stream_free (GstMpegtsNITStream * nit)
{
if (nit->descriptors)
g_ptr_array_unref (nit->descriptors);
g_slice_free (GstMpegTsNITStream, nit);
g_slice_free (GstMpegtsNITStream, nit);
}
G_DEFINE_BOXED_TYPE (GstMpegTsNITStream, gst_mpegts_nit_stream,
G_DEFINE_BOXED_TYPE (GstMpegtsNITStream, gst_mpegts_nit_stream,
(GBoxedCopyFunc) _gst_mpegts_nit_stream_copy,
(GFreeFunc) _gst_mpegts_nit_stream_free);
static GstMpegTsNIT *
_gst_mpegts_nit_copy (GstMpegTsNIT * nit)
static GstMpegtsNIT *
_gst_mpegts_nit_copy (GstMpegtsNIT * nit)
{
GstMpegTsNIT *copy = g_slice_dup (GstMpegTsNIT, nit);
GstMpegtsNIT *copy = g_slice_dup (GstMpegtsNIT, nit);
copy->descriptors = g_ptr_array_ref (nit->descriptors);
copy->streams = g_ptr_array_ref (nit->streams);
@ -473,29 +473,29 @@ _gst_mpegts_nit_copy (GstMpegTsNIT * nit)
}
static void
_gst_mpegts_nit_free (GstMpegTsNIT * nit)
_gst_mpegts_nit_free (GstMpegtsNIT * nit)
{
if (nit->descriptors)
g_ptr_array_unref (nit->descriptors);
g_ptr_array_unref (nit->streams);
g_slice_free (GstMpegTsNIT, nit);
g_slice_free (GstMpegtsNIT, nit);
}
G_DEFINE_BOXED_TYPE (GstMpegTsNIT, gst_mpegts_nit,
G_DEFINE_BOXED_TYPE (GstMpegtsNIT, gst_mpegts_nit,
(GBoxedCopyFunc) _gst_mpegts_nit_copy, (GFreeFunc) _gst_mpegts_nit_free);
static gpointer
_parse_nit (GstMpegTsSection * section)
_parse_nit (GstMpegtsSection * section)
{
GstMpegTsNIT *nit = NULL;
GstMpegtsNIT *nit = NULL;
guint i = 0, allocated_streams = 12;
guint8 *data, *end, *entry_begin;
guint16 descriptors_loop_length, transport_stream_loop_length;
GST_DEBUG ("NIT");
nit = g_slice_new0 (GstMpegTsNIT);
nit = g_slice_new0 (GstMpegtsNIT);
data = section->data;
end = data + section->section_length;
@ -536,7 +536,7 @@ _parse_nit (GstMpegTsSection * section)
/* read up to the CRC */
while (transport_stream_loop_length - 4 > 0) {
GstMpegTsNITStream *stream = g_slice_new0 (GstMpegTsNITStream);
GstMpegtsNITStream *stream = g_slice_new0 (GstMpegtsNITStream);
g_ptr_array_add (nit->streams, stream);
@ -595,15 +595,15 @@ error:
/**
* gst_mpegts_section_get_nit:
* @section: a #GstMpegTsSection of type %GST_MPEGTS_SECTION_NIT
* @section: a #GstMpegtsSection of type %GST_MPEGTS_SECTION_NIT
*
* Returns the #GstMpegTsNIT contained in the @section.
* Returns the #GstMpegtsNIT contained in the @section.
*
* Returns: The #GstMpegTsNIT contained in the section, or %NULL if an error
* Returns: The #GstMpegtsNIT contained in the section, or %NULL if an error
* happened.
*/
const GstMpegTsNIT *
gst_mpegts_section_get_nit (GstMpegTsSection * section)
const GstMpegtsNIT *
gst_mpegts_section_get_nit (GstMpegtsSection * section)
{
g_return_val_if_fail (section->section_type == GST_MPEGTS_SECTION_NIT, NULL);
g_return_val_if_fail (section->cached_parsed || section->data, NULL);
@ -613,22 +613,22 @@ gst_mpegts_section_get_nit (GstMpegTsSection * section)
__common_section_checks (section, 16, _parse_nit,
(GDestroyNotify) _gst_mpegts_nit_free);
return (const GstMpegTsNIT *) section->cached_parsed;
return (const GstMpegtsNIT *) section->cached_parsed;
}
/**
* gst_mpegts_nit_new:
*
* Allocates and initializes a #GstMpegTsNIT.
* Allocates and initializes a #GstMpegtsNIT.
*
* Returns: (transfer full): A newly allocated #GstMpegTsNIT
* Returns: (transfer full): A newly allocated #GstMpegtsNIT
*/
GstMpegTsNIT *
GstMpegtsNIT *
gst_mpegts_nit_new (void)
{
GstMpegTsNIT *nit;
GstMpegtsNIT *nit;
nit = g_slice_new0 (GstMpegTsNIT);
nit = g_slice_new0 (GstMpegtsNIT);
nit->descriptors =
g_ptr_array_new_with_free_func ((GDestroyNotify) _free_descriptor);
@ -641,16 +641,16 @@ gst_mpegts_nit_new (void)
/**
* gst_mpegts_nit_stream_new:
*
* Allocates and initializes a #GstMpegTsNITStream
* Allocates and initializes a #GstMpegtsNITStream
*
* Returns: (transfer full): A newly allocated #GstMpegTsNITStream
* Returns: (transfer full): A newly allocated #GstMpegtsNITStream
*/
GstMpegTsNITStream *
GstMpegtsNITStream *
gst_mpegts_nit_stream_new (void)
{
GstMpegTsNITStream *stream;
GstMpegtsNITStream *stream;
stream = g_slice_new0 (GstMpegTsNITStream);
stream = g_slice_new0 (GstMpegtsNITStream);
stream->descriptors = g_ptr_array_new_with_free_func (
(GDestroyNotify) _free_descriptor);
@ -659,12 +659,12 @@ gst_mpegts_nit_stream_new (void)
}
static gboolean
_packetize_nit (GstMpegTsSection * section)
_packetize_nit (GstMpegtsSection * section)
{
gsize length, network_length, loop_length;
const GstMpegTsNIT *nit;
GstMpegTsNITStream *stream;
GstMpegTsDescriptor *descriptor;
const GstMpegtsNIT *nit;
GstMpegtsNITStream *stream;
GstMpegtsDescriptor *descriptor;
guint i, j;
guint8 *data, *pos;
@ -754,16 +754,16 @@ _packetize_nit (GstMpegTsSection * section)
/**
* gst_mpegts_section_from_nit:
* @nit: (transfer full): a #GstMpegTsNIT to create the #GstMpegTsSection from
* @nit: (transfer full): a #GstMpegtsNIT to create the #GstMpegtsSection from
*
* Ownership of @nit is taken. The data in @nit is managed by the #GstMpegTsSection
* Ownership of @nit is taken. The data in @nit is managed by the #GstMpegtsSection
*
* Returns: (transfer full): the #GstMpegTsSection
* Returns: (transfer full): the #GstMpegtsSection
*/
GstMpegTsSection *
gst_mpegts_section_from_nit (GstMpegTsNIT * nit)
GstMpegtsSection *
gst_mpegts_section_from_nit (GstMpegtsNIT * nit)
{
GstMpegTsSection *section;
GstMpegtsSection *section;
g_return_val_if_fail (nit != NULL, NULL);
@ -784,10 +784,10 @@ gst_mpegts_section_from_nit (GstMpegTsNIT * nit)
/* Service Description Table (SDT) */
static GstMpegTsSDTService *
_gst_mpegts_sdt_service_copy (GstMpegTsSDTService * sdt)
static GstMpegtsSDTService *
_gst_mpegts_sdt_service_copy (GstMpegtsSDTService * sdt)
{
GstMpegTsSDTService *copy = g_slice_dup (GstMpegTsSDTService, sdt);
GstMpegtsSDTService *copy = g_slice_dup (GstMpegtsSDTService, sdt);
copy->descriptors = g_ptr_array_ref (sdt->descriptors);
@ -795,21 +795,21 @@ _gst_mpegts_sdt_service_copy (GstMpegTsSDTService * sdt)
}
static void
_gst_mpegts_sdt_service_free (GstMpegTsSDTService * sdt)
_gst_mpegts_sdt_service_free (GstMpegtsSDTService * sdt)
{
if (sdt->descriptors)
g_ptr_array_unref (sdt->descriptors);
g_slice_free (GstMpegTsSDTService, sdt);
g_slice_free (GstMpegtsSDTService, sdt);
}
G_DEFINE_BOXED_TYPE (GstMpegTsSDTService, gst_mpegts_sdt_service,
G_DEFINE_BOXED_TYPE (GstMpegtsSDTService, gst_mpegts_sdt_service,
(GBoxedCopyFunc) _gst_mpegts_sdt_service_copy,
(GFreeFunc) _gst_mpegts_sdt_service_free);
static GstMpegTsSDT *
_gst_mpegts_sdt_copy (GstMpegTsSDT * sdt)
static GstMpegtsSDT *
_gst_mpegts_sdt_copy (GstMpegtsSDT * sdt)
{
GstMpegTsSDT *copy = g_slice_dup (GstMpegTsSDT, sdt);
GstMpegtsSDT *copy = g_slice_dup (GstMpegtsSDT, sdt);
copy->services = g_ptr_array_ref (sdt->services);
@ -817,20 +817,20 @@ _gst_mpegts_sdt_copy (GstMpegTsSDT * sdt)
}
static void
_gst_mpegts_sdt_free (GstMpegTsSDT * sdt)
_gst_mpegts_sdt_free (GstMpegtsSDT * sdt)
{
g_ptr_array_unref (sdt->services);
g_slice_free (GstMpegTsSDT, sdt);
g_slice_free (GstMpegtsSDT, sdt);
}
G_DEFINE_BOXED_TYPE (GstMpegTsSDT, gst_mpegts_sdt,
G_DEFINE_BOXED_TYPE (GstMpegtsSDT, gst_mpegts_sdt,
(GBoxedCopyFunc) _gst_mpegts_sdt_copy, (GFreeFunc) _gst_mpegts_sdt_free);
static gpointer
_parse_sdt (GstMpegTsSection * section)
_parse_sdt (GstMpegtsSection * section)
{
GstMpegTsSDT *sdt = NULL;
GstMpegtsSDT *sdt = NULL;
guint i = 0, allocated_services = 8;
guint8 *data, *end, *entry_begin;
guint tmp;
@ -839,7 +839,7 @@ _parse_sdt (GstMpegTsSection * section)
GST_DEBUG ("SDT");
sdt = g_slice_new0 (GstMpegTsSDT);
sdt = g_slice_new0 (GstMpegtsSDT);
data = section->data;
end = data + section->section_length;
@ -864,7 +864,7 @@ _parse_sdt (GstMpegTsSection * section)
/* read up to the CRC */
while (sdt_info_length - 4 > 0) {
GstMpegTsSDTService *service = g_slice_new0 (GstMpegTsSDTService);
GstMpegtsSDTService *service = g_slice_new0 (GstMpegtsSDTService);
g_ptr_array_add (sdt->services, service);
entry_begin = data;
@ -923,15 +923,15 @@ error:
/**
* gst_mpegts_section_get_sdt:
* @section: a #GstMpegTsSection of type %GST_MPEGTS_SECTION_SDT
* @section: a #GstMpegtsSection of type %GST_MPEGTS_SECTION_SDT
*
* Returns the #GstMpegTsSDT contained in the @section.
* Returns the #GstMpegtsSDT contained in the @section.
*
* Returns: The #GstMpegTsSDT contained in the section, or %NULL if an error
* Returns: The #GstMpegtsSDT contained in the section, or %NULL if an error
* happened.
*/
const GstMpegTsSDT *
gst_mpegts_section_get_sdt (GstMpegTsSection * section)
const GstMpegtsSDT *
gst_mpegts_section_get_sdt (GstMpegtsSection * section)
{
g_return_val_if_fail (section->section_type == GST_MPEGTS_SECTION_SDT, NULL);
g_return_val_if_fail (section->cached_parsed || section->data, NULL);
@ -941,22 +941,22 @@ gst_mpegts_section_get_sdt (GstMpegTsSection * section)
__common_section_checks (section, 15, _parse_sdt,
(GDestroyNotify) _gst_mpegts_sdt_free);
return (const GstMpegTsSDT *) section->cached_parsed;
return (const GstMpegtsSDT *) section->cached_parsed;
}
/**
* gst_mpegts_sdt_new:
*
* Allocates and initializes a #GstMpegTsSDT.
* Allocates and initializes a #GstMpegtsSDT.
*
* Returns: (transfer full): A newly allocated #GstMpegTsSDT
* Returns: (transfer full): A newly allocated #GstMpegtsSDT
*/
GstMpegTsSDT *
GstMpegtsSDT *
gst_mpegts_sdt_new (void)
{
GstMpegTsSDT *sdt;
GstMpegtsSDT *sdt;
sdt = g_slice_new0 (GstMpegTsSDT);
sdt = g_slice_new0 (GstMpegtsSDT);
sdt->services = g_ptr_array_new_with_free_func ((GDestroyNotify)
_gst_mpegts_sdt_service_free);
@ -967,16 +967,16 @@ gst_mpegts_sdt_new (void)
/**
* gst_mpegts_sdt_service_new:
*
* Allocates and initializes a #GstMpegTsSDTService.
* Allocates and initializes a #GstMpegtsSDTService.
*
* Returns: (transfer full): A newly allocated #GstMpegTsSDTService
* Returns: (transfer full): A newly allocated #GstMpegtsSDTService
*/
GstMpegTsSDTService *
GstMpegtsSDTService *
gst_mpegts_sdt_service_new (void)
{
GstMpegTsSDTService *service;
GstMpegtsSDTService *service;
service = g_slice_new0 (GstMpegTsSDTService);
service = g_slice_new0 (GstMpegtsSDTService);
service->descriptors = g_ptr_array_new_with_free_func ((GDestroyNotify)
_free_descriptor);
@ -985,12 +985,12 @@ gst_mpegts_sdt_service_new (void)
}
static gboolean
_packetize_sdt (GstMpegTsSection * section)
_packetize_sdt (GstMpegtsSection * section)
{
gsize length, service_length;
const GstMpegTsSDT *sdt;
GstMpegTsSDTService *service;
GstMpegTsDescriptor *descriptor;
const GstMpegtsSDT *sdt;
GstMpegtsSDTService *service;
GstMpegtsDescriptor *descriptor;
guint i, j;
guint8 *data, *pos;
@ -1075,16 +1075,16 @@ _packetize_sdt (GstMpegTsSection * section)
/**
* gst_mpegts_section_from_sdt:
* @sdt: (transfer full): a #GstMpegTsSDT to create the #GstMpegTsSection from
* @sdt: (transfer full): a #GstMpegtsSDT to create the #GstMpegtsSection from
*
* Ownership of @sdt is taken. The data in @sdt is managed by the #GstMpegTsSection
* Ownership of @sdt is taken. The data in @sdt is managed by the #GstMpegtsSection
*
* Returns: (transfer full): the #GstMpegTsSection
* Returns: (transfer full): the #GstMpegtsSection
*/
GstMpegTsSection *
gst_mpegts_section_from_sdt (GstMpegTsSDT * sdt)
GstMpegtsSection *
gst_mpegts_section_from_sdt (GstMpegtsSDT * sdt)
{
GstMpegTsSection *section;
GstMpegtsSection *section;
g_return_val_if_fail (sdt != NULL, NULL);
@ -1105,14 +1105,14 @@ gst_mpegts_section_from_sdt (GstMpegTsSDT * sdt)
/* Time and Date Table (TDT) */
static gpointer
_parse_tdt (GstMpegTsSection * section)
_parse_tdt (GstMpegtsSection * section)
{
return (gpointer) _parse_utc_time (section->data + 3);
}
/**
* gst_mpegts_section_get_tdt:
* @section: a #GstMpegTsSection of type %GST_MPEGTS_SECTION_TDT
* @section: a #GstMpegtsSection of type %GST_MPEGTS_SECTION_TDT
*
* Returns the #GstDateTime of the TDT
*
@ -1120,7 +1120,7 @@ _parse_tdt (GstMpegTsSection * section)
* if an error happened. Release with #gst_date_time_unref when done.
*/
GstDateTime *
gst_mpegts_section_get_tdt (GstMpegTsSection * section)
gst_mpegts_section_get_tdt (GstMpegtsSection * section)
{
g_return_val_if_fail (section->section_type == GST_MPEGTS_SECTION_TDT, NULL);
g_return_val_if_fail (section->cached_parsed || section->data, NULL);
@ -1137,10 +1137,10 @@ gst_mpegts_section_get_tdt (GstMpegTsSection * section)
/* Time Offset Table (TOT) */
static GstMpegTsTOT *
_gst_mpegts_tot_copy (GstMpegTsTOT * tot)
static GstMpegtsTOT *
_gst_mpegts_tot_copy (GstMpegtsTOT * tot)
{
GstMpegTsTOT *copy = g_slice_dup (GstMpegTsTOT, tot);
GstMpegtsTOT *copy = g_slice_dup (GstMpegtsTOT, tot);
if (tot->utc_time)
copy->utc_time = gst_date_time_ref (tot->utc_time);
@ -1150,28 +1150,28 @@ _gst_mpegts_tot_copy (GstMpegTsTOT * tot)
}
static void
_gst_mpegts_tot_free (GstMpegTsTOT * tot)
_gst_mpegts_tot_free (GstMpegtsTOT * tot)
{
if (tot->utc_time)
gst_date_time_unref (tot->utc_time);
if (tot->descriptors)
g_ptr_array_unref (tot->descriptors);
g_slice_free (GstMpegTsTOT, tot);
g_slice_free (GstMpegtsTOT, tot);
}
G_DEFINE_BOXED_TYPE (GstMpegTsTOT, gst_mpegts_tot,
G_DEFINE_BOXED_TYPE (GstMpegtsTOT, gst_mpegts_tot,
(GBoxedCopyFunc) _gst_mpegts_tot_copy, (GFreeFunc) _gst_mpegts_tot_free);
static gpointer
_parse_tot (GstMpegTsSection * section)
_parse_tot (GstMpegtsSection * section)
{
guint8 *data;
GstMpegTsTOT *tot;
GstMpegtsTOT *tot;
guint16 desc_len;
GST_DEBUG ("TOT");
tot = g_slice_new0 (GstMpegTsTOT);
tot = g_slice_new0 (GstMpegtsTOT);
tot->utc_time = _parse_utc_time (section->data + 3);
@ -1187,15 +1187,15 @@ _parse_tot (GstMpegTsSection * section)
/**
* gst_mpegts_section_get_tot:
* @section: a #GstMpegTsSection of type %GST_MPEGTS_SECTION_TOT
* @section: a #GstMpegtsSection of type %GST_MPEGTS_SECTION_TOT
*
* Returns the #GstMpegTsTOT contained in the @section.
* Returns the #GstMpegtsTOT contained in the @section.
*
* Returns: The #GstMpegTsTOT contained in the section, or %NULL if an error
* Returns: The #GstMpegtsTOT contained in the section, or %NULL if an error
* happened.
*/
const GstMpegTsTOT *
gst_mpegts_section_get_tot (GstMpegTsSection * section)
const GstMpegtsTOT *
gst_mpegts_section_get_tot (GstMpegtsSection * section)
{
g_return_val_if_fail (section->section_type == GST_MPEGTS_SECTION_TOT, NULL);
g_return_val_if_fail (section->cached_parsed || section->data, NULL);
@ -1205,5 +1205,5 @@ gst_mpegts_section_get_tot (GstMpegTsSection * section)
__common_section_checks (section, 14, _parse_tot,
(GDestroyNotify) _gst_mpegts_tot_free);
return (const GstMpegTsTOT *) section->cached_parsed;
return (const GstMpegtsTOT *) section->cached_parsed;
}

View file

@ -31,13 +31,13 @@
G_BEGIN_DECLS
/**
* GstMpegTsSectionDVBTableID:
* GstMpegtsSectionDVBTableID:
*
* Values for a #GstMpegTsSection table_id.
* Values for a #GstMpegtsSection table_id.
*
* These are the registered DVB table_id variants.
*
* see also: #GstMpegTsSectionTableID
* see also: #GstMpegtsSectionTableID
*/
typedef enum {
/* EN 300 468 (DVB) v 1.12.1 */
@ -98,10 +98,10 @@ typedef enum {
GST_MTS_TABLE_ID_TIM = 0xB0,
GST_MTS_TABLE_ID_LL_FEC_PARITY_DATA_TABLE = 0xB1
} GstMpegTsSectionDVBTableID;
} GstMpegtsSectionDVBTableID;
/**
* GstMpegTsRunningStatus:
* GstMpegtsRunningStatus:
*
* Running status of a service.
*
@ -115,26 +115,26 @@ typedef enum
GST_MPEGTS_RUNNING_STATUS_PAUSING,
GST_MPEGTS_RUNNING_STATUS_RUNNING,
GST_MPEGTS_RUNNING_STATUS_OFF_AIR
} GstMpegTsRunningStatus;
} GstMpegtsRunningStatus;
/* NIT */
typedef struct _GstMpegTsNITStream GstMpegTsNITStream;
typedef struct _GstMpegTsNIT GstMpegTsNIT;
typedef struct _GstMpegtsNITStream GstMpegtsNITStream;
typedef struct _GstMpegtsNIT GstMpegtsNIT;
#define GST_TYPE_MPEGTS_NIT (gst_mpegts_nit_get_type())
#define GST_TYPE_MPEGTS_NIT_STREAM (gst_mpegts_nit_stream_get_type())
/**
* GstMpegTsNITStream:
* GstMpegtsNITStream:
* @transport_stream_id:
* @original_network_id:
* @descriptors: (element-type GstMpegTsDescriptor):
* @descriptors: (element-type GstMpegtsDescriptor):
*
*/
struct _GstMpegTsNITStream
struct _GstMpegtsNITStream
{
guint16 transport_stream_id;
guint16 original_network_id;
@ -143,16 +143,16 @@ struct _GstMpegTsNITStream
};
/**
* GstMpegTsNIT:
* GstMpegtsNIT:
* @actual_network: Whether this NIT corresponds to the actual stream
* @network_id: ID of the network that this NIT describes
* @descriptors: (element-type GstMpegTsDescriptor): the global descriptors
* @streams: (element-type GstMpegTsNITStream): the streams
* @descriptors: (element-type GstMpegtsDescriptor): the global descriptors
* @streams: (element-type GstMpegtsNITStream): the streams
*
* Network Information Table (ISO/IEC 13818-1 / EN 300 468)
*
*/
struct _GstMpegTsNIT
struct _GstMpegtsNIT
{
gboolean actual_network;
guint16 network_id;
@ -165,22 +165,22 @@ struct _GstMpegTsNIT
GType gst_mpegts_nit_get_type (void);
GType gst_mpegts_nit_stream_get_type (void);
const GstMpegTsNIT *gst_mpegts_section_get_nit (GstMpegTsSection *section);
GstMpegTsSection *gst_mpegts_section_from_nit (GstMpegTsNIT *nit);
const GstMpegtsNIT *gst_mpegts_section_get_nit (GstMpegtsSection *section);
GstMpegtsSection *gst_mpegts_section_from_nit (GstMpegtsNIT *nit);
GstMpegTsNIT *gst_mpegts_nit_new (void);
GstMpegTsNITStream *gst_mpegts_nit_stream_new (void);
GstMpegtsNIT *gst_mpegts_nit_new (void);
GstMpegtsNITStream *gst_mpegts_nit_stream_new (void);
/* BAT */
typedef struct _GstMpegTsBATStream GstMpegTsBATStream;
typedef struct _GstMpegTsBAT GstMpegTsBAT;
typedef struct _GstMpegtsBATStream GstMpegtsBATStream;
typedef struct _GstMpegtsBAT GstMpegtsBAT;
#define GST_TYPE_MPEGTS_BAT (gst_mpegts_bat_get_type())
#define GST_TYPE_MPEGTS_BAT_STREAM (gst_mpegts_bat_get_type())
struct _GstMpegTsBATStream
struct _GstMpegtsBATStream
{
guint16 transport_stream_id;
guint16 original_network_id;
@ -189,13 +189,13 @@ struct _GstMpegTsBATStream
};
/**
* GstMpegTsBAT:
* @descriptors: (element-type GstMpegTsDescriptor):
* @streams: (element-type GstMpegTsBATStream):
* GstMpegtsBAT:
* @descriptors: (element-type GstMpegtsDescriptor):
* @streams: (element-type GstMpegtsBATStream):
*
* DVB Bouquet Association Table (EN 300 468)
*/
struct _GstMpegTsBAT
struct _GstMpegtsBAT
{
GPtrArray *descriptors;
@ -205,48 +205,48 @@ struct _GstMpegTsBAT
GType gst_mpegts_bat_get_type (void);
GType gst_mpegts_bat_stream_get_type (void);
const GstMpegTsBAT *gst_mpegts_section_get_bat (GstMpegTsSection *section);
const GstMpegtsBAT *gst_mpegts_section_get_bat (GstMpegtsSection *section);
/* SDT */
#define GST_TYPE_MPEGTS_SDT (gst_mpegts_sdt_get_type())
#define GST_TYPE_MPEGTS_SDT_SERVICE (gst_mpegts_sdt_service_get_type())
typedef struct _GstMpegTsSDTService GstMpegTsSDTService;
typedef struct _GstMpegTsSDT GstMpegTsSDT;
typedef struct _GstMpegtsSDTService GstMpegtsSDTService;
typedef struct _GstMpegtsSDT GstMpegtsSDT;
/**
* GstMpegTsSDTService:
* GstMpegtsSDTService:
* @service_id: The program number this table belongs to
* @EIT_schedule_flag: EIT schedule information is present in this transport stream
* @EIT_present_following_flag: EIT present/following information is present in this transport stream
* @running_status: Status of this service
* @free_CA_mode: True if one or more streams is controlled by a CA system
* @descriptors: (element-type GstMpegTsDescriptor): List of descriptors
* @descriptors: (element-type GstMpegtsDescriptor): List of descriptors
*
*/
struct _GstMpegTsSDTService
struct _GstMpegtsSDTService
{
guint16 service_id;
gboolean EIT_schedule_flag;
gboolean EIT_present_following_flag;
GstMpegTsRunningStatus running_status;
GstMpegtsRunningStatus running_status;
gboolean free_CA_mode;
GPtrArray *descriptors;
};
/**
* GstMpegTsSDT:
* GstMpegtsSDT:
* @original_network_id: Network ID of the originating delivery system
* @actual_ts: True if the table describes this transport stream
* @transport_stream_id: ID of this transport stream
* @services: (element-type GstMpegTsSDTService): List of services
* @services: (element-type GstMpegtsSDTService): List of services
*
* Service Description Table (EN 300 468)
*
*/
struct _GstMpegTsSDT
struct _GstMpegtsSDT
{
guint16 original_network_id;
gboolean actual_ts;
@ -258,48 +258,48 @@ struct _GstMpegTsSDT
GType gst_mpegts_sdt_get_type (void);
GType gst_mpegts_sdt_service_get_type (void);
const GstMpegTsSDT *gst_mpegts_section_get_sdt (GstMpegTsSection *section);
const GstMpegtsSDT *gst_mpegts_section_get_sdt (GstMpegtsSection *section);
GstMpegTsSection *gst_mpegts_section_from_sdt (GstMpegTsSDT * sdt);
GstMpegtsSection *gst_mpegts_section_from_sdt (GstMpegtsSDT * sdt);
GstMpegTsSDT *gst_mpegts_sdt_new (void);
GstMpegTsSDTService *gst_mpegts_sdt_service_new (void);
GstMpegtsSDT *gst_mpegts_sdt_new (void);
GstMpegtsSDTService *gst_mpegts_sdt_service_new (void);
/* EIT */
#define GST_TYPE_MPEGTS_EIT (gst_mpegts_eit_get_type())
#define GST_TYPE_MPEGTS_EIT_EVENT (gst_mpegts_eit_event_get_type())
typedef struct _GstMpegTsEITEvent GstMpegTsEITEvent;
typedef struct _GstMpegTsEIT GstMpegTsEIT;
typedef struct _GstMpegtsEITEvent GstMpegtsEITEvent;
typedef struct _GstMpegtsEIT GstMpegtsEIT;
/**
* GstMpegTsEITEvent:
* @descriptors: (element-type GstMpegTsDescriptor): List of descriptors
* GstMpegtsEITEvent:
* @descriptors: (element-type GstMpegtsDescriptor): List of descriptors
*
* Event from a @GstMpegTsEIT
* Event from a @GstMpegtsEIT
*/
struct _GstMpegTsEITEvent
struct _GstMpegtsEITEvent
{
guint16 event_id;
GstDateTime *start_time;
guint32 duration;
GstMpegTsRunningStatus running_status;
GstMpegtsRunningStatus running_status;
gboolean free_CA_mode;
GPtrArray *descriptors;
};
/**
* GstMpegTsEIT:
* @events: (element-type GstMpegTsEITEvent): List of events
* GstMpegtsEIT:
* @events: (element-type GstMpegtsEITEvent): List of events
*
* Event Information Table (EN 300 468)
*
*/
struct _GstMpegTsEIT
struct _GstMpegtsEIT
{
guint16 transport_stream_id;
guint16 original_network_id;
@ -315,23 +315,23 @@ struct _GstMpegTsEIT
GType gst_mpegts_eit_get_type (void);
GType gst_mpegts_eit_event_get_type (void);
const GstMpegTsEIT *gst_mpegts_section_get_eit (GstMpegTsSection *section);
const GstMpegtsEIT *gst_mpegts_section_get_eit (GstMpegtsSection *section);
/* TDT */
GstDateTime *gst_mpegts_section_get_tdt (GstMpegTsSection *section);
GstDateTime *gst_mpegts_section_get_tdt (GstMpegtsSection *section);
/* TOT */
typedef struct _GstMpegTsTOT GstMpegTsTOT;
typedef struct _GstMpegtsTOT GstMpegtsTOT;
#define GST_TYPE_MPEGTS_TOT (gst_mpegts_tot_get_type())
/**
* GstMpegTsTOT:
* @descriptors: (element-type GstMpegTsDescriptor): List of descriptors
* GstMpegtsTOT:
* @descriptors: (element-type GstMpegtsDescriptor): List of descriptors
*
* Time Offset Table (EN 300 468)
*
*/
struct _GstMpegTsTOT
struct _GstMpegtsTOT
{
GstDateTime *utc_time;
@ -339,7 +339,7 @@ struct _GstMpegTsTOT
};
GType gst_mpegts_tot_get_type (void);
const GstMpegTsTOT *gst_mpegts_section_get_tot (GstMpegTsSection *section);
const GstMpegtsTOT *gst_mpegts_section_get_tot (GstMpegtsSection *section);
G_END_DECLS

View file

@ -31,17 +31,17 @@
G_BEGIN_DECLS
/**
* GstMpegTsScteStreamType:
* @GST_MPEG_TS_STREAM_TYPE_SCTE_SUBTITLING: SCTE-27 Subtitling
* @GST_MPEG_TS_STREAM_TYPE_SCTE_ISOCH_DATA: SCTE-19 Isochronous data
* @GST_MPEG_TS_STREAM_TYPE_SCTE_DST_NRT: SCTE-07 Data Service or
* GstMpegtsScteStreamType:
* @GST_MPEGTS_STREAM_TYPE_SCTE_SUBTITLING: SCTE-27 Subtitling
* @GST_MPEGTS_STREAM_TYPE_SCTE_ISOCH_DATA: SCTE-19 Isochronous data
* @GST_MPEGTS_STREAM_TYPE_SCTE_DST_NRT: SCTE-07 Data Service or
* Network Resource Table
* @GST_MPEG_TS_STREAM_TYPE_SCTE_DSMCC_DCB: Type B - DSM-CC Data Carousel
* @GST_MPEGTS_STREAM_TYPE_SCTE_DSMCC_DCB: Type B - DSM-CC Data Carousel
* [IEC 13818-6])
* @GST_MPEG_TS_STREAM_TYPE_SCTE_SIGNALING: Enhanced Television Application
* @GST_MPEGTS_STREAM_TYPE_SCTE_SIGNALING: Enhanced Television Application
* Signaling (OC-SP-ETV-AM1.0.1-120614)
* @GST_MPEG_TS_STREAM_TYPE_SCTE_SYNC_DATA: SCTE-07 Synchronous data
* @GST_MPEG_TS_STREAM_TYPE_SCTE_ASYNC_DATA: SCTE-53 Asynchronous data
* @GST_MPEGTS_STREAM_TYPE_SCTE_SYNC_DATA: SCTE-07 Synchronous data
* @GST_MPEGTS_STREAM_TYPE_SCTE_ASYNC_DATA: SCTE-53 Asynchronous data
*
* Type of mpeg-ts streams for SCTE
*
@ -49,23 +49,23 @@ G_BEGIN_DECLS
typedef enum {
/* 0x01 - 0x82 : defined in other specs */
GST_MPEG_TS_STREAM_TYPE_SCTE_SUBTITLING = 0x82, /* Subtitling data */
GST_MPEG_TS_STREAM_TYPE_SCTE_ISOCH_DATA = 0x83, /* Isochronous data */
GST_MPEGTS_STREAM_TYPE_SCTE_SUBTITLING = 0x82, /* Subtitling data */
GST_MPEGTS_STREAM_TYPE_SCTE_ISOCH_DATA = 0x83, /* Isochronous data */
/* 0x84 - 0x94 : defined in other specs */
GST_MPEG_TS_STREAM_TYPE_SCTE_DST_NRT = 0x95, /* DST / NRT data */
GST_MPEGTS_STREAM_TYPE_SCTE_DST_NRT = 0x95, /* DST / NRT data */
/* 0x96 - 0xaf : defined in other specs */
GST_MPEG_TS_STREAM_TYPE_SCTE_DSMCC_DCB = 0xb0, /* Data Carousel Type B */
GST_MPEGTS_STREAM_TYPE_SCTE_DSMCC_DCB = 0xb0, /* Data Carousel Type B */
/* 0xb1 - 0xbf : User Private (or defined in other specs) */
GST_MPEG_TS_STREAM_TYPE_SCTE_SIGNALING = 0xc0, /* EBIF Signaling */
GST_MPEG_TS_STREAM_TYPE_SCTE_SYNC_DATA = 0xc2, /* Synchronous data */
GST_MPEG_TS_STREAM_TYPE_SCTE_ASYNC_DATA = 0xc3, /* Asynchronous data */
GST_MPEGTS_STREAM_TYPE_SCTE_SIGNALING = 0xc0, /* EBIF Signaling */
GST_MPEGTS_STREAM_TYPE_SCTE_SYNC_DATA = 0xc2, /* Synchronous data */
GST_MPEGTS_STREAM_TYPE_SCTE_ASYNC_DATA = 0xc3, /* Asynchronous data */
/* 0xc4 - 0xff : User Private (or defined in other specs) */
} GstMpegTsScteStreamType;
} GstMpegtsScteStreamType;
/**
* GstMpegTsSectionSCTETableID:
* GstMpegtsSectionSCTETableID:
* @GST_MTS_TABLE_ID_SCTE_EAS: SCTE-18 Emergency Alert System
* @GST_MTS_TABLE_ID_SCTE_EBIF: CL-SP-ETV-AM 1.0.1 EBIF message
* @GST_MTS_TABLE_ID_SCTE_EISS: CL-SP-ETV-AM 1.0.1 EBIF Int. Signaling Sect.
@ -76,11 +76,11 @@ typedef enum {
* Splice Event notifications to remain associated with the program and pass
* through multiplexers.
*
* Values for a #GstMpegTsSection table_id.
* Values for a #GstMpegtsSection table_id.
*
* These are the registered SCTE table_id variants.
*
* see also: #GstMpegTsSectionTableID
* see also: #GstMpegtsSectionTableID
*/
typedef enum {
@ -95,7 +95,7 @@ typedef enum {
/* 0xe5 - 0xfb : defined in other specs */
GST_MTS_TABLE_ID_SCTE_SPLICE = 0xfc, /* splice information table */
} GstMpegTsSectionSCTETableID;
} GstMpegtsSectionSCTETableID;
G_END_DECLS

View file

@ -34,19 +34,19 @@ G_GNUC_INTERNAL guint32 _calc_crc32 (const guint8 *data, guint datalen);
G_GNUC_INTERNAL gchar *get_encoding_and_convert (const gchar *text, guint length);
G_GNUC_INTERNAL gchar *convert_lang_code (guint8 * data);
G_GNUC_INTERNAL guint8 *dvb_text_from_utf8 (const gchar * text, gsize *out_size);
G_GNUC_INTERNAL void _free_descriptor (GstMpegTsDescriptor *descriptor);
G_GNUC_INTERNAL GstMpegTsDescriptor *_new_descriptor (guint8 tag, guint8 length);
G_GNUC_INTERNAL GstMpegTsDescriptor *_new_descriptor_with_extension (guint8 tag,
G_GNUC_INTERNAL void _free_descriptor (GstMpegtsDescriptor *descriptor);
G_GNUC_INTERNAL GstMpegtsDescriptor *_new_descriptor (guint8 tag, guint8 length);
G_GNUC_INTERNAL GstMpegtsDescriptor *_new_descriptor_with_extension (guint8 tag,
guint8 tag_extension, guint8 length);
G_GNUC_INTERNAL void _packetize_descriptor_array (GPtrArray * array,
guint8 ** out_data);
G_GNUC_INTERNAL GstMpegTsSection *_gst_mpegts_section_init (guint16 pid, guint8 table_id);
G_GNUC_INTERNAL void _packetize_common_section (GstMpegTsSection * section, gsize length);
G_GNUC_INTERNAL GstMpegtsSection *_gst_mpegts_section_init (guint16 pid, guint8 table_id);
G_GNUC_INTERNAL void _packetize_common_section (GstMpegtsSection * section, gsize length);
typedef gpointer (*GstMpegTsParseFunc) (GstMpegTsSection *section);
G_GNUC_INTERNAL gpointer __common_section_checks (GstMpegTsSection *section,
typedef gpointer (*GstMpegtsParseFunc) (GstMpegtsSection *section);
G_GNUC_INTERNAL gpointer __common_section_checks (GstMpegtsSection *section,
guint minsize,
GstMpegTsParseFunc parsefunc,
GstMpegtsParseFunc parsefunc,
GDestroyNotify destroynotify);
#define __common_desc_check_base(desc, tagtype, retval) \

View file

@ -282,7 +282,7 @@ _encode_control_codes (gchar * text, gsize length, gboolean is_multibyte)
* @out_size: (out): the byte length of the new text
*
* Converts UTF-8 strings to text characters compliant with EN 300 468.
* The converted text can be used directly in DVB #GstMpegTsDescriptor
* The converted text can be used directly in DVB #GstMpegtsDescriptor
*
* The function will try different character maps until the string is
* completely converted.
@ -638,7 +638,7 @@ _packetize_descriptor_array (GPtrArray * array, guint8 ** out_data)
{
guint i;
guint8 header_size;
GstMpegTsDescriptor *descriptor;
GstMpegtsDescriptor *descriptor;
g_return_if_fail (out_data != NULL);
g_return_if_fail (*out_data != NULL);
@ -659,13 +659,13 @@ _packetize_descriptor_array (GPtrArray * array, guint8 ** out_data)
}
}
GstMpegTsDescriptor *
GstMpegtsDescriptor *
_new_descriptor (guint8 tag, guint8 length)
{
GstMpegTsDescriptor *descriptor;
GstMpegtsDescriptor *descriptor;
guint8 *data;
descriptor = g_slice_new (GstMpegTsDescriptor);
descriptor = g_slice_new (GstMpegtsDescriptor);
descriptor->tag = tag;
descriptor->tag_extension = 0;
@ -681,13 +681,13 @@ _new_descriptor (guint8 tag, guint8 length)
return descriptor;
}
GstMpegTsDescriptor *
GstMpegtsDescriptor *
_new_descriptor_with_extension (guint8 tag, guint8 tag_extension, guint8 length)
{
GstMpegTsDescriptor *descriptor;
GstMpegtsDescriptor *descriptor;
guint8 *data;
descriptor = g_slice_new (GstMpegTsDescriptor);
descriptor = g_slice_new (GstMpegtsDescriptor);
descriptor->tag = tag;
descriptor->tag_extension = tag_extension;
@ -704,25 +704,25 @@ _new_descriptor_with_extension (guint8 tag, guint8 tag_extension, guint8 length)
return descriptor;
}
static GstMpegTsDescriptor *
_copy_descriptor (GstMpegTsDescriptor * desc)
static GstMpegtsDescriptor *
_copy_descriptor (GstMpegtsDescriptor * desc)
{
GstMpegTsDescriptor *copy;
GstMpegtsDescriptor *copy;
copy = g_slice_dup (GstMpegTsDescriptor, desc);
copy = g_slice_dup (GstMpegtsDescriptor, desc);
copy->data = g_memdup (desc->data, desc->length + 2);
return copy;
}
void
_free_descriptor (GstMpegTsDescriptor * desc)
_free_descriptor (GstMpegtsDescriptor * desc)
{
g_free ((gpointer) desc->data);
g_slice_free (GstMpegTsDescriptor, desc);
g_slice_free (GstMpegtsDescriptor, desc);
}
G_DEFINE_BOXED_TYPE (GstMpegTsDescriptor, gst_mpegts_descriptor,
G_DEFINE_BOXED_TYPE (GstMpegtsDescriptor, gst_mpegts_descriptor,
(GBoxedCopyFunc) _copy_descriptor, (GBoxedFreeFunc) _free_descriptor);
/**
@ -735,7 +735,7 @@ G_DEFINE_BOXED_TYPE (GstMpegTsDescriptor, gst_mpegts_descriptor,
*
* Note: The data provided in @buffer will not be copied.
*
* Returns: (transfer full) (element-type GstMpegTsDescriptor): an
* Returns: (transfer full) (element-type GstMpegtsDescriptor): an
* array of the parsed descriptors or %NULL if there was an error.
* Release with #g_array_unref when done with it.
*/
@ -783,7 +783,7 @@ gst_mpegts_parse_descriptors (guint8 * buffer, gsize buf_len)
data = buffer;
for (i = 0; i < nb_desc; i++) {
GstMpegTsDescriptor *desc = g_slice_new0 (GstMpegTsDescriptor);
GstMpegtsDescriptor *desc = g_slice_new0 (GstMpegtsDescriptor);
desc->data = data;
desc->tag = *data++;
@ -809,8 +809,8 @@ gst_mpegts_parse_descriptors (guint8 * buffer, gsize buf_len)
/**
* gst_mpegts_find_descriptor:
* @descriptors: (element-type GstMpegTsDescriptor) (transfer none): an array
* of #GstMpegTsDescriptor
* @descriptors: (element-type GstMpegtsDescriptor) (transfer none): an array
* of #GstMpegtsDescriptor
* @tag: the tag to look for
*
* Finds the first descriptor of type @tag in the array.
@ -820,7 +820,7 @@ gst_mpegts_parse_descriptors (guint8 * buffer, gsize buf_len)
*
* Returns: (transfer none): the first descriptor matchin @tag, else %NULL.
*/
const GstMpegTsDescriptor *
const GstMpegtsDescriptor *
gst_mpegts_find_descriptor (GPtrArray * descriptors, guint8 tag)
{
guint i, nb_desc;
@ -829,9 +829,9 @@ gst_mpegts_find_descriptor (GPtrArray * descriptors, guint8 tag)
nb_desc = descriptors->len;
for (i = 0; i < nb_desc; i++) {
GstMpegTsDescriptor *desc = g_ptr_array_index (descriptors, i);
GstMpegtsDescriptor *desc = g_ptr_array_index (descriptors, i);
if (desc->tag == tag)
return (const GstMpegTsDescriptor *) desc;
return (const GstMpegtsDescriptor *) desc;
}
return NULL;
}
@ -843,15 +843,15 @@ gst_mpegts_find_descriptor (GPtrArray * descriptors, guint8 tag)
* @additional_info: (transfer none) (allow-none): pointer to optional additional info
* @additional_info_length: length of the optional @additional_info
*
* Creates a %GST_MTS_DESC_REGISTRATION #GstMpegTsDescriptor
* Creates a %GST_MTS_DESC_REGISTRATION #GstMpegtsDescriptor
*
* Return: #GstMpegTsDescriptor, %NULL on failure
* Return: #GstMpegtsDescriptor, %NULL on failure
*/
GstMpegTsDescriptor *
GstMpegtsDescriptor *
gst_mpegts_descriptor_from_registration (const gchar * format_identifier,
guint8 * additional_info, gsize additional_info_length)
{
GstMpegTsDescriptor *descriptor;
GstMpegtsDescriptor *descriptor;
g_return_val_if_fail (format_identifier != NULL, NULL);
@ -866,14 +866,14 @@ gst_mpegts_descriptor_from_registration (const gchar * format_identifier,
}
/* GST_MTS_DESC_ISO_639_LANGUAGE (0x0A) */
static GstMpegTsISO639LanguageDescriptor *
_gst_mpegts_iso_639_language_descriptor_copy (GstMpegTsISO639LanguageDescriptor
static GstMpegtsISO639LanguageDescriptor *
_gst_mpegts_iso_639_language_descriptor_copy (GstMpegtsISO639LanguageDescriptor
* source)
{
GstMpegTsISO639LanguageDescriptor *copy;
GstMpegtsISO639LanguageDescriptor *copy;
guint i;
copy = g_slice_dup (GstMpegTsISO639LanguageDescriptor, source);
copy = g_slice_dup (GstMpegtsISO639LanguageDescriptor, source);
for (i = 0; i < source->nb_language; i++) {
copy->language[i] = g_strdup (source->language[i]);
@ -883,7 +883,7 @@ _gst_mpegts_iso_639_language_descriptor_copy (GstMpegTsISO639LanguageDescriptor
}
void
gst_mpegts_iso_639_language_descriptor_free (GstMpegTsISO639LanguageDescriptor
gst_mpegts_iso_639_language_descriptor_free (GstMpegtsISO639LanguageDescriptor
* desc)
{
guint i;
@ -891,18 +891,18 @@ gst_mpegts_iso_639_language_descriptor_free (GstMpegTsISO639LanguageDescriptor
for (i = 0; i < desc->nb_language; i++) {
g_free (desc->language[i]);
}
g_slice_free (GstMpegTsISO639LanguageDescriptor, desc);
g_slice_free (GstMpegtsISO639LanguageDescriptor, desc);
}
G_DEFINE_BOXED_TYPE (GstMpegTsISO639LanguageDescriptor,
G_DEFINE_BOXED_TYPE (GstMpegtsISO639LanguageDescriptor,
gst_mpegts_iso_639_language,
(GBoxedCopyFunc) _gst_mpegts_iso_639_language_descriptor_copy,
(GFreeFunc) gst_mpegts_iso_639_language_descriptor_free);
/**
* gst_mpegts_descriptor_parse_iso_639_language:
* @descriptor: a %GST_MTS_DESC_ISO_639_LANGUAGE #GstMpegTsDescriptor
* @res: (out) (transfer full): the #GstMpegTsISO639LanguageDescriptor to fill
* @descriptor: a %GST_MTS_DESC_ISO_639_LANGUAGE #GstMpegtsDescriptor
* @res: (out) (transfer full): the #GstMpegtsISO639LanguageDescriptor to fill
*
* Extracts the iso 639-2 language information from @descriptor.
*
@ -912,12 +912,12 @@ G_DEFINE_BOXED_TYPE (GstMpegTsISO639LanguageDescriptor,
* Returns: %TRUE if parsing succeeded, else %FALSE.
*/
gboolean
gst_mpegts_descriptor_parse_iso_639_language (const GstMpegTsDescriptor *
descriptor, GstMpegTsISO639LanguageDescriptor ** desc)
gst_mpegts_descriptor_parse_iso_639_language (const GstMpegtsDescriptor *
descriptor, GstMpegtsISO639LanguageDescriptor ** desc)
{
guint i;
guint8 *data;
GstMpegTsISO639LanguageDescriptor *res;
GstMpegtsISO639LanguageDescriptor *res;
g_return_val_if_fail (descriptor != NULL && desc != NULL, FALSE);
/* This descriptor can be empty, no size check needed */
@ -925,7 +925,7 @@ gst_mpegts_descriptor_parse_iso_639_language (const GstMpegTsDescriptor *
data = (guint8 *) descriptor->data + 2;
res = g_slice_new0 (GstMpegTsISO639LanguageDescriptor);
res = g_slice_new0 (GstMpegtsISO639LanguageDescriptor);
/* Each language is 3 + 1 bytes */
res->nb_language = descriptor->length / 4;
@ -943,10 +943,10 @@ gst_mpegts_descriptor_parse_iso_639_language (const GstMpegTsDescriptor *
/**
* gst_mpegts_descriptor_parse_iso_639_language_idx:
* @descriptor: a %GST_MTS_DESC_ISO_639_LANGUAGE #GstMpegTsDescriptor
* @descriptor: a %GST_MTS_DESC_ISO_639_LANGUAGE #GstMpegtsDescriptor
* @idx: Table id of the language to parse
* @lang: (out) (transfer full): 4-byte gchar array to hold the language code
* @audio_type: (out) (transfer none) (allow-none): the #GstMpegTsIso639AudioType to set
* @audio_type: (out) (transfer none) (allow-none): the #GstMpegtsIso639AudioType to set
*
* Extracts the iso 639-2 language information from specific table id in @descriptor.
*
@ -956,8 +956,8 @@ gst_mpegts_descriptor_parse_iso_639_language (const GstMpegTsDescriptor *
* Returns: %TRUE if parsing succeeded, else %FALSE.
*/
gboolean
gst_mpegts_descriptor_parse_iso_639_language_idx (const GstMpegTsDescriptor *
descriptor, guint idx, gchar ** lang, GstMpegTsIso639AudioType * audio_type)
gst_mpegts_descriptor_parse_iso_639_language_idx (const GstMpegtsDescriptor *
descriptor, guint idx, gchar ** lang, GstMpegtsIso639AudioType * audio_type)
{
guint8 *data;
@ -982,12 +982,12 @@ gst_mpegts_descriptor_parse_iso_639_language_idx (const GstMpegTsDescriptor *
/**
* gst_mpegts_descriptor_parse_iso_639_language_nb:
* @descriptor: a %GST_MTS_DESC_ISO_639_LANGUAGE #GstMpegTsDescriptor
* @descriptor: a %GST_MTS_DESC_ISO_639_LANGUAGE #GstMpegtsDescriptor
*
* Returns: The number of languages in @descriptor
*/
guint
gst_mpegts_descriptor_parse_iso_639_language_nb (const GstMpegTsDescriptor *
gst_mpegts_descriptor_parse_iso_639_language_nb (const GstMpegtsDescriptor *
descriptor)
{
g_return_val_if_fail (descriptor != NULL, 0);
@ -999,16 +999,16 @@ gst_mpegts_descriptor_parse_iso_639_language_nb (const GstMpegTsDescriptor *
/**
* gst_mpegts_descriptor_parse_logical_channel:
* @descriptor: a %GST_MTS_DESC_DTG_LOGICAL_CHANNEL #GstMpegTsDescriptor
* @res: (out) (transfer none): the #GstMpegTsLogicalChannelDescriptor to fill
* @descriptor: a %GST_MTS_DESC_DTG_LOGICAL_CHANNEL #GstMpegtsDescriptor
* @res: (out) (transfer none): the #GstMpegtsLogicalChannelDescriptor to fill
*
* Extracts the logical channels from @descriptor.
*
* Returns: %TRUE if parsing succeeded, else %FALSE.
*/
gboolean
gst_mpegts_descriptor_parse_logical_channel (const GstMpegTsDescriptor *
descriptor, GstMpegTsLogicalChannelDescriptor * res)
gst_mpegts_descriptor_parse_logical_channel (const GstMpegtsDescriptor *
descriptor, GstMpegtsLogicalChannelDescriptor * res)
{
guint i;
guint8 *data;
@ -1039,15 +1039,15 @@ gst_mpegts_descriptor_parse_logical_channel (const GstMpegTsDescriptor *
* @data: (transfer none): descriptor data (after tag and length field)
* @length: length of @data
*
* Creates a #GstMpegTsDescriptor with custom @tag and @data
* Creates a #GstMpegtsDescriptor with custom @tag and @data
*
* Returns: #GstMpegTsDescriptor
* Returns: #GstMpegtsDescriptor
*/
GstMpegTsDescriptor *
GstMpegtsDescriptor *
gst_mpegts_descriptor_from_custom (guint8 tag, const guint8 * data,
gsize length)
{
GstMpegTsDescriptor *descriptor;
GstMpegtsDescriptor *descriptor;
descriptor = _new_descriptor (tag, length);

View file

@ -62,9 +62,9 @@ G_BEGIN_DECLS
*/
/**
* GstMpegTsDescriptorType:
* GstMpegtsDescriptorType:
*
* The type of #GstMpegTsDescriptor
* The type of #GstMpegtsDescriptor
*
* These values correspond to the registered descriptor type from
* the base MPEG-TS specifications (ITU H.222.0 | ISO/IEC 13818-1).
@ -135,12 +135,12 @@ typedef enum {
GST_MTS_DESC_STEREOSCOPIC_VIDEO_INFO = 0x36,
/* 55-63 ITU-T Rec. H.222.0 | ISO/IEC 13818-1 Reserved */
} GstMpegTsDescriptorType;
} GstMpegtsDescriptorType;
/**
* GstMpegTsMiscDescriptorType:
* GstMpegtsMiscDescriptorType:
*
* The type of #GstMpegTsDescriptor
* The type of #GstMpegtsDescriptor
*
* These values correspond to miscellaneous descriptor types that are
* not yet identified from known specifications.
@ -149,10 +149,10 @@ typedef enum {
/* 0x80 - 0xFE are user defined */
GST_MTS_DESC_AC3_AUDIO_STREAM = 0x81,
GST_MTS_DESC_DTG_LOGICAL_CHANNEL = 0x83, /* from DTG D-Book */
} GstMpegTsMiscDescriptorType;
} GstMpegtsMiscDescriptorType;
/**
* GstMpegTsATSCDescriptorType:
* GstMpegtsATSCDescriptorType:
*
* These values correspond to the registered descriptor type from
* the various ATSC specifications.
@ -186,10 +186,10 @@ typedef enum {
GST_MTS_DESC_ATSC_MODULE_LINK = 0xB4,
GST_MTS_DESC_ATSC_CRC32 = 0xB5,
GST_MTS_DESC_ATSC_GROUP_LINK = 0xB8,
} GstMpegTsATSCDescriptorType;
} GstMpegtsATSCDescriptorType;
/**
* GstMpegTsISDBDescriptorType:
* GstMpegtsISDBDescriptorType:
*
* These values correspond to the registered descriptor type from
* the various ISDB specifications.
@ -232,15 +232,15 @@ typedef enum {
/* ... */
GST_MTS_DESC_ISDB_SERVICE_GROUP = 0xe0
} GstMpegTsISDBDescriptorType;
} GstMpegtsISDBDescriptorType;
typedef struct _GstMpegTsDescriptor GstMpegTsDescriptor;
typedef struct _GstMpegtsDescriptor GstMpegtsDescriptor;
#define GST_TYPE_MPEGTS_DESCRIPTOR (gst_mpegts_descriptor_get_type())
GType gst_mpegts_descriptor_get_type (void);
/**
* GstMpegTsDescriptor:
* GstMpegtsDescriptor:
* @tag: the type of descriptor
* @tag_extension: the extended type (if @descriptor_tag is 0x7f)
* @length: the length of the descriptor content (excluding tag/length field)
@ -249,7 +249,7 @@ GType gst_mpegts_descriptor_get_type (void);
*
* Mpeg-TS descriptor (ISO/IEC 13818-1).
*/
struct _GstMpegTsDescriptor
struct _GstMpegtsDescriptor
{
guint8 tag;
guint8 tag_extension;
@ -259,18 +259,18 @@ struct _GstMpegTsDescriptor
GPtrArray *gst_mpegts_parse_descriptors (guint8 * buffer, gsize buf_len);
const GstMpegTsDescriptor * gst_mpegts_find_descriptor (GPtrArray *descriptors,
const GstMpegtsDescriptor * gst_mpegts_find_descriptor (GPtrArray *descriptors,
guint8 tag);
/* GST_MTS_DESC_REGISTRATION (0x05) */
GstMpegTsDescriptor *gst_mpegts_descriptor_from_registration (
GstMpegtsDescriptor *gst_mpegts_descriptor_from_registration (
const gchar *format_identifier,
guint8 *additional_info, gsize additional_info_length);
/* GST_MTS_DESC_ISO_639_LANGUAGE (0x0A) */
/**
* GstMpegTsISO639AudioType:
* GstMpegtsISO639AudioType:
*
* Type of audio streams
*
@ -281,52 +281,52 @@ typedef enum {
GST_MPEGTS_AUDIO_TYPE_CLEAN_EFFECTS,
GST_MPEGTS_AUDIO_TYPE_HEARING_IMPAIRED,
GST_MPEGTS_AUDIO_TYPE_VISUAL_IMPAIRED_COMMENTARY
} GstMpegTsIso639AudioType;
} GstMpegtsIso639AudioType;
typedef struct _GstMpegTsISO639LanguageDescriptor GstMpegTsISO639LanguageDescriptor;
struct _GstMpegTsISO639LanguageDescriptor
typedef struct _GstMpegtsISO639LanguageDescriptor GstMpegtsISO639LanguageDescriptor;
struct _GstMpegtsISO639LanguageDescriptor
{
guint nb_language;
gchar *language[64];
GstMpegTsIso639AudioType audio_type[64];
GstMpegtsIso639AudioType audio_type[64];
};
#define GST_TYPE_MPEGTS_ISO_639_LANGUAGE (gst_mpegts_iso_639_language_get_type ())
GType gst_mpegts_iso_639_language_get_type (void);
void gst_mpegts_iso_639_language_descriptor_free (GstMpegTsISO639LanguageDescriptor * desc);
gboolean gst_mpegts_descriptor_parse_iso_639_language (const GstMpegTsDescriptor *descriptor,
GstMpegTsISO639LanguageDescriptor **res);
gboolean gst_mpegts_descriptor_parse_iso_639_language_idx (const GstMpegTsDescriptor *descriptor,
void gst_mpegts_iso_639_language_descriptor_free (GstMpegtsISO639LanguageDescriptor * desc);
gboolean gst_mpegts_descriptor_parse_iso_639_language (const GstMpegtsDescriptor *descriptor,
GstMpegtsISO639LanguageDescriptor **res);
gboolean gst_mpegts_descriptor_parse_iso_639_language_idx (const GstMpegtsDescriptor *descriptor,
guint idx, gchar **lang,
GstMpegTsIso639AudioType *audio_type);
guint gst_mpegts_descriptor_parse_iso_639_language_nb (const GstMpegTsDescriptor *descriptor);
GstMpegtsIso639AudioType *audio_type);
guint gst_mpegts_descriptor_parse_iso_639_language_nb (const GstMpegtsDescriptor *descriptor);
/* GST_MTS_DESC_DTG_LOGICAL_CHANNEL (0x83) */
typedef struct _GstMpegTsLogicalChannelDescriptor GstMpegTsLogicalChannelDescriptor;
typedef struct _GstMpegTsLogicalChannel GstMpegTsLogicalChannel;
typedef struct _GstMpegtsLogicalChannelDescriptor GstMpegtsLogicalChannelDescriptor;
typedef struct _GstMpegtsLogicalChannel GstMpegtsLogicalChannel;
struct _GstMpegTsLogicalChannel
struct _GstMpegtsLogicalChannel
{
guint16 service_id;
gboolean visible_service;
guint16 logical_channel_number;
};
struct _GstMpegTsLogicalChannelDescriptor
struct _GstMpegtsLogicalChannelDescriptor
{
guint nb_channels;
GstMpegTsLogicalChannel channels[64];
GstMpegtsLogicalChannel channels[64];
};
/* FIXME : Maybe make two methods. One for getting the number of channels,
* and the other for getting the content for one channel ? */
gboolean
gst_mpegts_descriptor_parse_logical_channel (const GstMpegTsDescriptor *descriptor,
GstMpegTsLogicalChannelDescriptor *res);
gst_mpegts_descriptor_parse_logical_channel (const GstMpegtsDescriptor *descriptor,
GstMpegtsLogicalChannelDescriptor *res);
GstMpegTsDescriptor *
GstMpegtsDescriptor *
gst_mpegts_descriptor_from_custom (guint8 tag, const guint8 *data, gsize length);
G_END_DECLS

View file

@ -79,7 +79,7 @@ static GQuark QUARK_SECTION;
static GType _gst_mpegts_section_type = 0;
#define MPEG_TYPE_TS_SECTION (_gst_mpegts_section_type)
GST_DEFINE_MINI_OBJECT_TYPE (GstMpegTsSection, gst_mpegts_section);
GST_DEFINE_MINI_OBJECT_TYPE (GstMpegtsSection, gst_mpegts_section);
static const guint32 crc_tab[256] = {
0x00000000, 0x04c11db7, 0x09823b6e, 0x0d4326d9, 0x130476dc, 0x17c56b6b,
@ -141,8 +141,8 @@ _calc_crc32 (const guint8 * data, guint datalen)
}
gpointer
__common_section_checks (GstMpegTsSection * section, guint min_size,
GstMpegTsParseFunc parsefunc, GDestroyNotify destroynotify)
__common_section_checks (GstMpegtsSection * section, guint min_size,
GstMpegtsParseFunc parsefunc, GDestroyNotify destroynotify)
{
gpointer res;
@ -177,7 +177,7 @@ __common_section_checks (GstMpegTsSection * section, guint min_size,
* GENERIC MPEG-TS SECTION
*/
static void
_gst_mpegts_section_free (GstMpegTsSection * section)
_gst_mpegts_section_free (GstMpegtsSection * section)
{
GST_DEBUG ("Freeing section type %d", section->section_type);
@ -187,15 +187,15 @@ _gst_mpegts_section_free (GstMpegTsSection * section)
if (section->data)
g_free (section->data);
g_slice_free (GstMpegTsSection, section);
g_slice_free (GstMpegtsSection, section);
}
static GstMpegTsSection *
_gst_mpegts_section_copy (GstMpegTsSection * section)
static GstMpegtsSection *
_gst_mpegts_section_copy (GstMpegtsSection * section)
{
GstMpegTsSection *copy;
GstMpegtsSection *copy;
copy = g_slice_new0 (GstMpegTsSection);
copy = g_slice_new0 (GstMpegtsSection);
gst_mini_object_init (GST_MINI_OBJECT_CAST (copy), 0, MPEG_TYPE_TS_SECTION,
(GstMiniObjectCopyFunction) _gst_mpegts_section_copy, NULL,
(GstMiniObjectFreeFunction) _gst_mpegts_section_free);
@ -223,14 +223,14 @@ _gst_mpegts_section_copy (GstMpegTsSection * section)
/**
* gst_mpegts_section_get_data:
* @section: a #GstMpegTsSection
* @section: a #GstMpegtsSection
*
* Gets the original unparsed section data.
*
* Returns: (transfer full): The original unparsed section data.
*/
GBytes *
gst_mpegts_section_get_data (GstMpegTsSection * section)
gst_mpegts_section_get_data (GstMpegtsSection * section)
{
return g_bytes_new (section->data, section->section_length);
}
@ -239,15 +239,15 @@ gst_mpegts_section_get_data (GstMpegTsSection * section)
* gst_message_parse_mpegts_section:
* @message: a #GstMessage
*
* Returns the #GstMpegTsSection contained in a message.
* Returns the #GstMpegtsSection contained in a message.
*
* Returns: (transfer full): the contained #GstMpegTsSection, or %NULL.
* Returns: (transfer full): the contained #GstMpegtsSection, or %NULL.
*/
GstMpegTsSection *
GstMpegtsSection *
gst_message_parse_mpegts_section (GstMessage * message)
{
const GstStructure *st;
GstMpegTsSection *section;
GstMpegtsSection *section;
if (message->type != GST_MESSAGE_ELEMENT)
return NULL;
@ -262,7 +262,7 @@ gst_message_parse_mpegts_section (GstMessage * message)
}
static GstStructure *
_mpegts_section_get_structure (GstMpegTsSection * section)
_mpegts_section_get_structure (GstMpegtsSection * section)
{
GstStructure *st;
GQuark quark;
@ -296,7 +296,7 @@ _mpegts_section_get_structure (GstMpegTsSection * section)
quark = QUARK_TOT;
break;
default:
GST_DEBUG ("Creating structure for unknown GstMpegTsSection");
GST_DEBUG ("Creating structure for unknown GstMpegtsSection");
quark = QUARK_SECTION;
break;
}
@ -310,15 +310,15 @@ _mpegts_section_get_structure (GstMpegTsSection * section)
/**
* gst_message_new_mpegts_section:
* @parent: (transfer none): The creator of the message
* @section: (transfer none): The #GstMpegTsSection to put in a message
* @section: (transfer none): The #GstMpegtsSection to put in a message
*
* Creates a new #GstMessage for a @GstMpegTsSection.
* Creates a new #GstMessage for a @GstMpegtsSection.
*
* Returns: (transfer full): The new #GstMessage to be posted, or %NULL if the
* section is not valid.
*/
GstMessage *
gst_message_new_mpegts_section (GstObject * parent, GstMpegTsSection * section)
gst_message_new_mpegts_section (GstObject * parent, GstMpegtsSection * section)
{
GstMessage *msg;
GstStructure *st;
@ -331,7 +331,7 @@ gst_message_new_mpegts_section (GstObject * parent, GstMpegTsSection * section)
}
static GstEvent *
_mpegts_section_get_event (GstMpegTsSection * section)
_mpegts_section_get_event (GstMpegtsSection * section)
{
GstStructure *structure;
GstEvent *event;
@ -345,17 +345,17 @@ _mpegts_section_get_event (GstMpegTsSection * section)
/**
* gst_event_parse_mpegts_section:
* @event: (transfer none): #GstEvent containing a #GstMpegTsSection
* @event: (transfer none): #GstEvent containing a #GstMpegtsSection
*
* Extracts the #GstMpegTsSection contained in the @event #GstEvent
* Extracts the #GstMpegtsSection contained in the @event #GstEvent
*
* Returns: (transfer full): The extracted #GstMpegTsSection
* Returns: (transfer full): The extracted #GstMpegtsSection
*/
GstMpegTsSection *
GstMpegtsSection *
gst_event_parse_mpegts_section (GstEvent * event)
{
const GstStructure *structure;
GstMpegTsSection *section;
GstMpegtsSection *section;
structure = gst_event_get_structure (event);
@ -369,15 +369,15 @@ gst_event_parse_mpegts_section (GstEvent * event)
/**
* gst_mpegts_section_send_event:
* @element: (transfer none): The #GstElement to send to section event to
* @section: (transfer none): The #GstMpegTsSection to put in the event
* @section: (transfer none): The #GstMpegtsSection to put in the event
*
* Creates a custom #GstEvent with a @GstMpegTsSection.
* Creates a custom #GstEvent with a @GstMpegtsSection.
* The #GstEvent is sent to the @element #GstElement.
*
* Returns: %TRUE if the event is sent
*/
gboolean
gst_mpegts_section_send_event (GstMpegTsSection * section, GstElement * element)
gst_mpegts_section_send_event (GstMpegtsSection * section, GstElement * element)
{
GstEvent *event;
@ -394,29 +394,29 @@ gst_mpegts_section_send_event (GstMpegTsSection * section, GstElement * element)
return TRUE;
}
static GstMpegTsPatProgram *
_mpegts_pat_program_copy (GstMpegTsPatProgram * orig)
static GstMpegtsPatProgram *
_mpegts_pat_program_copy (GstMpegtsPatProgram * orig)
{
return g_slice_dup (GstMpegTsPatProgram, orig);
return g_slice_dup (GstMpegtsPatProgram, orig);
}
static void
_mpegts_pat_program_free (GstMpegTsPatProgram * orig)
_mpegts_pat_program_free (GstMpegtsPatProgram * orig)
{
g_slice_free (GstMpegTsPatProgram, orig);
g_slice_free (GstMpegtsPatProgram, orig);
}
G_DEFINE_BOXED_TYPE (GstMpegTsPatProgram, gst_mpegts_pat_program,
G_DEFINE_BOXED_TYPE (GstMpegtsPatProgram, gst_mpegts_pat_program,
(GBoxedCopyFunc) _mpegts_pat_program_copy,
(GFreeFunc) _mpegts_pat_program_free);
/* Program Association Table */
static gpointer
_parse_pat (GstMpegTsSection * section)
_parse_pat (GstMpegtsSection * section)
{
GPtrArray *pat;
guint16 i = 0, nb_programs;
GstMpegTsPatProgram *program;
GstMpegtsPatProgram *program;
guint8 *data, *end;
/* Skip already parsed data */
@ -432,7 +432,7 @@ _parse_pat (GstMpegTsSection * section)
(GDestroyNotify) _mpegts_pat_program_free);
while (data < end - 4) {
program = g_slice_new0 (GstMpegTsPatProgram);
program = g_slice_new0 (GstMpegtsPatProgram);
program->program_number = GST_READ_UINT16_BE (data);
data += 2;
@ -457,21 +457,21 @@ _parse_pat (GstMpegTsSection * section)
/**
* gst_mpegts_section_get_pat:
* @section: a #GstMpegTsSection of type %GST_MPEGTS_SECTION_PAT
* @section: a #GstMpegtsSection of type %GST_MPEGTS_SECTION_PAT
*
* Parses a Program Association Table (ITU H.222.0, ISO/IEC 13818-1).
*
* Returns the array of #GstMpegTsPatProgram contained in the section.
* Returns the array of #GstMpegtsPatProgram contained in the section.
*
* Note: The PAT "transport_id" field corresponds to the "subtable_extension"
* field of the provided @section.
*
* Returns: (transfer container) (element-type GstMpegTsPatProgram): The
* #GstMpegTsPatProgram contained in the section, or %NULL if an error
* Returns: (transfer container) (element-type GstMpegtsPatProgram): The
* #GstMpegtsPatProgram contained in the section, or %NULL if an error
* happened. Release with #g_ptr_array_unref when done.
*/
GPtrArray *
gst_mpegts_section_get_pat (GstMpegTsSection * section)
gst_mpegts_section_get_pat (GstMpegtsSection * section)
{
g_return_val_if_fail (section->section_type == GST_MPEGTS_SECTION_PAT, NULL);
g_return_val_if_fail (section->cached_parsed || section->data, NULL);
@ -489,9 +489,9 @@ gst_mpegts_section_get_pat (GstMpegTsSection * section)
/**
* gst_mpegts_pat_new:
*
* Allocates a new #GPtrArray for #GstMpegTsPatProgram
* Allocates a new #GPtrArray for #GstMpegtsPatProgram
*
* Returns: (transfer full) (element-type GstMpegTsPatProgram): A newly allocated #GPtrArray
* Returns: (transfer full) (element-type GstMpegtsPatProgram): A newly allocated #GPtrArray
*/
GPtrArray *
gst_mpegts_pat_new (void)
@ -507,22 +507,22 @@ gst_mpegts_pat_new (void)
/**
* gst_mpegts_pat_program_new:
*
* Allocates a new #GstMpegTsPatProgram.
* Allocates a new #GstMpegtsPatProgram.
*
* Returns: (transfer full): A newly allocated #GstMpegTsPatProgram
* Returns: (transfer full): A newly allocated #GstMpegtsPatProgram
*/
GstMpegTsPatProgram *
GstMpegtsPatProgram *
gst_mpegts_pat_program_new (void)
{
GstMpegTsPatProgram *program;
GstMpegtsPatProgram *program;
program = g_slice_new0 (GstMpegTsPatProgram);
program = g_slice_new0 (GstMpegtsPatProgram);
return program;
}
static gboolean
_packetize_pat (GstMpegTsSection * section)
_packetize_pat (GstMpegtsSection * section)
{
GPtrArray *programs;
guint8 *data;
@ -546,7 +546,7 @@ _packetize_pat (GstMpegTsSection * section)
data = section->data + 8;
for (i = 0; i < programs->len; i++) {
GstMpegTsPatProgram *program;
GstMpegtsPatProgram *program;
program = g_ptr_array_index (programs, i);
@ -567,17 +567,17 @@ _packetize_pat (GstMpegTsSection * section)
/**
* gst_mpegts_section_from_pat:
* @programs: (transfer full) (element-type GstMpegTsPatProgram): an array of #GstMpegTsPatProgram
* @programs: (transfer full) (element-type GstMpegtsPatProgram): an array of #GstMpegtsPatProgram
* @ts_id: Transport stream ID of the PAT
*
* Creates a PAT #GstMpegTsSection from the @programs array of #GstMpegTsPatPrograms
* Creates a PAT #GstMpegtsSection from the @programs array of #GstMpegtsPatPrograms
*
* Returns: (transfer full): a #GstMpegTsSection
* Returns: (transfer full): a #GstMpegtsSection
*/
GstMpegTsSection *
GstMpegtsSection *
gst_mpegts_section_from_pat (GPtrArray * programs, guint16 ts_id)
{
GstMpegTsSection *section;
GstMpegtsSection *section;
section = _gst_mpegts_section_init (0x00,
GST_MTS_TABLE_ID_PROGRAM_ASSOCIATION);
@ -592,35 +592,35 @@ gst_mpegts_section_from_pat (GPtrArray * programs, guint16 ts_id)
/* Program Map Table */
static GstMpegTsPMTStream *
_gst_mpegts_pmt_stream_copy (GstMpegTsPMTStream * pmt)
static GstMpegtsPMTStream *
_gst_mpegts_pmt_stream_copy (GstMpegtsPMTStream * pmt)
{
GstMpegTsPMTStream *copy;
GstMpegtsPMTStream *copy;
copy = g_slice_dup (GstMpegTsPMTStream, pmt);
copy = g_slice_dup (GstMpegtsPMTStream, pmt);
copy->descriptors = g_ptr_array_ref (pmt->descriptors);
return copy;
}
static void
_gst_mpegts_pmt_stream_free (GstMpegTsPMTStream * pmt)
_gst_mpegts_pmt_stream_free (GstMpegtsPMTStream * pmt)
{
if (pmt->descriptors)
g_ptr_array_unref (pmt->descriptors);
g_slice_free (GstMpegTsPMTStream, pmt);
g_slice_free (GstMpegtsPMTStream, pmt);
}
G_DEFINE_BOXED_TYPE (GstMpegTsPMTStream, gst_mpegts_pmt_stream,
G_DEFINE_BOXED_TYPE (GstMpegtsPMTStream, gst_mpegts_pmt_stream,
(GBoxedCopyFunc) _gst_mpegts_pmt_stream_copy,
(GFreeFunc) _gst_mpegts_pmt_stream_free);
static GstMpegTsPMT *
_gst_mpegts_pmt_copy (GstMpegTsPMT * pmt)
static GstMpegtsPMT *
_gst_mpegts_pmt_copy (GstMpegtsPMT * pmt)
{
GstMpegTsPMT *copy;
GstMpegtsPMT *copy;
copy = g_slice_dup (GstMpegTsPMT, pmt);
copy = g_slice_dup (GstMpegtsPMT, pmt);
if (pmt->descriptors)
copy->descriptors = g_ptr_array_ref (pmt->descriptors);
copy->streams = g_ptr_array_ref (pmt->streams);
@ -629,28 +629,28 @@ _gst_mpegts_pmt_copy (GstMpegTsPMT * pmt)
}
static void
_gst_mpegts_pmt_free (GstMpegTsPMT * pmt)
_gst_mpegts_pmt_free (GstMpegtsPMT * pmt)
{
if (pmt->descriptors)
g_ptr_array_unref (pmt->descriptors);
g_ptr_array_unref (pmt->streams);
g_slice_free (GstMpegTsPMT, pmt);
g_slice_free (GstMpegtsPMT, pmt);
}
G_DEFINE_BOXED_TYPE (GstMpegTsPMT, gst_mpegts_pmt,
G_DEFINE_BOXED_TYPE (GstMpegtsPMT, gst_mpegts_pmt,
(GBoxedCopyFunc) _gst_mpegts_pmt_copy, (GFreeFunc) _gst_mpegts_pmt_free);
static gpointer
_parse_pmt (GstMpegTsSection * section)
_parse_pmt (GstMpegtsSection * section)
{
GstMpegTsPMT *pmt = NULL;
GstMpegtsPMT *pmt = NULL;
guint i = 0, allocated_streams = 8;
guint8 *data, *end;
guint program_info_length;
guint stream_info_length;
pmt = g_slice_new0 (GstMpegTsPMT);
pmt = g_slice_new0 (GstMpegtsPMT);
data = section->data;
end = data + section->section_length;
@ -687,7 +687,7 @@ _parse_pmt (GstMpegTsSection * section)
/* parse entries, cycle until there's space for another entry (at least 5
* bytes) plus the CRC */
while (data <= end - 4 - 5) {
GstMpegTsPMTStream *stream = g_slice_new0 (GstMpegTsPMTStream);
GstMpegtsPMTStream *stream = g_slice_new0 (GstMpegtsPMTStream);
g_ptr_array_add (pmt->streams, stream);
@ -728,15 +728,15 @@ error:
/**
* gst_mpegts_section_get_pmt:
* @section: a #GstMpegTsSection of type %GST_MPEGTS_SECTION_PMT
* @section: a #GstMpegtsSection of type %GST_MPEGTS_SECTION_PMT
*
* Returns the #GstMpegTsPMT contained in the @section.
* Returns the #GstMpegtsPMT contained in the @section.
*
* Returns: The #GstMpegTsPMT contained in the section, or %NULL if an error
* Returns: The #GstMpegtsPMT contained in the section, or %NULL if an error
* happened.
*/
const GstMpegTsPMT *
gst_mpegts_section_get_pmt (GstMpegTsSection * section)
const GstMpegtsPMT *
gst_mpegts_section_get_pmt (GstMpegtsSection * section)
{
g_return_val_if_fail (section->section_type == GST_MPEGTS_SECTION_PMT, NULL);
g_return_val_if_fail (section->cached_parsed || section->data, NULL);
@ -746,22 +746,22 @@ gst_mpegts_section_get_pmt (GstMpegTsSection * section)
__common_section_checks (section, 16, _parse_pmt,
(GDestroyNotify) _gst_mpegts_pmt_free);
return (const GstMpegTsPMT *) section->cached_parsed;
return (const GstMpegtsPMT *) section->cached_parsed;
}
/**
* gst_mpegts_pmt_new:
*
* Allocates and initializes a new #GstMpegTsPMT.
* Allocates and initializes a new #GstMpegtsPMT.
*
* Returns: (transfer full): #GstMpegTsPMT
* Returns: (transfer full): #GstMpegtsPMT
*/
GstMpegTsPMT *
GstMpegtsPMT *
gst_mpegts_pmt_new (void)
{
GstMpegTsPMT *pmt;
GstMpegtsPMT *pmt;
pmt = g_slice_new0 (GstMpegTsPMT);
pmt = g_slice_new0 (GstMpegtsPMT);
pmt->descriptors =
g_ptr_array_new_with_free_func ((GDestroyNotify) _free_descriptor);
@ -774,16 +774,16 @@ gst_mpegts_pmt_new (void)
/**
* gst_mpegts_pmt_stream_new:
*
* Allocates and initializes a new #GstMpegTsPMTStream.
* Allocates and initializes a new #GstMpegtsPMTStream.
*
* Returns: (transfer full): #GstMpegTsPMTStream
* Returns: (transfer full): #GstMpegtsPMTStream
*/
GstMpegTsPMTStream *
GstMpegtsPMTStream *
gst_mpegts_pmt_stream_new (void)
{
GstMpegTsPMTStream *stream;
GstMpegtsPMTStream *stream;
stream = g_slice_new0 (GstMpegTsPMTStream);
stream = g_slice_new0 (GstMpegtsPMTStream);
stream->descriptors =
g_ptr_array_new_with_free_func ((GDestroyNotify) _free_descriptor);
@ -792,11 +792,11 @@ gst_mpegts_pmt_stream_new (void)
}
static gboolean
_packetize_pmt (GstMpegTsSection * section)
_packetize_pmt (GstMpegtsSection * section)
{
const GstMpegTsPMT *pmt;
GstMpegTsPMTStream *stream;
GstMpegTsDescriptor *descriptor;
const GstMpegtsPMT *pmt;
GstMpegtsPMTStream *stream;
GstMpegtsDescriptor *descriptor;
gsize length, pgm_info_length, stream_length;
guint8 *data;
guint i, j;
@ -887,17 +887,17 @@ _packetize_pmt (GstMpegTsSection * section)
/**
* gst_mpegts_section_from_pmt:
* @pmt: (transfer full): a #GstMpegTsPMT to create a #GstMpegTsSection from
* @pid: The PID that the #GstMpegTsPMT belongs to
* @pmt: (transfer full): a #GstMpegtsPMT to create a #GstMpegtsSection from
* @pid: The PID that the #GstMpegtsPMT belongs to
*
* Creates a #GstMpegTsSection from @pmt that is bound to @pid
* Creates a #GstMpegtsSection from @pmt that is bound to @pid
*
* Returns: (transfer full): #GstMpegTsSection
* Returns: (transfer full): #GstMpegtsSection
*/
GstMpegTsSection *
gst_mpegts_section_from_pmt (GstMpegTsPMT * pmt, guint16 pid)
GstMpegtsSection *
gst_mpegts_section_from_pmt (GstMpegtsPMT * pmt, guint16 pid)
{
GstMpegTsSection *section;
GstMpegtsSection *section;
g_return_val_if_fail (pmt != NULL, NULL);
@ -913,7 +913,7 @@ gst_mpegts_section_from_pmt (GstMpegTsPMT * pmt, guint16 pid)
/* Conditional Access Table */
static gpointer
_parse_cat (GstMpegTsSection * section)
_parse_cat (GstMpegtsSection * section)
{
guint8 *data;
guint desc_len;
@ -928,17 +928,17 @@ _parse_cat (GstMpegTsSection * section)
/**
* gst_mpegts_section_get_cat:
* @section: a #GstMpegTsSection of type %GST_MPEGTS_SECTION_CAT
* @section: a #GstMpegtsSection of type %GST_MPEGTS_SECTION_CAT
*
* Returns the array of #GstMpegTsDescriptor contained in the Condtional
* Returns the array of #GstMpegtsDescriptor contained in the Condtional
* Access Table.
*
* Returns: (transfer container) (element-type GstMpegTsDescriptor): The
* #GstMpegTsDescriptor contained in the section, or %NULL if an error
* Returns: (transfer container) (element-type GstMpegtsDescriptor): The
* #GstMpegtsDescriptor contained in the section, or %NULL if an error
* happened. Release with #g_array_unref when done.
*/
GPtrArray *
gst_mpegts_section_get_cat (GstMpegTsSection * section)
gst_mpegts_section_get_cat (GstMpegtsSection * section)
{
g_return_val_if_fail (section->section_type == GST_MPEGTS_SECTION_CAT, NULL);
g_return_val_if_fail (section->cached_parsed || section->data, NULL);
@ -956,16 +956,16 @@ gst_mpegts_section_get_cat (GstMpegTsSection * section)
/* Transport Stream Description Table (TSDT) */
/**
* gst_mpegts_section_get_tsdt:
* @section: a #GstMpegTsSection of type %GST_MPEGTS_SECTION_TSDT
* @section: a #GstMpegtsSection of type %GST_MPEGTS_SECTION_TSDT
*
* Returns the array of #GstMpegTsDescriptor contained in the section
* Returns the array of #GstMpegtsDescriptor contained in the section
*
* Returns: (transfer container) (element-type GstMpegTsDescriptor): The
* #GstMpegTsDescriptor contained in the section, or %NULL if an error
* Returns: (transfer container) (element-type GstMpegtsDescriptor): The
* #GstMpegtsDescriptor contained in the section, or %NULL if an error
* happened. Release with #g_array_unref when done.
*/
GPtrArray *
gst_mpegts_section_get_tsdt (GstMpegTsSection * section)
gst_mpegts_section_get_tsdt (GstMpegtsSection * section)
{
g_return_val_if_fail (section->section_type == GST_MPEGTS_SECTION_TSDT, NULL);
g_return_val_if_fail (section->cached_parsed || section->data, NULL);
@ -1012,7 +1012,7 @@ gst_mpegts_initialize (void)
/* FIXME : Later on we might need to use more than just the table_id
* to figure out which type of section this is. */
static GstMpegTsSectionType
static GstMpegtsSectionType
_identify_section (guint16 pid, guint8 table_id)
{
switch (table_id) {
@ -1084,12 +1084,12 @@ _identify_section (guint16 pid, guint8 table_id)
}
GstMpegTsSection *
GstMpegtsSection *
_gst_mpegts_section_init (guint16 pid, guint8 table_id)
{
GstMpegTsSection *section;
GstMpegtsSection *section;
section = g_slice_new0 (GstMpegTsSection);
section = g_slice_new0 (GstMpegtsSection);
gst_mini_object_init (GST_MINI_OBJECT_CAST (section), 0, MPEG_TYPE_TS_SECTION,
(GstMiniObjectCopyFunction) _gst_mpegts_section_copy, NULL,
(GstMiniObjectFreeFunction) _gst_mpegts_section_free);
@ -1103,7 +1103,7 @@ _gst_mpegts_section_init (guint16 pid, guint8 table_id)
}
void
_packetize_common_section (GstMpegTsSection * section, gsize length)
_packetize_common_section (GstMpegtsSection * section, gsize length)
{
guint8 *data;
@ -1158,7 +1158,7 @@ _packetize_common_section (GstMpegTsSection * section, gsize length)
* should contain the table_id field).
* @data_size: size of the @data argument.
*
* Creates a new #GstMpegTsSection from the provided @data.
* Creates a new #GstMpegtsSection from the provided @data.
*
* Note: Ensuring @data is big enough to contain the full section is the
* responsibility of the caller. If it is not big enough, %NULL will be
@ -1167,13 +1167,13 @@ _packetize_common_section (GstMpegTsSection * section, gsize length)
* Note: it is the responsibility of the caller to ensure @data does point
* to the beginning of the section.
*
* Returns: (transfer full): A new #GstMpegTsSection if the data was valid,
* Returns: (transfer full): A new #GstMpegtsSection if the data was valid,
* else %NULL
*/
GstMpegTsSection *
GstMpegtsSection *
gst_mpegts_section_new (guint16 pid, guint8 * data, gsize data_size)
{
GstMpegTsSection *res = NULL;
GstMpegtsSection *res = NULL;
guint8 tmp;
guint8 table_id;
guint16 section_length;
@ -1230,7 +1230,7 @@ short_packet:
/**
* gst_mpegts_section_packetize:
* @section: (transfer none): the #GstMpegTsSection that holds the data
* @section: (transfer none): the #GstMpegtsSection that holds the data
* @output_size: (out): #gsize to hold the size of the data
*
* If the data in @section has aldready been packetized, the data pointer is returned
@ -1239,7 +1239,7 @@ short_packet:
* Returns: (transfer none): pointer to section data, or %NULL on fail
*/
guint8 *
gst_mpegts_section_packetize (GstMpegTsSection * section, gsize * output_size)
gst_mpegts_section_packetize (GstMpegtsSection * section, gsize * output_size)
{
guint8 *crc;
g_return_val_if_fail (section != NULL, NULL);

View file

@ -29,17 +29,17 @@
G_BEGIN_DECLS
typedef struct _GstMpegTsSection GstMpegTsSection;
typedef struct _GstMpegtsSection GstMpegtsSection;
#define GST_TYPE_MPEGTS_SECTION (gst_mpegts_section_get_type())
#define GST_MPEGTS_SECTION(section) ((GstMpegTsSection*) section)
#define GST_MPEGTS_SECTION(section) ((GstMpegtsSection*) section)
#define GST_MPEGTS_SECTION_TYPE(section) (GST_MPEGTS_SECTION (section)->section_type)
GType gst_mpegts_section_get_type (void);
/**
* GstMpegTsSectionType:
* GstMpegtsSectionType:
* @GST_MPEGTS_SECTION_UNKNOWN: Unknown section type
* @GST_MPEGTS_SECTION_PAT: Program Association Table (ISO/IEC 13818-1)
* @GST_MPEGTS_SECTION_PMT: Program Map Table (ISO/IEC 13818-1)
@ -58,7 +58,7 @@ GType gst_mpegts_section_get_type (void);
* @GST_MPEGTS_SECTION_ATSC_EIT: ATSC Event Information Table (A65)
* @GST_MPEGTS_SECTION_ATSC_STT: ATSC System Time Table (A65)
*
* Types of #GstMpegTsSection that the library handles.
* Types of #GstMpegtsSection that the library handles.
*/
typedef enum {
GST_MPEGTS_SECTION_UNKNOWN = 0,
@ -78,17 +78,17 @@ typedef enum {
GST_MPEGTS_SECTION_ATSC_ETT,
GST_MPEGTS_SECTION_ATSC_EIT,
GST_MPEGTS_SECTION_ATSC_STT
} GstMpegTsSectionType;
} GstMpegtsSectionType;
/**
* GstMpegTsSectionTableID:
* GstMpegtsSectionTableID:
*
* Values for a #GstMpegTsSection table_id
* Values for a #GstMpegtsSection table_id
*
* These are the registered ITU H.222.0 | ISO/IEC 13818-1 table_id variants.
*
* see also #GstMpegTsSectionATSCTableID, #GstMpegTsSectionDVBTableID, and
* #GstMpegTsSectionSCTETableID
* see also #GstMpegtsSectionATSCTableID, #GstMpegtsSectionDVBTableID, and
* #GstMpegtsSectionSCTETableID
*/
typedef enum {
/* ITU H.222.0 / IEC 13818-1 */
@ -114,12 +114,12 @@ typedef enum {
/* Unset */
GST_MTS_TABLE_ID_UNSET = 0xFF
} GstMpegTsSectionTableID;
} GstMpegtsSectionTableID;
typedef gboolean (*GstMpegTsPacketizeFunc) (GstMpegTsSection *section);
typedef gboolean (*GstMpegtsPacketizeFunc) (GstMpegtsSection *section);
/**
* GstMpegTsSection:
* GstMpegtsSection:
* @section_type: The type of section
* @pid: The pid on which this section was found
* @table_id: The table id of this section
@ -133,13 +133,13 @@ typedef gboolean (*GstMpegTsPacketizeFunc) (GstMpegTsSection *section);
*
* Mpeg-TS Section Information (SI) (ISO/IEC 13818-1)
*/
struct _GstMpegTsSection
struct _GstMpegtsSection
{
/*< private >*/
GstMiniObject parent;
/*< public >*/
GstMpegTsSectionType section_type;
GstMpegtsSectionType section_type;
guint16 pid;
guint8 table_id;
@ -170,110 +170,110 @@ struct _GstMpegTsSection
* FIXME : Maybe make public later on when allowing creation of
* sections to that people can create private short sections ? */
gboolean short_section;
GstMpegTsPacketizeFunc packetizer;
GstMpegtsPacketizeFunc packetizer;
};
GBytes *gst_mpegts_section_get_data (GstMpegTsSection *section);
GBytes *gst_mpegts_section_get_data (GstMpegtsSection *section);
/* PAT */
#define GST_TYPE_MPEGTS_PAT_PROGRAM (gst_mpegts_pat_program_get_type())
typedef struct _GstMpegTsPatProgram GstMpegTsPatProgram;
typedef struct _GstMpegtsPatProgram GstMpegtsPatProgram;
/**
* GstMpegTsPatProgram:
* GstMpegtsPatProgram:
* @program_number: the program number
* @network_or_program_map_PID: the network of program map PID
*
* A program entry from a Program Association Table (ITU H.222.0, ISO/IEC 13818-1).
*/
struct _GstMpegTsPatProgram
struct _GstMpegtsPatProgram
{
guint16 program_number;
guint16 network_or_program_map_PID;
};
GPtrArray *gst_mpegts_section_get_pat (GstMpegTsSection *section);
GPtrArray *gst_mpegts_section_get_pat (GstMpegtsSection *section);
GType gst_mpegts_pat_program_get_type (void);
GPtrArray *gst_mpegts_pat_new (void);
GstMpegTsPatProgram *gst_mpegts_pat_program_new (void);
GstMpegTsSection *gst_mpegts_section_from_pat (GPtrArray * programs,
GstMpegtsPatProgram *gst_mpegts_pat_program_new (void);
GstMpegtsSection *gst_mpegts_section_from_pat (GPtrArray * programs,
guint16 ts_id);
/* CAT */
GPtrArray *gst_mpegts_section_get_cat (GstMpegTsSection *section);
GPtrArray *gst_mpegts_section_get_cat (GstMpegtsSection *section);
/* PMT */
typedef struct _GstMpegTsPMTStream GstMpegTsPMTStream;
typedef struct _GstMpegTsPMT GstMpegTsPMT;
typedef struct _GstMpegtsPMTStream GstMpegtsPMTStream;
typedef struct _GstMpegtsPMT GstMpegtsPMT;
#define GST_TYPE_MPEGTS_PMT (gst_mpegts_pmt_get_type())
#define GST_TYPE_MPEGTS_PMT_STREAM (gst_mpegts_pmt_stream_get_type())
/**
* GstMpegTsStreamType:
* @GST_MPEG_TS_STREAM_TYPE_RESERVED_00: ITU-T | ISO/IEC Reserved
* @GST_MPEG_TS_STREAM_TYPE_VIDEO_MPEG1: ISO/IEC 11172-2 Video
* @GST_MPEG_TS_STREAM_TYPE_VIDEO_MPEG2: Rec. ITU-T H.262 | ISO/IEC 13818-2
* GstMpegtsStreamType:
* @GST_MPEGTS_STREAM_TYPE_RESERVED_00: ITU-T | ISO/IEC Reserved
* @GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG1: ISO/IEC 11172-2 Video
* @GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG2: Rec. ITU-T H.262 | ISO/IEC 13818-2
* Video or ISO/IEC 11172-2 constrained parameter video stream
* @GST_MPEG_TS_STREAM_TYPE_AUDIO_MPEG1: ISO/IEC 11172-3 Audio
* @GST_MPEG_TS_STREAM_TYPE_AUDIO_MPEG2: ISO/IEC 13818-3 Audio
* @GST_MPEG_TS_STREAM_TYPE_PRIVATE_SECTIONS: private sections
* @GST_MPEG_TS_STREAM_TYPE_PRIVATE_PES_PACKETS: PES packets containing private data
* @GST_MPEG_TS_STREAM_TYPE_MHEG: ISO/IEC 13522 MHEG
* @GST_MPEG_TS_STREAM_TYPE_DSM_CC: Annex A DSM-CC
* @GST_MPEG_TS_STREAM_TYPE_H_222_1: Rec. ITU-T H.222.1
* @GST_MPEG_TS_STREAM_TYPE_DSMCC_A: ISO/IEC 13818-6 type A
* @GST_MPEG_TS_STREAM_TYPE_DSMCC_B: ISO/IEC 13818-6 type B
* @GST_MPEG_TS_STREAM_TYPE_DSMCC_C: ISO/IEC 13818-6 type C
* @GST_MPEG_TS_STREAM_TYPE_DSMCC_D: ISO/IEC 13818-6 type D
* @GST_MPEG_TS_STREAM_TYPE_AUXILIARY: auxiliary streams
* @GST_MPEG_TS_STREAM_TYPE_AUDIO_AAC_ADTS: ISO/IEC 13818-7 Audio with ADTS
* @GST_MPEGTS_STREAM_TYPE_AUDIO_MPEG1: ISO/IEC 11172-3 Audio
* @GST_MPEGTS_STREAM_TYPE_AUDIO_MPEG2: ISO/IEC 13818-3 Audio
* @GST_MPEGTS_STREAM_TYPE_PRIVATE_SECTIONS: private sections
* @GST_MPEGTS_STREAM_TYPE_PRIVATE_PES_PACKETS: PES packets containing private data
* @GST_MPEGTS_STREAM_TYPE_MHEG: ISO/IEC 13522 MHEG
* @GST_MPEGTS_STREAM_TYPE_DSM_CC: Annex A DSM-CC
* @GST_MPEGTS_STREAM_TYPE_H_222_1: Rec. ITU-T H.222.1
* @GST_MPEGTS_STREAM_TYPE_DSMCC_A: ISO/IEC 13818-6 type A
* @GST_MPEGTS_STREAM_TYPE_DSMCC_B: ISO/IEC 13818-6 type B
* @GST_MPEGTS_STREAM_TYPE_DSMCC_C: ISO/IEC 13818-6 type C
* @GST_MPEGTS_STREAM_TYPE_DSMCC_D: ISO/IEC 13818-6 type D
* @GST_MPEGTS_STREAM_TYPE_AUXILIARY: auxiliary streams
* @GST_MPEGTS_STREAM_TYPE_AUDIO_AAC_ADTS: ISO/IEC 13818-7 Audio with ADTS
* transport syntax
* @GST_MPEG_TS_STREAM_TYPE_VIDEO_MPEG4: ISO/IEC 14496-2 Visual
* @GST_MPEG_TS_STREAM_TYPE_AUDIO_AAC_LATM: ISO/IEC 14496-3 Audio with the LATM
* @GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG4: ISO/IEC 14496-2 Visual
* @GST_MPEGTS_STREAM_TYPE_AUDIO_AAC_LATM: ISO/IEC 14496-3 Audio with the LATM
* transport syntax as defined in ISO/IEC 14496-3
* @GST_MPEG_TS_STREAM_TYPE_SL_FLEXMUX_PES_PACKETS: ISO/IEC 14496-1
* @GST_MPEGTS_STREAM_TYPE_SL_FLEXMUX_PES_PACKETS: ISO/IEC 14496-1
* SL-packetized stream or FlexMux stream carried in PES packets
* @GST_MPEG_TS_STREAM_TYPE_SL_FLEXMUX_SECTIONS: ISO/IEC 14496-1 SL-packetized
* @GST_MPEGTS_STREAM_TYPE_SL_FLEXMUX_SECTIONS: ISO/IEC 14496-1 SL-packetized
* stream or FlexMux stream carried in ISO/IEC 14496_sections
* @GST_MPEG_TS_STREAM_TYPE_SYNCHRONIZED_DOWNLOAD: ISO/IEC 13818-6 Synchronized
* @GST_MPEGTS_STREAM_TYPE_SYNCHRONIZED_DOWNLOAD: ISO/IEC 13818-6 Synchronized
* Download Protocol
* @GST_MPEG_TS_STREAM_TYPE_METADATA_PES_PACKETS: Metadata carried in PES packets
* @GST_MPEG_TS_STREAM_TYPE_METADATA_SECTIONS: Metadata carried in metadata_sections
* @GST_MPEG_TS_STREAM_TYPE_METADATA_DATA_CAROUSEL: Metadata carried in ISO/IEC
* @GST_MPEGTS_STREAM_TYPE_METADATA_PES_PACKETS: Metadata carried in PES packets
* @GST_MPEGTS_STREAM_TYPE_METADATA_SECTIONS: Metadata carried in metadata_sections
* @GST_MPEGTS_STREAM_TYPE_METADATA_DATA_CAROUSEL: Metadata carried in ISO/IEC
* 13818-6 Data Carousel
* @GST_MPEG_TS_STREAM_TYPE_METADATA_OBJECT_CAROUSEL: Metadata carried in
* @GST_MPEGTS_STREAM_TYPE_METADATA_OBJECT_CAROUSEL: Metadata carried in
* ISO/IEC 13818-6 Object Carousel
* @GST_MPEG_TS_STREAM_TYPE_METADATA_SYNCHRONIZED_DOWNLOAD: Metadata carried in
* @GST_MPEGTS_STREAM_TYPE_METADATA_SYNCHRONIZED_DOWNLOAD: Metadata carried in
* ISO/IEC 13818-6 Synchronized Download Protocol
* @GST_MPEG_TS_STREAM_TYPE_MPEG2_IPMP: IPMP stream (defined in ISO/IEC 13818-11,
* @GST_MPEGTS_STREAM_TYPE_MPEG2_IPMP: IPMP stream (defined in ISO/IEC 13818-11,
* MPEG-2 IPMP)
* @GST_MPEG_TS_STREAM_TYPE_VIDEO_H264: AVC video stream conforming to one or
* @GST_MPEGTS_STREAM_TYPE_VIDEO_H264: AVC video stream conforming to one or
* more profiles defined in Annex A of Rec. ITU-T H.264 | ISO/IEC 14496-10 or
* AVC video sub-bitstream of SVC as defined in 2.1.78 or MVC base view
* sub-bitstream, as defined in 2.1.85, or AVC video sub-bitstream of MVC, as
* defined in 2.1.88
* @GST_MPEG_TS_STREAM_TYPE_AUDIO_AAC_CLEAN: ISO/IEC 14496-3 Audio, without
* @GST_MPEGTS_STREAM_TYPE_AUDIO_AAC_CLEAN: ISO/IEC 14496-3 Audio, without
* using any additional transport syntax, such as DST, ALS and SLS
* @GST_MPEG_TS_STREAM_TYPE_MPEG4_TIMED_TEXT: ISO/IEC 14496-17 Text
* @GST_MPEG_TS_STREAM_TYPE_VIDEO_RVC: Auxiliary video stream as defined in
* @GST_MPEGTS_STREAM_TYPE_MPEG4_TIMED_TEXT: ISO/IEC 14496-17 Text
* @GST_MPEGTS_STREAM_TYPE_VIDEO_RVC: Auxiliary video stream as defined in
* ISO/IEC 23002-3
* @GST_MPEG_TS_STREAM_TYPE_VIDEO_H264_SVC_SUB_BITSTREAM: SVC video sub-bitstream
* @GST_MPEGTS_STREAM_TYPE_VIDEO_H264_SVC_SUB_BITSTREAM: SVC video sub-bitstream
* of an AVC video stream conforming to one or more profiles defined in Annex G
* of Rec. ITU-T H.264 | ISO/IEC 14496-10
* @GST_MPEG_TS_STREAM_TYPE_VIDEO_H264_MVC_SUB_BITSTREAM: MVC video sub-bitstream
* @GST_MPEGTS_STREAM_TYPE_VIDEO_H264_MVC_SUB_BITSTREAM: MVC video sub-bitstream
* of an AVC video stream conforming to one or more profiles defined in Annex H
* of Rec. ITU-T H.264 | ISO/IEC 14496-10
* @GST_MPEG_TS_STREAM_TYPE_VIDEO_JP2K: Video stream conforming to one or more
* @GST_MPEGTS_STREAM_TYPE_VIDEO_JP2K: Video stream conforming to one or more
* profiles as defined in Rec. ITU-T T.800 | ISO/IEC 15444-1
* @GST_MPEG_TS_STREAM_TYPE_VIDEO_MPEG2_STEREO_ADDITIONAL_VIEW: Additional view
* @GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG2_STEREO_ADDITIONAL_VIEW: Additional view
* Rec. ITU-T H.262 | ISO/IEC 13818-2 video stream for service-compatible
* stereoscopic 3D services
* @GST_MPEG_TS_STREAM_TYPE_VIDEO_H264_STEREO_ADDITIONAL_VIEW: Additional view
* @GST_MPEGTS_STREAM_TYPE_VIDEO_H264_STEREO_ADDITIONAL_VIEW: Additional view
* Rec. ITU-T H.264 | ISO/IEC 14496-10 video stream conforming to one or more
* profiles defined in Annex A for service-compatible stereoscopic 3D services
* @GST_MPEG_TS_STREAM_TYPE_IPMP_STREAM: IPMP stream
* @GST_MPEGTS_STREAM_TYPE_IPMP_STREAM: IPMP stream
*
* Type of mpeg-ts stream type.
*
@ -284,58 +284,58 @@ typedef struct _GstMpegTsPMT GstMpegTsPMT;
* Corresponds to table 2-34 of ITU H.222.0 | ISO/IEC 13818-1
*/
typedef enum {
GST_MPEG_TS_STREAM_TYPE_RESERVED_00 = 0x00,
GST_MPEG_TS_STREAM_TYPE_VIDEO_MPEG1 = 0x01,
GST_MPEG_TS_STREAM_TYPE_VIDEO_MPEG2 = 0x02,
GST_MPEG_TS_STREAM_TYPE_AUDIO_MPEG1 = 0x03,
GST_MPEG_TS_STREAM_TYPE_AUDIO_MPEG2 = 0x04,
GST_MPEG_TS_STREAM_TYPE_PRIVATE_SECTIONS = 0x05,
GST_MPEG_TS_STREAM_TYPE_PRIVATE_PES_PACKETS = 0x06,
GST_MPEG_TS_STREAM_TYPE_MHEG = 0x07,
GST_MPEG_TS_STREAM_TYPE_DSM_CC = 0x08,
GST_MPEG_TS_STREAM_TYPE_H_222_1 = 0x09,
GST_MPEG_TS_STREAM_TYPE_DSMCC_A = 0x0a,
GST_MPEG_TS_STREAM_TYPE_DSMCC_B = 0x0b,
GST_MPEG_TS_STREAM_TYPE_DSMCC_C = 0x0c,
GST_MPEG_TS_STREAM_TYPE_DSMCC_D = 0x0d,
GST_MPEG_TS_STREAM_TYPE_AUXILIARY = 0x0e,
GST_MPEG_TS_STREAM_TYPE_AUDIO_AAC_ADTS = 0x0f,
GST_MPEG_TS_STREAM_TYPE_VIDEO_MPEG4 = 0x10,
GST_MPEG_TS_STREAM_TYPE_AUDIO_AAC_LATM = 0x11,
GST_MPEG_TS_STREAM_TYPE_SL_FLEXMUX_PES_PACKETS = 0x12,
GST_MPEG_TS_STREAM_TYPE_SL_FLEXMUX_SECTIONS = 0x13,
GST_MPEG_TS_STREAM_TYPE_SYNCHRONIZED_DOWNLOAD = 0x14,
GST_MPEG_TS_STREAM_TYPE_METADATA_PES_PACKETS = 0x15,
GST_MPEG_TS_STREAM_TYPE_METADATA_SECTIONS = 0x16,
GST_MPEG_TS_STREAM_TYPE_METADATA_DATA_CAROUSEL = 0x17,
GST_MPEG_TS_STREAM_TYPE_METADATA_OBJECT_CAROUSEL = 0x18,
GST_MPEG_TS_STREAM_TYPE_METADATA_SYNCHRONIZED_DOWNLOAD = 0x19,
GST_MPEG_TS_STREAM_TYPE_MPEG2_IPMP = 0x1a,
GST_MPEG_TS_STREAM_TYPE_VIDEO_H264 = 0x1b,
GST_MPEG_TS_STREAM_TYPE_AUDIO_AAC_CLEAN = 0x1c,
GST_MPEG_TS_STREAM_TYPE_MPEG4_TIMED_TEXT = 0x1d,
GST_MPEG_TS_STREAM_TYPE_VIDEO_RVC = 0x1e,
GST_MPEG_TS_STREAM_TYPE_VIDEO_H264_SVC_SUB_BITSTREAM = 0x1f,
GST_MPEG_TS_STREAM_TYPE_VIDEO_H264_MVC_SUB_BITSTREAM = 0x20,
GST_MPEG_TS_STREAM_TYPE_VIDEO_JP2K = 0x21,
GST_MPEG_TS_STREAM_TYPE_VIDEO_MPEG2_STEREO_ADDITIONAL_VIEW = 0x22,
GST_MPEG_TS_STREAM_TYPE_VIDEO_H264_STEREO_ADDITIONAL_VIEW = 0x23,
GST_MPEG_TS_STREAM_TYPE_VIDEO_HEVC = 0x24,
GST_MPEGTS_STREAM_TYPE_RESERVED_00 = 0x00,
GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG1 = 0x01,
GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG2 = 0x02,
GST_MPEGTS_STREAM_TYPE_AUDIO_MPEG1 = 0x03,
GST_MPEGTS_STREAM_TYPE_AUDIO_MPEG2 = 0x04,
GST_MPEGTS_STREAM_TYPE_PRIVATE_SECTIONS = 0x05,
GST_MPEGTS_STREAM_TYPE_PRIVATE_PES_PACKETS = 0x06,
GST_MPEGTS_STREAM_TYPE_MHEG = 0x07,
GST_MPEGTS_STREAM_TYPE_DSM_CC = 0x08,
GST_MPEGTS_STREAM_TYPE_H_222_1 = 0x09,
GST_MPEGTS_STREAM_TYPE_DSMCC_A = 0x0a,
GST_MPEGTS_STREAM_TYPE_DSMCC_B = 0x0b,
GST_MPEGTS_STREAM_TYPE_DSMCC_C = 0x0c,
GST_MPEGTS_STREAM_TYPE_DSMCC_D = 0x0d,
GST_MPEGTS_STREAM_TYPE_AUXILIARY = 0x0e,
GST_MPEGTS_STREAM_TYPE_AUDIO_AAC_ADTS = 0x0f,
GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG4 = 0x10,
GST_MPEGTS_STREAM_TYPE_AUDIO_AAC_LATM = 0x11,
GST_MPEGTS_STREAM_TYPE_SL_FLEXMUX_PES_PACKETS = 0x12,
GST_MPEGTS_STREAM_TYPE_SL_FLEXMUX_SECTIONS = 0x13,
GST_MPEGTS_STREAM_TYPE_SYNCHRONIZED_DOWNLOAD = 0x14,
GST_MPEGTS_STREAM_TYPE_METADATA_PES_PACKETS = 0x15,
GST_MPEGTS_STREAM_TYPE_METADATA_SECTIONS = 0x16,
GST_MPEGTS_STREAM_TYPE_METADATA_DATA_CAROUSEL = 0x17,
GST_MPEGTS_STREAM_TYPE_METADATA_OBJECT_CAROUSEL = 0x18,
GST_MPEGTS_STREAM_TYPE_METADATA_SYNCHRONIZED_DOWNLOAD = 0x19,
GST_MPEGTS_STREAM_TYPE_MPEG2_IPMP = 0x1a,
GST_MPEGTS_STREAM_TYPE_VIDEO_H264 = 0x1b,
GST_MPEGTS_STREAM_TYPE_AUDIO_AAC_CLEAN = 0x1c,
GST_MPEGTS_STREAM_TYPE_MPEG4_TIMED_TEXT = 0x1d,
GST_MPEGTS_STREAM_TYPE_VIDEO_RVC = 0x1e,
GST_MPEGTS_STREAM_TYPE_VIDEO_H264_SVC_SUB_BITSTREAM = 0x1f,
GST_MPEGTS_STREAM_TYPE_VIDEO_H264_MVC_SUB_BITSTREAM = 0x20,
GST_MPEGTS_STREAM_TYPE_VIDEO_JP2K = 0x21,
GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG2_STEREO_ADDITIONAL_VIEW = 0x22,
GST_MPEGTS_STREAM_TYPE_VIDEO_H264_STEREO_ADDITIONAL_VIEW = 0x23,
GST_MPEGTS_STREAM_TYPE_VIDEO_HEVC = 0x24,
/* 0x24 - 0x7e : Rec. ITU-T H.222.0 | ISO/IEC 13818-1 Reserved */
GST_MPEG_TS_STREAM_TYPE_IPMP_STREAM = 0x7f
GST_MPEGTS_STREAM_TYPE_IPMP_STREAM = 0x7f
/* 0x80 - 0xff : User Private (or defined in other specs) */
} GstMpegTsStreamType;
} GstMpegtsStreamType;
/**
* GstMpegTsPMTStream:
* @stream_type: the type of stream. See #GstMpegTsStreamType
* GstMpegtsPMTStream:
* @stream_type: the type of stream. See #GstMpegtsStreamType
* @pid: the PID of the stream
* @descriptors: (element-type GstMpegTsDescriptor): the descriptors of the
* @descriptors: (element-type GstMpegtsDescriptor): the descriptors of the
* stream
*
* An individual stream definition.
*/
struct _GstMpegTsPMTStream
struct _GstMpegtsPMTStream
{
guint8 stream_type;
guint16 pid;
@ -344,17 +344,17 @@ struct _GstMpegTsPMTStream
};
/**
* GstMpegTsPMT:
* GstMpegtsPMT:
* @pcr_pid: PID of the stream containing PCR
* @descriptors: (element-type GstMpegTsDescriptor): array of #GstMpegTsDescriptor
* @streams: (element-type GstMpegTsPMTStream): Array of #GstMpegTsPMTStream
* @descriptors: (element-type GstMpegtsDescriptor): array of #GstMpegtsDescriptor
* @streams: (element-type GstMpegtsPMTStream): Array of #GstMpegtsPMTStream
*
* Program Map Table (ISO/IEC 13818-1).
*
* The program_number is contained in the subtable_extension field of the
* container #GstMpegTsSection.
* container #GstMpegtsSection.
*/
struct _GstMpegTsPMT
struct _GstMpegtsPMT
{
guint16 pcr_pid;
guint16 program_number;
@ -366,32 +366,32 @@ struct _GstMpegTsPMT
GType gst_mpegts_pmt_get_type (void);
GType gst_mpegts_pmt_stream_get_type (void);
GstMpegTsPMT *gst_mpegts_pmt_new (void);
GstMpegTsPMTStream *gst_mpegts_pmt_stream_new (void);
const GstMpegTsPMT *gst_mpegts_section_get_pmt (GstMpegTsSection *section);
GstMpegTsSection *gst_mpegts_section_from_pmt (GstMpegTsPMT *pmt, guint16 pid);
GstMpegtsPMT *gst_mpegts_pmt_new (void);
GstMpegtsPMTStream *gst_mpegts_pmt_stream_new (void);
const GstMpegtsPMT *gst_mpegts_section_get_pmt (GstMpegtsSection *section);
GstMpegtsSection *gst_mpegts_section_from_pmt (GstMpegtsPMT *pmt, guint16 pid);
/* TSDT */
GPtrArray *gst_mpegts_section_get_tsdt (GstMpegTsSection *section);
GPtrArray *gst_mpegts_section_get_tsdt (GstMpegtsSection *section);
/* generic */
#define gst_mpegts_section_ref(section) ((GstMpegTsSection*) gst_mini_object_ref (GST_MINI_OBJECT_CAST (section)))
#define gst_mpegts_section_ref(section) ((GstMpegtsSection*) gst_mini_object_ref (GST_MINI_OBJECT_CAST (section)))
#define gst_mpegts_section_unref(section) (gst_mini_object_unref (GST_MINI_OBJECT_CAST (section)))
GstMessage *gst_message_new_mpegts_section (GstObject *parent, GstMpegTsSection *section);
gboolean gst_mpegts_section_send_event (GstMpegTsSection * section, GstElement * element);
GstMpegTsSection *gst_event_parse_mpegts_section (GstEvent * event);
GstMessage *gst_message_new_mpegts_section (GstObject *parent, GstMpegtsSection *section);
gboolean gst_mpegts_section_send_event (GstMpegtsSection * section, GstElement * element);
GstMpegtsSection *gst_event_parse_mpegts_section (GstEvent * event);
GstMpegTsSection *gst_message_parse_mpegts_section (GstMessage *message);
GstMpegtsSection *gst_message_parse_mpegts_section (GstMessage *message);
GstMpegTsSection *gst_mpegts_section_new (guint16 pid,
GstMpegtsSection *gst_mpegts_section_new (guint16 pid,
guint8 * data,
gsize data_size);
guint8 *gst_mpegts_section_packetize (GstMpegTsSection * section, gsize * output_size);
guint8 *gst_mpegts_section_packetize (GstMpegtsSection * section, gsize * output_size);
G_END_DECLS

View file

@ -87,9 +87,9 @@ static gboolean mpegts_base_sink_event (GstPad * pad, GstObject * parent,
static GstStateChangeReturn mpegts_base_change_state (GstElement * element,
GstStateChange transition);
static gboolean mpegts_base_get_tags_from_eit (MpegTSBase * base,
GstMpegTsSection * section);
GstMpegtsSection * section);
static gboolean mpegts_base_parse_atsc_mgt (MpegTSBase * base,
GstMpegTsSection * section);
GstMpegtsSection * section);
static gboolean remove_each_program (gpointer key, MpegTSBaseProgram * program,
MpegTSBase * base);
@ -273,10 +273,10 @@ mpegts_base_finalize (GObject * object)
/* returns NULL if no matching descriptor found *
* otherwise returns a descriptor that needs to *
* be freed */
const GstMpegTsDescriptor *
const GstMpegtsDescriptor *
mpegts_get_descriptor_from_stream (MpegTSBaseStream * stream, guint8 tag)
{
GstMpegTsPMTStream *pmt = stream->stream;
GstMpegtsPMTStream *pmt = stream->stream;
GST_DEBUG ("Searching for tag 0x%02x in stream 0x%04x (stream_type 0x%02x)",
tag, stream->pid, stream->stream_type);
@ -316,10 +316,10 @@ mpegts_pid_in_active_programs (MpegTSBase * base, guint16 pid)
/* returns NULL if no matching descriptor found *
* otherwise returns a descriptor that needs to *
* be freed */
const GstMpegTsDescriptor *
const GstMpegtsDescriptor *
mpegts_get_descriptor_from_program (MpegTSBaseProgram * program, guint8 tag)
{
const GstMpegTsPMT *pmt = program->pmt;
const GstMpegtsPMT *pmt = program->pmt;
return gst_mpegts_find_descriptor (pmt->descriptors, tag);
}
@ -427,7 +427,7 @@ mpegts_base_remove_program (MpegTSBase * base, gint program_number)
static guint32
get_registration_from_descriptors (GPtrArray * descriptors)
{
const GstMpegTsDescriptor *desc;
const GstMpegtsDescriptor *desc;
if ((desc =
gst_mpegts_find_descriptor (descriptors,
@ -444,7 +444,7 @@ get_registration_from_descriptors (GPtrArray * descriptors)
static MpegTSBaseStream *
mpegts_base_program_add_stream (MpegTSBase * base,
MpegTSBaseProgram * program, guint16 pid, guint8 stream_type,
GstMpegTsPMTStream * stream)
GstMpegtsPMTStream * stream)
{
MpegTSBaseClass *klass = GST_MPEGTS_BASE_GET_CLASS (base);
MpegTSBaseStream *bstream;
@ -507,7 +507,7 @@ mpegts_base_program_remove_stream (MpegTSBase * base,
/* Return TRUE if programs are equal */
static gboolean
mpegts_base_is_same_program (MpegTSBase * base, MpegTSBaseProgram * oldprogram,
guint16 new_pmt_pid, const GstMpegTsPMT * new_pmt)
guint16 new_pmt_pid, const GstMpegtsPMT * new_pmt)
{
guint i, nbstreams;
MpegTSBaseStream *oldstream;
@ -528,7 +528,7 @@ mpegts_base_is_same_program (MpegTSBase * base, MpegTSBaseProgram * oldprogram,
/* Check the streams */
nbstreams = new_pmt->streams->len;
for (i = 0; i < nbstreams; ++i) {
GstMpegTsPMTStream *stream = g_ptr_array_index (new_pmt->streams, i);
GstMpegtsPMTStream *stream = g_ptr_array_index (new_pmt->streams, i);
oldstream = oldprogram->streams[stream->pid];
if (!oldstream) {
@ -574,7 +574,7 @@ mpegts_base_deactivate_program (MpegTSBase * base, MpegTSBaseProgram * program)
if (program->pmt) {
for (i = 0; i < program->pmt->streams->len; ++i) {
GstMpegTsPMTStream *stream = g_ptr_array_index (program->pmt->streams, i);
GstMpegtsPMTStream *stream = g_ptr_array_index (program->pmt->streams, i);
mpegts_base_program_remove_stream (base, program, stream->pid);
@ -582,8 +582,8 @@ mpegts_base_deactivate_program (MpegTSBase * base, MpegTSBaseProgram * program)
* program */
if (!mpegts_pid_in_active_programs (base, stream->pid)) {
switch (stream->stream_type) {
case GST_MPEG_TS_STREAM_TYPE_SCTE_DSMCC_DCB:
case GST_MPEG_TS_STREAM_TYPE_SCTE_SIGNALING:
case GST_MPEGTS_STREAM_TYPE_SCTE_DSMCC_DCB:
case GST_MPEGTS_STREAM_TYPE_SCTE_SIGNALING:
{
guint32 registration_id =
get_registration_from_descriptors (stream->descriptors);
@ -594,15 +594,15 @@ mpegts_base_deactivate_program (MpegTSBase * base, MpegTSBaseProgram * program)
break;
/* Fall through on purpose - remove this PID from known_psi */
}
case GST_MPEG_TS_STREAM_TYPE_PRIVATE_SECTIONS:
case GST_MPEG_TS_STREAM_TYPE_MHEG:
case GST_MPEG_TS_STREAM_TYPE_DSM_CC:
case GST_MPEG_TS_STREAM_TYPE_DSMCC_A:
case GST_MPEG_TS_STREAM_TYPE_DSMCC_B:
case GST_MPEG_TS_STREAM_TYPE_DSMCC_C:
case GST_MPEG_TS_STREAM_TYPE_DSMCC_D:
case GST_MPEG_TS_STREAM_TYPE_SL_FLEXMUX_SECTIONS:
case GST_MPEG_TS_STREAM_TYPE_METADATA_SECTIONS:
case GST_MPEGTS_STREAM_TYPE_PRIVATE_SECTIONS:
case GST_MPEGTS_STREAM_TYPE_MHEG:
case GST_MPEGTS_STREAM_TYPE_DSM_CC:
case GST_MPEGTS_STREAM_TYPE_DSMCC_A:
case GST_MPEGTS_STREAM_TYPE_DSMCC_B:
case GST_MPEGTS_STREAM_TYPE_DSMCC_C:
case GST_MPEGTS_STREAM_TYPE_DSMCC_D:
case GST_MPEGTS_STREAM_TYPE_SL_FLEXMUX_SECTIONS:
case GST_MPEGTS_STREAM_TYPE_METADATA_SECTIONS:
/* Set known PSI streams */
if (base->parse_private_sections)
MPEGTS_BIT_UNSET (base->known_psi, stream->pid);
@ -630,7 +630,7 @@ mpegts_base_deactivate_program (MpegTSBase * base, MpegTSBaseProgram * program)
static void
mpegts_base_activate_program (MpegTSBase * base, MpegTSBaseProgram * program,
guint16 pmt_pid, GstMpegTsSection * section, const GstMpegTsPMT * pmt,
guint16 pmt_pid, GstMpegtsSection * section, const GstMpegtsPMT * pmt,
gboolean initial_program)
{
guint i;
@ -657,11 +657,11 @@ mpegts_base_activate_program (MpegTSBase * base, MpegTSBaseProgram * program,
program->program_number, SAFE_FOURCC_ARGS (program->registration_id));
for (i = 0; i < pmt->streams->len; ++i) {
GstMpegTsPMTStream *stream = g_ptr_array_index (pmt->streams, i);
GstMpegtsPMTStream *stream = g_ptr_array_index (pmt->streams, i);
switch (stream->stream_type) {
case GST_MPEG_TS_STREAM_TYPE_SCTE_DSMCC_DCB:
case GST_MPEG_TS_STREAM_TYPE_SCTE_SIGNALING:
case GST_MPEGTS_STREAM_TYPE_SCTE_DSMCC_DCB:
case GST_MPEGTS_STREAM_TYPE_SCTE_SIGNALING:
{
guint32 registration_id =
get_registration_from_descriptors (stream->descriptors);
@ -670,15 +670,15 @@ mpegts_base_activate_program (MpegTSBase * base, MpegTSBaseProgram * program,
break;
/* Fall through on purpose - remove this PID from known_psi */
}
case GST_MPEG_TS_STREAM_TYPE_PRIVATE_SECTIONS:
case GST_MPEG_TS_STREAM_TYPE_MHEG:
case GST_MPEG_TS_STREAM_TYPE_DSM_CC:
case GST_MPEG_TS_STREAM_TYPE_DSMCC_A:
case GST_MPEG_TS_STREAM_TYPE_DSMCC_B:
case GST_MPEG_TS_STREAM_TYPE_DSMCC_C:
case GST_MPEG_TS_STREAM_TYPE_DSMCC_D:
case GST_MPEG_TS_STREAM_TYPE_SL_FLEXMUX_SECTIONS:
case GST_MPEG_TS_STREAM_TYPE_METADATA_SECTIONS:
case GST_MPEGTS_STREAM_TYPE_PRIVATE_SECTIONS:
case GST_MPEGTS_STREAM_TYPE_MHEG:
case GST_MPEGTS_STREAM_TYPE_DSM_CC:
case GST_MPEGTS_STREAM_TYPE_DSMCC_A:
case GST_MPEGTS_STREAM_TYPE_DSMCC_B:
case GST_MPEGTS_STREAM_TYPE_DSMCC_C:
case GST_MPEGTS_STREAM_TYPE_DSMCC_D:
case GST_MPEGTS_STREAM_TYPE_SL_FLEXMUX_SECTIONS:
case GST_MPEGTS_STREAM_TYPE_METADATA_SECTIONS:
/* Set known PSI streams */
if (base->parse_private_sections)
MPEGTS_BIT_SET (base->known_psi, stream->pid);
@ -719,7 +719,7 @@ mpegts_base_activate_program (MpegTSBase * base, MpegTSBaseProgram * program,
static gboolean
mpegts_base_apply_pat (MpegTSBase * base, GstMpegTsSection * section)
mpegts_base_apply_pat (MpegTSBase * base, GstMpegtsSection * section)
{
GPtrArray *pat = gst_mpegts_section_get_pat (section);
GPtrArray *old_pat;
@ -745,7 +745,7 @@ mpegts_base_apply_pat (MpegTSBase * base, GstMpegTsSection * section)
GST_LOG ("Activating new Program Association Table");
/* activate the new table */
for (i = 0; i < pat->len; ++i) {
GstMpegTsPatProgram *patp = g_ptr_array_index (pat, i);
GstMpegtsPatProgram *patp = g_ptr_array_index (pat, i);
program = mpegts_base_get_program (base, patp->program_number);
if (program) {
@ -781,7 +781,7 @@ mpegts_base_apply_pat (MpegTSBase * base, GstMpegTsSection * section)
GST_LOG ("Deactivating old Program Association Table");
for (i = 0; i < old_pat->len; ++i) {
GstMpegTsPatProgram *patp = g_ptr_array_index (old_pat, i);
GstMpegtsPatProgram *patp = g_ptr_array_index (old_pat, i);
program = mpegts_base_get_program (base, patp->program_number);
if (G_UNLIKELY (program == NULL)) {
@ -820,9 +820,9 @@ mpegts_base_apply_pat (MpegTSBase * base, GstMpegTsSection * section)
}
static gboolean
mpegts_base_apply_pmt (MpegTSBase * base, GstMpegTsSection * section)
mpegts_base_apply_pmt (MpegTSBase * base, GstMpegtsSection * section)
{
const GstMpegTsPMT *pmt;
const GstMpegtsPMT *pmt;
MpegTSBaseProgram *program, *old_program;
guint program_number;
gboolean initial_program = TRUE;
@ -893,7 +893,7 @@ same_program:
}
static void
mpegts_base_handle_psi (MpegTSBase * base, GstMpegTsSection * section)
mpegts_base_handle_psi (MpegTSBase * base, GstMpegtsSection * section)
{
gboolean post_message = TRUE;
@ -932,9 +932,9 @@ mpegts_base_handle_psi (MpegTSBase * base, GstMpegTsSection * section)
}
static gboolean
mpegts_base_parse_atsc_mgt (MpegTSBase * base, GstMpegTsSection * section)
mpegts_base_parse_atsc_mgt (MpegTSBase * base, GstMpegtsSection * section)
{
const GstMpegTsAtscMGT *mgt;
const GstMpegtsAtscMGT *mgt;
gint i;
mgt = gst_mpegts_section_get_atsc_mgt (section);
@ -942,12 +942,12 @@ mpegts_base_parse_atsc_mgt (MpegTSBase * base, GstMpegTsSection * section)
return FALSE;
for (i = 0; i < mgt->tables->len; ++i) {
GstMpegTsAtscMGTTable *table = g_ptr_array_index (mgt->tables, i);
GstMpegtsAtscMGTTable *table = g_ptr_array_index (mgt->tables, i);
if ((table->table_type >= GST_MPEG_TS_ATSC_MGT_TABLE_TYPE_EIT0 &&
table->table_type <= GST_MPEG_TS_ATSC_MGT_TABLE_TYPE_EIT127) ||
(table->table_type >= GST_MPEG_TS_ATSC_MGT_TABLE_TYPE_ETT0 &&
table->table_type <= GST_MPEG_TS_ATSC_MGT_TABLE_TYPE_ETT127)) {
if ((table->table_type >= GST_MPEGTS_ATSC_MGT_TABLE_TYPE_EIT0 &&
table->table_type <= GST_MPEGTS_ATSC_MGT_TABLE_TYPE_EIT127) ||
(table->table_type >= GST_MPEGTS_ATSC_MGT_TABLE_TYPE_ETT0 &&
table->table_type <= GST_MPEGTS_ATSC_MGT_TABLE_TYPE_ETT127)) {
MPEGTS_BIT_SET (base->known_psi, table->pid);
}
}
@ -956,9 +956,9 @@ mpegts_base_parse_atsc_mgt (MpegTSBase * base, GstMpegTsSection * section)
}
static gboolean
mpegts_base_get_tags_from_eit (MpegTSBase * base, GstMpegTsSection * section)
mpegts_base_get_tags_from_eit (MpegTSBase * base, GstMpegtsSection * section)
{
const GstMpegTsEIT *eit;
const GstMpegtsEIT *eit;
guint i;
MpegTSBaseProgram *program;
@ -981,8 +981,8 @@ mpegts_base_get_tags_from_eit (MpegTSBase * base, GstMpegTsSection * section)
if (program && eit->present_following) {
for (i = 0; i < eit->events->len; i++) {
GstMpegTsEITEvent *event = g_ptr_array_index (eit->events, i);
const GstMpegTsDescriptor *desc;
GstMpegtsEITEvent *event = g_ptr_array_index (eit->events, i);
const GstMpegtsDescriptor *desc;
if (event->running_status == RUNNING_STATUS_RUNNING) {
program->event_id = event->event_id;
@ -1174,14 +1174,14 @@ mpegts_base_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
&& MPEGTS_BIT_IS_SET (base->known_psi, packet.pid)) {
/* base PSI data */
GList *others, *tmp;
GstMpegTsSection *section;
GstMpegtsSection *section;
section = mpegts_packetizer_push_section (packetizer, &packet, &others);
if (section)
mpegts_base_handle_psi (base, section);
if (G_UNLIKELY (others)) {
for (tmp = others; tmp; tmp = tmp->next)
mpegts_base_handle_psi (base, (GstMpegTsSection *) tmp->data);
mpegts_base_handle_psi (base, (GstMpegtsSection *) tmp->data);
g_list_free (others);
}

View file

@ -63,7 +63,7 @@ struct _MpegTSBaseStream
/* Content of the registration descriptor (if present) */
guint32 registration_id;
GstMpegTsPMTStream *stream;
GstMpegtsPMTStream *stream;
};
struct _MpegTSBaseProgram
@ -75,8 +75,8 @@ struct _MpegTSBaseProgram
/* Content of the registration descriptor (if present) */
guint32 registration_id;
GstMpegTsSection *section;
const GstMpegTsPMT *pmt;
GstMpegtsSection *section;
const GstMpegtsPMT *pmt;
MpegTSBaseStream **streams;
GList *stream_list;
@ -165,7 +165,7 @@ struct _MpegTSBaseClass {
/* Virtual methods */
void (*reset) (MpegTSBase *base);
GstFlowReturn (*push) (MpegTSBase *base, MpegTSPacketizerPacket *packet, GstMpegTsSection * section);
GstFlowReturn (*push) (MpegTSBase *base, MpegTSPacketizerPacket *packet, GstMpegtsSection * section);
/* takes ownership of @event */
gboolean (*push_event) (MpegTSBase *base, GstEvent * event);
@ -213,8 +213,8 @@ G_GNUC_INTERNAL GType mpegts_base_get_type(void);
G_GNUC_INTERNAL MpegTSBaseProgram *mpegts_base_get_program (MpegTSBase * base, gint program_number);
G_GNUC_INTERNAL MpegTSBaseProgram *mpegts_base_add_program (MpegTSBase * base, gint program_number, guint16 pmt_pid);
G_GNUC_INTERNAL const GstMpegTsDescriptor *mpegts_get_descriptor_from_stream (MpegTSBaseStream * stream, guint8 tag);
G_GNUC_INTERNAL const GstMpegTsDescriptor *mpegts_get_descriptor_from_program (MpegTSBaseProgram * program, guint8 tag);
G_GNUC_INTERNAL const GstMpegtsDescriptor *mpegts_get_descriptor_from_stream (MpegTSBaseStream * stream, guint8 tag);
G_GNUC_INTERNAL const GstMpegtsDescriptor *mpegts_get_descriptor_from_program (MpegTSBaseProgram * program, guint8 tag);
G_GNUC_INTERNAL gboolean
mpegts_base_handle_seek_event(MpegTSBase * base, GstPad * pad, GstEvent * event);

View file

@ -469,12 +469,12 @@ mpegts_packetizer_parse_packet (MpegTSPacketizer2 * packetizer,
return PACKET_OK;
}
static GstMpegTsSection *
static GstMpegtsSection *
mpegts_packetizer_parse_section_header (MpegTSPacketizer2 * packetizer,
MpegTSPacketizerStream * stream)
{
MpegTSPacketizerStreamSubtable *subtable;
GstMpegTsSection *res;
GstMpegtsSection *res;
subtable =
find_subtable (stream->subtables, stream->table_id,
@ -874,7 +874,7 @@ mpegts_packetizer_has_packets (MpegTSPacketizer2 * packetizer)
* * The section applies now (current_next_indicator)
* * The section is an update or was never seen
*
* The section should be a new GstMpegTsSection:
* The section should be a new GstMpegtsSection:
* * properly initialized
* * With pid, table_id AND section_type set (move logic from mpegtsbase)
* * With data copied into it (yes, minor overhead)
@ -884,12 +884,12 @@ mpegts_packetizer_has_packets (MpegTSPacketizer2 * packetizer)
* If more than one section is available, the 'remaining' field will
* be set to the beginning of a valid GList containing other sections.
* */
GstMpegTsSection *
GstMpegtsSection *
mpegts_packetizer_push_section (MpegTSPacketizer2 * packetizer,
MpegTSPacketizerPacket * packet, GList ** remaining)
{
GstMpegTsSection *section;
GstMpegTsSection *res = NULL;
GstMpegtsSection *section;
GstMpegtsSection *res = NULL;
MpegTSPacketizerStream *stream;
gboolean long_packet;
guint8 pointer = 0, table_id;

View file

@ -348,7 +348,7 @@ G_GNUC_INTERNAL void mpegts_packetizer_clear_packet (MpegTSPacketizer2 *packetiz
G_GNUC_INTERNAL void mpegts_packetizer_remove_stream(MpegTSPacketizer2 *packetizer,
gint16 pid);
G_GNUC_INTERNAL GstMpegTsSection *mpegts_packetizer_push_section (MpegTSPacketizer2 *packetzer,
G_GNUC_INTERNAL GstMpegtsSection *mpegts_packetizer_push_section (MpegTSPacketizer2 *packetzer,
MpegTSPacketizerPacket *packet, GList **remaining);
/* Only valid if calculate_offset is TRUE */

View file

@ -91,7 +91,7 @@ mpegts_parse_program_stopped (MpegTSBase * base, MpegTSBaseProgram * program);
static GstFlowReturn
mpegts_parse_push (MpegTSBase * base, MpegTSPacketizerPacket * packet,
GstMpegTsSection * section);
GstMpegtsSection * section);
static MpegTSParsePad *mpegts_parse_create_tspad (MpegTSParse2 * parse,
const gchar * name);
@ -402,7 +402,7 @@ mpegts_parse_release_pad (GstElement * element, GstPad * pad)
static GstFlowReturn
mpegts_parse_tspad_push_section (MpegTSParse2 * parse, MpegTSParsePad * tspad,
GstMpegTsSection * section, MpegTSPacketizerPacket * packet)
GstMpegtsSection * section, MpegTSPacketizerPacket * packet)
{
GstFlowReturn ret = GST_FLOW_OK;
gboolean to_push = TRUE;
@ -480,7 +480,7 @@ pad_clear_for_push (GstPad * pad, MpegTSParse2 * parse)
static GstFlowReturn
mpegts_parse_push (MpegTSBase * base, MpegTSPacketizerPacket * packet,
GstMpegTsSection * section)
GstMpegtsSection * section)
{
MpegTSParse2 *parse = (MpegTSParse2 *) base;
guint32 pads_cookie;

View file

@ -275,7 +275,7 @@ gst_ts_demux_program_stopped (MpegTSBase * base, MpegTSBaseProgram * program);
static void gst_ts_demux_reset (MpegTSBase * base);
static GstFlowReturn
gst_ts_demux_push (MpegTSBase * base, MpegTSPacketizerPacket * packet,
GstMpegTsSection * section);
GstMpegtsSection * section);
static void gst_ts_demux_flush (MpegTSBase * base, gboolean hard);
static GstFlowReturn gst_ts_demux_drain (MpegTSBase * base);
static void
@ -960,7 +960,7 @@ static void
gst_ts_demux_create_tags (TSDemuxStream * stream)
{
MpegTSBaseStream *bstream = (MpegTSBaseStream *) stream;
const GstMpegTsDescriptor *desc = NULL;
const GstMpegtsDescriptor *desc = NULL;
int i, nb;
desc =
@ -1011,7 +1011,7 @@ create_pad_for_stream (MpegTSBase * base, MpegTSBaseStream * bstream,
gchar *name = NULL;
GstCaps *caps = NULL;
GstPadTemplate *template = NULL;
const GstMpegTsDescriptor *desc = NULL;
const GstMpegtsDescriptor *desc = NULL;
GstPad *pad = NULL;
gst_ts_demux_create_tags (stream);
@ -1025,7 +1025,7 @@ create_pad_for_stream (MpegTSBase * base, MpegTSBaseStream * bstream,
switch (bstream->stream_type) {
case ST_BD_AUDIO_AC3:
{
const GstMpegTsDescriptor *ac3_desc;
const GstMpegtsDescriptor *ac3_desc;
/* ATSC ac3 audio descriptor */
ac3_desc =
@ -1079,8 +1079,8 @@ create_pad_for_stream (MpegTSBase * base, MpegTSBaseStream * bstream,
/* Handle non-BluRay stream types */
switch (bstream->stream_type) {
case GST_MPEG_TS_STREAM_TYPE_VIDEO_MPEG1:
case GST_MPEG_TS_STREAM_TYPE_VIDEO_MPEG2:
case GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG1:
case GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG2:
case ST_PS_VIDEO_MPEG2_DCII:
/* FIXME : Use DCII registration code (ETV1 ?) to handle that special
* Stream type (ST_PS_VIDEO_MPEG2_DCII) */
@ -1093,12 +1093,12 @@ create_pad_for_stream (MpegTSBase * base, MpegTSBaseStream * bstream,
name = g_strdup_printf ("video_%04x", bstream->pid);
caps = gst_caps_new_simple ("video/mpeg",
"mpegversion", G_TYPE_INT,
bstream->stream_type == GST_MPEG_TS_STREAM_TYPE_VIDEO_MPEG1 ? 1 : 2,
bstream->stream_type == GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG1 ? 1 : 2,
"systemstream", G_TYPE_BOOLEAN, FALSE, NULL);
break;
case GST_MPEG_TS_STREAM_TYPE_AUDIO_MPEG1:
case GST_MPEG_TS_STREAM_TYPE_AUDIO_MPEG2:
case GST_MPEGTS_STREAM_TYPE_AUDIO_MPEG1:
case GST_MPEGTS_STREAM_TYPE_AUDIO_MPEG2:
GST_LOG ("mpeg audio");
template = gst_static_pad_template_get (&audio_template);
name = g_strdup_printf ("audio_%04x", bstream->pid);
@ -1109,7 +1109,7 @@ create_pad_for_stream (MpegTSBase * base, MpegTSBaseStream * bstream,
if (program->registration_id == DRF_ID_TSHV)
gst_caps_set_simple (caps, "layer", G_TYPE_INT, 2, NULL);
break;
case GST_MPEG_TS_STREAM_TYPE_PRIVATE_PES_PACKETS:
case GST_MPEGTS_STREAM_TYPE_PRIVATE_PES_PACKETS:
GST_LOG ("private data");
/* FIXME: Move all of this into a common method (there might be other
* types also, depending on registratino descriptors also
@ -1202,35 +1202,35 @@ create_pad_for_stream (MpegTSBase * base, MpegTSBaseStream * bstream,
/* name = g_strdup_printf ("private_%04x", bstream->pid); */
/* caps = gst_caps_new_simple ("hdv/aux-a", NULL); */
break;
case GST_MPEG_TS_STREAM_TYPE_AUDIO_AAC_ADTS:
case GST_MPEGTS_STREAM_TYPE_AUDIO_AAC_ADTS:
template = gst_static_pad_template_get (&audio_template);
name = g_strdup_printf ("audio_%04x", bstream->pid);
caps = gst_caps_new_simple ("audio/mpeg",
"mpegversion", G_TYPE_INT, 2,
"stream-format", G_TYPE_STRING, "adts", NULL);
break;
case GST_MPEG_TS_STREAM_TYPE_AUDIO_AAC_LATM:
case GST_MPEGTS_STREAM_TYPE_AUDIO_AAC_LATM:
template = gst_static_pad_template_get (&audio_template);
name = g_strdup_printf ("audio_%04x", bstream->pid);
caps = gst_caps_new_simple ("audio/mpeg",
"mpegversion", G_TYPE_INT, 4,
"stream-format", G_TYPE_STRING, "loas", NULL);
break;
case GST_MPEG_TS_STREAM_TYPE_VIDEO_MPEG4:
case GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG4:
template = gst_static_pad_template_get (&video_template);
name = g_strdup_printf ("video_%04x", bstream->pid);
caps = gst_caps_new_simple ("video/mpeg",
"mpegversion", G_TYPE_INT, 4,
"systemstream", G_TYPE_BOOLEAN, FALSE, NULL);
break;
case GST_MPEG_TS_STREAM_TYPE_VIDEO_H264:
case GST_MPEGTS_STREAM_TYPE_VIDEO_H264:
template = gst_static_pad_template_get (&video_template);
name = g_strdup_printf ("video_%04x", bstream->pid);
caps = gst_caps_new_simple ("video/x-h264",
"stream-format", G_TYPE_STRING, "byte-stream",
"alignment", G_TYPE_STRING, "nal", NULL);
break;
case GST_MPEG_TS_STREAM_TYPE_VIDEO_HEVC:
case GST_MPEGTS_STREAM_TYPE_VIDEO_HEVC:
template = gst_static_pad_template_get (&video_template);
name = g_strdup_printf ("video_%04x", bstream->pid);
caps = gst_caps_new_simple ("video/x-h265",
@ -1385,7 +1385,7 @@ gst_ts_demux_stream_added (MpegTSBase * base, MpegTSBaseStream * bstream,
gst_flow_combiner_add_pad (demux->flowcombiner, stream->pad);
}
if (bstream->stream_type == GST_MPEG_TS_STREAM_TYPE_VIDEO_H264) {
if (bstream->stream_type == GST_MPEGTS_STREAM_TYPE_VIDEO_H264) {
stream->scan_function =
(GstTsDemuxKeyFrameScanFunction) scan_keyframe_h264;
} else {
@ -2151,7 +2151,7 @@ beach:
static GstFlowReturn
gst_ts_demux_handle_packet (GstTSDemux * demux, TSDemuxStream * stream,
MpegTSPacketizerPacket * packet, GstMpegTsSection * section)
MpegTSPacketizerPacket * packet, GstMpegtsSection * section)
{
GstFlowReturn res = GST_FLOW_OK;
@ -2232,7 +2232,7 @@ gst_ts_demux_drain (MpegTSBase * base)
static GstFlowReturn
gst_ts_demux_push (MpegTSBase * base, MpegTSPacketizerPacket * packet,
GstMpegTsSection * section)
GstMpegtsSection * section)
{
GstTSDemux *demux = GST_TS_DEMUX_CAST (base);
TSDemuxStream *stream = NULL;

View file

@ -1737,7 +1737,7 @@ mpegtsmux_change_state (GstElement * element, GstStateChange transition)
static gboolean
mpegtsmux_send_event (GstElement * element, GstEvent * event)
{
GstMpegTsSection *section;
GstMpegtsSection *section;
MpegTsMux *mux = GST_MPEG_TSMUX (element);
g_return_val_if_fail (event != NULL, FALSE);

View file

@ -263,14 +263,14 @@ tsmux_get_si_interval (TsMux * mux)
/**
* tsmux_add_mpegts_si_section:
* @mux: a #TsMux
* @section: (transfer full): a #GstMpegTsSection to add
* @section: (transfer full): a #GstMpegtsSection to add
*
* Add a Service Information #GstMpegTsSection to the stream
* Add a Service Information #GstMpegtsSection to the stream
*
* Returns: #TRUE on success, #FALSE otherwise
*/
gboolean
tsmux_add_mpegts_si_section (TsMux * mux, GstMpegTsSection * section)
tsmux_add_mpegts_si_section (TsMux * mux, GstMpegtsSection * section)
{
TsMuxSection *tsmux_section;
@ -842,7 +842,7 @@ tsmux_write_ts_header (guint8 * buf, TsMuxPacketInfo * pi,
}
static gboolean
tsmux_section_write_packet (GstMpegTsSectionType * type,
tsmux_section_write_packet (GstMpegtsSectionType * type,
TsMuxSection * section, TsMux * mux)
{
GstBuffer *section_buffer;
@ -872,7 +872,7 @@ tsmux_section_write_packet (GstMpegTsSectionType * type,
payload_written = 0;
/* Wrap section data in a buffer without free function.
The data will be freed when the GstMpegTsSection is destroyed. */
The data will be freed when the GstMpegtsSection is destroyed. */
section_buffer = gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY,
data, data_size, 0, data_size, NULL, NULL);
@ -1138,7 +1138,7 @@ tsmux_write_pat (TsMux * mux)
pat = gst_mpegts_pat_new ();
for (cur = mux->programs; cur; cur = cur->next) {
GstMpegTsPatProgram *pat_pgm;
GstMpegtsPatProgram *pat_pgm;
TsMuxProgram *program = (TsMuxProgram *) cur->data;
pat_pgm = gst_mpegts_pat_program_new ();
@ -1187,8 +1187,8 @@ tsmux_write_pmt (TsMux * mux, TsMuxProgram * program)
* }
* }
*/
GstMpegTsDescriptor *descriptor;
GstMpegTsPMT *pmt;
GstMpegtsDescriptor *descriptor;
GstMpegtsPMT *pmt;
guint8 desc[] = { 0x0F, 0xFF, 0xFC, 0xFC };
guint i;
@ -1207,7 +1207,7 @@ tsmux_write_pmt (TsMux * mux, TsMuxProgram * program)
/* Write out the entries */
for (i = 0; i < program->streams->len; i++) {
GstMpegTsPMTStream *pmt_stream;
GstMpegtsPMTStream *pmt_stream;
TsMuxStream *stream = g_array_index (program->streams, TsMuxStream *, i);
pmt_stream = gst_mpegts_pmt_stream_new ();

View file

@ -105,7 +105,7 @@ typedef void (*TsMuxAllocFunc) (GstBuffer ** buf, void *user_data);
struct TsMuxSection {
TsMuxPacketInfo pi;
GstMpegTsSection *section;
GstMpegtsSection *section;
};
/* Information for the streams associated with one program */
@ -200,7 +200,7 @@ guint tsmux_get_pmt_interval (TsMuxProgram *program);
/* SI table management */
void tsmux_set_si_interval (TsMux *mux, guint interval);
guint tsmux_get_si_interval (TsMux *mux);
gboolean tsmux_add_mpegts_si_section (TsMux * mux, GstMpegTsSection * section);
gboolean tsmux_add_mpegts_si_section (TsMux * mux, GstMpegtsSection * section);
/* stream management */
TsMuxStream * tsmux_create_stream (TsMux *mux, TsMuxStreamType stream_type, guint16 pid, gchar *language);

View file

@ -697,9 +697,9 @@ tsmux_stream_add_data (TsMuxStream * stream, guint8 * data, guint len,
*/
void
tsmux_stream_get_es_descrs (TsMuxStream * stream,
GstMpegTsPMTStream * pmt_stream)
GstMpegtsPMTStream * pmt_stream)
{
GstMpegTsDescriptor *descriptor;
GstMpegtsDescriptor *descriptor;
g_return_if_fail (stream != NULL);
g_return_if_fail (pmt_stream != NULL);

View file

@ -228,7 +228,7 @@ void tsmux_stream_pcr_unref (TsMuxStream *stream);
gboolean tsmux_stream_is_pcr (TsMuxStream *stream);
gboolean tsmux_stream_at_pes_start (TsMuxStream *stream);
void tsmux_stream_get_es_descrs (TsMuxStream *stream, GstMpegTsPMTStream *pmt_stream);
void tsmux_stream_get_es_descrs (TsMuxStream *stream, GstMpegtsPMTStream *pmt_stream);
gint tsmux_stream_bytes_in_buffer (TsMuxStream *stream);
gint tsmux_stream_bytes_avail (TsMuxStream *stream);

View file

@ -70,7 +70,7 @@ cam_conditional_access_destroy (CamConditionalAccess * cas)
}
static CamReturn
send_ca_pmt (CamConditionalAccess * cas, GstMpegTsPMT * pmt,
send_ca_pmt (CamConditionalAccess * cas, GstMpegtsPMT * pmt,
guint8 list_management, guint8 cmd_id)
{
CamReturn ret;
@ -108,7 +108,7 @@ send_ca_pmt (CamConditionalAccess * cas, GstMpegTsPMT * pmt,
CamReturn
cam_conditional_access_set_pmt (CamConditionalAccess * cas,
GstMpegTsPMT * pmt, CamConditionalAccessPmtFlag flag)
GstMpegtsPMT * pmt, CamConditionalAccessPmtFlag flag)
{
return send_ca_pmt (cas, pmt, flag, 0x01 /* ok_descrambling */ );
}

View file

@ -50,6 +50,6 @@ CamConditionalAccess *cam_conditional_access_new (void);
void cam_conditional_access_destroy (CamConditionalAccess *cas);
CamReturn cam_conditional_access_set_pmt (CamConditionalAccess *cas,
GstMpegTsPMT *pmt, CamConditionalAccessPmtFlag flag);
GstMpegtsPMT *pmt, CamConditionalAccessPmtFlag flag);
#endif /* CAM_CONDITIONAL_ACCESS_H */

View file

@ -217,7 +217,7 @@ cam_device_ready (CamDevice * device)
void
cam_device_set_pmt (CamDevice * device,
GstMpegTsPMT * pmt, CamConditionalAccessPmtFlag flag)
GstMpegtsPMT * pmt, CamConditionalAccessPmtFlag flag)
{
g_return_if_fail (device != NULL);
g_return_if_fail (device->state == CAM_DEVICE_STATE_OPEN);

View file

@ -64,6 +64,6 @@ void cam_device_close (CamDevice *device);
gboolean cam_device_ready (CamDevice *device);
void cam_device_poll (CamDevice *device);
void cam_device_set_pmt (CamDevice *device,
GstMpegTsPMT *pmt, CamConditionalAccessPmtFlag flag);
GstMpegtsPMT *pmt, CamConditionalAccessPmtFlag flag);
#endif /* CAM_DEVICE_H */

View file

@ -114,7 +114,7 @@ cam_sw_client_close (CamSwClient * client)
}
static void
send_ca_pmt (CamSwClient * client, GstMpegTsPMT * pmt,
send_ca_pmt (CamSwClient * client, GstMpegtsPMT * pmt,
guint8 list_management, guint8 cmd_id)
{
guint8 *buffer;
@ -150,7 +150,7 @@ send_ca_pmt (CamSwClient * client, GstMpegTsPMT * pmt,
}
void
cam_sw_client_set_pmt (CamSwClient * client, GstMpegTsPMT * pmt)
cam_sw_client_set_pmt (CamSwClient * client, GstMpegtsPMT * pmt)
{
g_return_if_fail (client != NULL);
g_return_if_fail (pmt != NULL);
@ -160,7 +160,7 @@ cam_sw_client_set_pmt (CamSwClient * client, GstMpegTsPMT * pmt)
}
void
cam_sw_client_update_pmt (CamSwClient * client, GstMpegTsPMT * pmt)
cam_sw_client_update_pmt (CamSwClient * client, GstMpegtsPMT * pmt)
{
g_return_if_fail (client != NULL);
g_return_if_fail (pmt != NULL);

View file

@ -48,7 +48,7 @@ void cam_sw_client_free (CamSwClient *sw_client);
gboolean cam_sw_client_open (CamSwClient *sw_client, const char *sock_path);
void cam_sw_client_close (CamSwClient *sw_client);
void cam_sw_client_set_pmt (CamSwClient *sw_client, GstMpegTsPMT *pmt);
void cam_sw_client_update_pmt (CamSwClient *sw_client, GstMpegTsPMT *pmt);
void cam_sw_client_set_pmt (CamSwClient *sw_client, GstMpegtsPMT *pmt);
void cam_sw_client_update_pmt (CamSwClient *sw_client, GstMpegtsPMT *pmt);
#endif /* CAM_SW_CLIENT_H */

View file

@ -178,7 +178,7 @@ get_ca_descriptors_length (GPtrArray * descriptors)
guint len = 0;
for (i = 0; i < nb_desc; i++) {
GstMpegTsDescriptor *desc = g_ptr_array_index (descriptors, i);
GstMpegtsDescriptor *desc = g_ptr_array_index (descriptors, i);
if (desc->tag == 0x09)
len += desc->length;
}
@ -193,7 +193,7 @@ write_ca_descriptors (guint8 * body, GPtrArray * descriptors)
nb_desc = descriptors->len;
for (i = 0; i < nb_desc; i++) {
GstMpegTsDescriptor *desc = g_ptr_array_index (descriptors, i);
GstMpegtsDescriptor *desc = g_ptr_array_index (descriptors, i);
if (desc->tag == 0x09) {
memcpy (body, desc->data, desc->length);
body += desc->length;
@ -204,10 +204,10 @@ write_ca_descriptors (guint8 * body, GPtrArray * descriptors)
}
guint8 *
cam_build_ca_pmt (GstMpegTsPMT * pmt, guint8 list_management, guint8 cmd_id,
cam_build_ca_pmt (GstMpegtsPMT * pmt, guint8 list_management, guint8 cmd_id,
guint * size)
{
GstMpegTsSection *section = (GstMpegTsSection *) pmt;
GstMpegtsSection *section = (GstMpegtsSection *) pmt;
guint body_size = 0;
guint8 *buffer;
guint8 *body;
@ -225,7 +225,7 @@ cam_build_ca_pmt (GstMpegTsPMT * pmt, guint8 list_management, guint8 cmd_id,
body_size += 6 + len;
for (i = 0; i < pmt->streams->len; i++) {
GstMpegTsPMTStream *pmtstream = g_ptr_array_index (pmt->streams, i);
GstMpegtsPMTStream *pmtstream = g_ptr_array_index (pmt->streams, i);
len = get_ca_descriptors_length (pmtstream->descriptors);
if (len > 0)
@ -269,7 +269,7 @@ cam_build_ca_pmt (GstMpegTsPMT * pmt, guint8 list_management, guint8 cmd_id,
}
for (i = 0; i < pmt->streams->len; i++) {
GstMpegTsPMTStream *pmtstream = g_ptr_array_index (pmt->streams, i);
GstMpegtsPMTStream *pmtstream = g_ptr_array_index (pmt->streams, i);
*body++ = pmtstream->stream_type;
GST_WRITE_UINT16_BE (body, pmtstream->pid);

View file

@ -55,6 +55,6 @@ typedef enum
guint8 cam_calc_length_field_size (guint length);
guint8 cam_write_length_field (guint8 *buff, guint length);
guint8 cam_read_length_field (guint8 *buff, guint *length);
guint8 *cam_build_ca_pmt (GstMpegTsPMT *pmt, guint8 list_management, guint8 cmd_id, guint *size);
guint8 *cam_build_ca_pmt (GstMpegtsPMT *pmt, guint8 list_management, guint8 cmd_id, guint *size);
#endif /* CAM_UTILS_H */

View file

@ -94,10 +94,10 @@ typedef struct
gint program_number;
guint16 pmt_pid;
guint16 pcr_pid;
GstMpegTsSection *section;
GstMpegTsSection *old_section;
const GstMpegTsPMT *pmt;
const GstMpegTsPMT *old_pmt;
GstMpegtsSection *section;
GstMpegtsSection *old_section;
const GstMpegtsPMT *pmt;
const GstMpegtsPMT *old_pmt;
gboolean selected;
gboolean pmt_active;
gboolean active;
@ -117,9 +117,9 @@ static GstStateChangeReturn dvb_base_bin_change_state (GstElement * element,
GstStateChange transition);
static void dvb_base_bin_handle_message (GstBin * bin, GstMessage * message);
static void dvb_base_bin_pat_info_cb (DvbBaseBin * dvbbasebin,
GstMpegTsSection * pat);
GstMpegtsSection * pat);
static void dvb_base_bin_pmt_info_cb (DvbBaseBin * dvbbasebin,
GstMpegTsSection * pmt);
GstMpegtsSection * pmt);
static GstPad *dvb_base_bin_request_new_pad (GstElement * element,
GstPadTemplate * templ, const gchar * name, const GstCaps * caps);
static void dvb_base_bin_release_pad (GstElement * element, GstPad * pad);
@ -661,7 +661,7 @@ dvb_base_bin_reset_pmtlist (DvbBaseBin * dvbbasebin)
{
CamConditionalAccessPmtFlag flag;
GList *walk;
GstMpegTsPMT *pmt;
GstMpegtsPMT *pmt;
walk = dvbbasebin->pmtlist;
while (walk) {
@ -677,7 +677,7 @@ dvb_base_bin_reset_pmtlist (DvbBaseBin * dvbbasebin)
flag = CAM_CONDITIONAL_ACCESS_PMT_FLAG_MORE;
}
pmt = (GstMpegTsPMT *) walk->data;
pmt = (GstMpegtsPMT *) walk->data;
cam_device_set_pmt (dvbbasebin->hwcam, pmt, flag);
walk = walk->next;
@ -793,13 +793,13 @@ dvb_base_bin_rebuild_filter (DvbBaseBin * dvbbasebin)
static void
dvb_base_bin_remove_pmt_streams (DvbBaseBin * dvbbasebin,
const GstMpegTsPMT * pmt)
const GstMpegtsPMT * pmt)
{
gint i;
DvbBaseBinStream *stream;
for (i = 0; i < pmt->streams->len; i++) {
GstMpegTsPMTStream *pmtstream = g_ptr_array_index (pmt->streams, i);
GstMpegtsPMTStream *pmtstream = g_ptr_array_index (pmt->streams, i);
stream = dvb_base_bin_get_stream (dvbbasebin, pmtstream->pid);
if (stream == NULL) {
@ -813,13 +813,13 @@ dvb_base_bin_remove_pmt_streams (DvbBaseBin * dvbbasebin,
}
static void
dvb_base_bin_add_pmt_streams (DvbBaseBin * dvbbasebin, const GstMpegTsPMT * pmt)
dvb_base_bin_add_pmt_streams (DvbBaseBin * dvbbasebin, const GstMpegtsPMT * pmt)
{
DvbBaseBinStream *stream;
gint i;
for (i = 0; i < pmt->streams->len; i++) {
GstMpegTsPMTStream *pmtstream = g_ptr_array_index (pmt->streams, i);
GstMpegtsPMTStream *pmtstream = g_ptr_array_index (pmt->streams, i);
GST_DEBUG ("filtering stream %d stream_type %d", pmtstream->pid,
pmtstream->stream_type);
@ -914,7 +914,7 @@ dvb_base_bin_handle_message (GstBin * bin, GstMessage * message)
/* 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);
GstMpegtsSection *section = gst_message_parse_mpegts_section (message);
if (section) {
switch (GST_MPEGTS_SECTION_TYPE (section)) {
@ -938,7 +938,7 @@ dvb_base_bin_handle_message (GstBin * bin, GstMessage * message)
static void
dvb_base_bin_pat_info_cb (DvbBaseBin * dvbbasebin, GstMpegTsSection * section)
dvb_base_bin_pat_info_cb (DvbBaseBin * dvbbasebin, GstMpegtsSection * section)
{
GPtrArray *pat;
DvbBaseBinProgram *program;
@ -953,7 +953,7 @@ dvb_base_bin_pat_info_cb (DvbBaseBin * dvbbasebin, GstMpegTsSection * section)
}
for (i = 0; i < pat->len; i++) {
GstMpegTsPatProgram *patp = g_ptr_array_index (pat, i);
GstMpegtsPatProgram *patp = g_ptr_array_index (pat, i);
program = dvb_base_bin_get_program (dvbbasebin, patp->program_number);
if (program == NULL)
@ -984,9 +984,9 @@ dvb_base_bin_pat_info_cb (DvbBaseBin * dvbbasebin, GstMpegTsSection * section)
}
static void
dvb_base_bin_pmt_info_cb (DvbBaseBin * dvbbasebin, GstMpegTsSection * section)
dvb_base_bin_pmt_info_cb (DvbBaseBin * dvbbasebin, GstMpegtsSection * section)
{
const GstMpegTsPMT *pmt;
const GstMpegtsPMT *pmt;
DvbBaseBinProgram *program;
guint program_number;

View file

@ -70,9 +70,9 @@ static const guint8 stt_data_check[] = {
GST_START_TEST (test_mpegts_pat)
{
GstMpegTsPatProgram *program;
GstMpegtsPatProgram *program;
GPtrArray *pat;
GstMpegTsSection *pat_section;
GstMpegtsSection *pat_section;
gint i;
guint8 *data;
gsize data_size;
@ -129,10 +129,10 @@ GST_END_TEST;
GST_START_TEST (test_mpegts_pmt)
{
GstMpegTsPMT *pmt;
GstMpegTsPMTStream *stream;
GstMpegTsDescriptor *desc;
GstMpegTsSection *pmt_section;
GstMpegtsPMT *pmt;
GstMpegtsPMTStream *stream;
GstMpegtsDescriptor *desc;
GstMpegtsSection *pmt_section;
guint8 *data;
gsize data_size;
gint i;
@ -149,7 +149,7 @@ GST_START_TEST (test_mpegts_pmt)
for (i = 0; i < 2; i++) {
stream = gst_mpegts_pmt_stream_new ();
stream->stream_type = GST_MPEG_TS_STREAM_TYPE_VIDEO_H264;
stream->stream_type = GST_MPEGTS_STREAM_TYPE_VIDEO_H264;
stream->pid = 0x40 + i;
desc = gst_mpegts_descriptor_from_registration ("HDMV", NULL, 0);
@ -162,26 +162,26 @@ GST_START_TEST (test_mpegts_pmt)
fail_if (pmt_section == NULL);
/* Re-parse the PMT from section */
pmt = (GstMpegTsPMT *) gst_mpegts_section_get_pmt (pmt_section);
pmt = (GstMpegtsPMT *) gst_mpegts_section_get_pmt (pmt_section);
fail_unless (pmt->pcr_pid == 0x1FFF);
fail_unless (pmt->program_number == 1);
fail_unless (pmt->descriptors->len == 1);
fail_unless (pmt->streams->len == 2);
desc = (GstMpegTsDescriptor *) gst_mpegts_find_descriptor (pmt->descriptors,
desc = (GstMpegtsDescriptor *) gst_mpegts_find_descriptor (pmt->descriptors,
GST_MTS_DESC_REGISTRATION);
fail_if (desc == NULL);
for (i = 0; i < 2; i++) {
stream = g_ptr_array_index (pmt->streams, i);
fail_unless (stream->stream_type == GST_MPEG_TS_STREAM_TYPE_VIDEO_H264);
fail_unless (stream->stream_type == GST_MPEGTS_STREAM_TYPE_VIDEO_H264);
fail_unless (stream->pid == 0x40 + i);
fail_unless (stream->descriptors->len == 1);
desc =
(GstMpegTsDescriptor *) gst_mpegts_find_descriptor (stream->descriptors,
(GstMpegtsDescriptor *) gst_mpegts_find_descriptor (stream->descriptors,
GST_MTS_DESC_REGISTRATION);
fail_if (desc == NULL);
}
@ -198,7 +198,7 @@ GST_START_TEST (test_mpegts_pmt)
/* Check assertion on bad CRC. Reset parsed data, and make the CRC corrupt */
pmt_section->data[pmt_section->section_length - 1]++;
pmt_section->cached_parsed = NULL;
pmt = (GstMpegTsPMT *) gst_mpegts_section_get_pmt (pmt_section);
pmt = (GstMpegtsPMT *) gst_mpegts_section_get_pmt (pmt_section);
fail_unless (pmt == NULL);
@ -210,10 +210,10 @@ GST_END_TEST;
GST_START_TEST (test_mpegts_nit)
{
GstMpegTsNITStream *stream;
GstMpegTsNIT *nit;
GstMpegTsDescriptor *desc;
GstMpegTsSection *nit_section;
GstMpegtsNITStream *stream;
GstMpegtsNIT *nit;
GstMpegtsDescriptor *desc;
GstMpegtsSection *nit_section;
gchar *name;
guint8 *data;
gsize data_size;
@ -246,14 +246,14 @@ GST_START_TEST (test_mpegts_nit)
fail_if (nit_section == NULL);
/* Re-parse the NIT from section */
nit = (GstMpegTsNIT *) gst_mpegts_section_get_nit (nit_section);
nit = (GstMpegtsNIT *) gst_mpegts_section_get_nit (nit_section);
fail_unless (nit->descriptors->len == 1);
fail_unless (nit->streams->len == 2);
fail_unless (nit->actual_network == TRUE);
fail_unless (nit->network_id == 0x1FFF);
desc = (GstMpegTsDescriptor *) gst_mpegts_find_descriptor (nit->descriptors,
desc = (GstMpegtsDescriptor *) gst_mpegts_find_descriptor (nit->descriptors,
GST_MTS_DESC_DVB_NETWORK_NAME);
fail_if (desc == NULL);
@ -269,7 +269,7 @@ GST_START_TEST (test_mpegts_nit)
fail_unless (stream->descriptors->len == 1);
desc =
(GstMpegTsDescriptor *) gst_mpegts_find_descriptor (stream->descriptors,
(GstMpegtsDescriptor *) gst_mpegts_find_descriptor (stream->descriptors,
GST_MTS_DESC_DVB_NETWORK_NAME);
fail_unless (gst_mpegts_descriptor_parse_dvb_network_name (desc,
@ -290,7 +290,7 @@ GST_START_TEST (test_mpegts_nit)
/* Check assertion on bad CRC. Reset parsed data, and make the CRC corrupt */
nit_section->data[nit_section->section_length - 1]++;
nit_section->cached_parsed = NULL;
nit = (GstMpegTsNIT *) gst_mpegts_section_get_nit (nit_section);
nit = (GstMpegtsNIT *) gst_mpegts_section_get_nit (nit_section);
fail_unless (nit == NULL);
@ -301,10 +301,10 @@ GST_END_TEST;
GST_START_TEST (test_mpegts_sdt)
{
GstMpegTsSDTService *service;
GstMpegTsSDT *sdt;
GstMpegTsDescriptor *desc;
GstMpegTsSection *sdt_section;
GstMpegtsSDTService *service;
GstMpegtsSDT *sdt;
GstMpegtsDescriptor *desc;
GstMpegtsSection *sdt_section;
guint8 *data;
gsize data_size;
gint i;
@ -335,7 +335,7 @@ GST_START_TEST (test_mpegts_sdt)
fail_if (sdt_section == NULL);
/* Re-parse the SDT from section */
sdt = (GstMpegTsSDT *) gst_mpegts_section_get_sdt (sdt_section);
sdt = (GstMpegtsSDT *) gst_mpegts_section_get_sdt (sdt_section);
fail_unless (sdt->services->len == 2);
fail_unless (sdt->actual_ts == TRUE);
@ -354,7 +354,7 @@ GST_START_TEST (test_mpegts_sdt)
GST_MPEGTS_RUNNING_STATUS_RUNNING + i);
fail_unless (service->free_CA_mode == TRUE);
desc = (GstMpegTsDescriptor *)
desc = (GstMpegtsDescriptor *)
gst_mpegts_find_descriptor (service->descriptors,
GST_MTS_DESC_DVB_SERVICE);
@ -378,7 +378,7 @@ GST_START_TEST (test_mpegts_sdt)
/* Check assertion on bad CRC. Reset parsed data, and make the CRC corrupt */
sdt_section->data[sdt_section->section_length - 1]++;
sdt_section->cached_parsed = NULL;
sdt = (GstMpegTsSDT *) gst_mpegts_section_get_sdt (sdt_section);
sdt = (GstMpegtsSDT *) gst_mpegts_section_get_sdt (sdt_section);
fail_unless (sdt == NULL);
@ -389,8 +389,8 @@ GST_END_TEST;
GST_START_TEST (test_mpegts_atsc_stt)
{
const GstMpegTsAtscSTT *stt;
GstMpegTsSection *section;
const GstMpegtsAtscSTT *stt;
GstMpegtsSection *section;
guint8 *data;
GstDateTime *dt;
@ -407,7 +407,7 @@ GST_START_TEST (test_mpegts_atsc_stt)
fail_unless (stt->ds_dayofmonth == 0);
fail_unless (stt->ds_hour == 0);
dt = gst_mpegts_atsc_stt_get_datetime_utc ((GstMpegTsAtscSTT *) stt);
dt = gst_mpegts_atsc_stt_get_datetime_utc ((GstMpegtsAtscSTT *) stt);
fail_unless (gst_date_time_get_day (dt) == 30);
fail_unless (gst_date_time_get_month (dt) == 12);
fail_unless (gst_date_time_get_year (dt) == 1998);
@ -428,7 +428,7 @@ static const guint8 registration_descriptor[] = {
GST_START_TEST (test_mpegts_descriptors)
{
GstMpegTsDescriptor *desc;
GstMpegtsDescriptor *desc;
guint i;
/*
@ -461,8 +461,8 @@ static const guint8 service_descriptor[] = {
GST_START_TEST (test_mpegts_dvb_descriptors)
{
GstMpegTsDescriptor *desc;
GstMpegTsDVBServiceType service_type;
GstMpegtsDescriptor *desc;
GstMpegtsDVBServiceType service_type;
gchar *string, *provider;
gchar long_string[257];
gboolean ret;

View file

@ -84,23 +84,23 @@ descriptor_name (gint val)
GEnumValue *en;
en = g_enum_get_value (G_ENUM_CLASS (g_type_class_peek
(GST_TYPE_MPEG_TS_DESCRIPTOR_TYPE)), val);
(GST_TYPE_MPEGTS_DESCRIPTOR_TYPE)), val);
if (en == NULL)
/* Else try with DVB enum types */
en = g_enum_get_value (G_ENUM_CLASS (g_type_class_peek
(GST_TYPE_MPEG_TS_DVB_DESCRIPTOR_TYPE)), val);
(GST_TYPE_MPEGTS_DVB_DESCRIPTOR_TYPE)), val);
if (en == NULL)
/* Else try with ATSC enum types */
en = g_enum_get_value (G_ENUM_CLASS (g_type_class_peek
(GST_TYPE_MPEG_TS_ATSC_DESCRIPTOR_TYPE)), val);
(GST_TYPE_MPEGTS_ATSC_DESCRIPTOR_TYPE)), val);
if (en == NULL)
/* Else try with ISB enum types */
en = g_enum_get_value (G_ENUM_CLASS (g_type_class_peek
(GST_TYPE_MPEG_TS_ISDB_DESCRIPTOR_TYPE)), val);
(GST_TYPE_MPEGTS_ISDB_DESCRIPTOR_TYPE)), val);
if (en == NULL)
/* Else try with misc enum types */
en = g_enum_get_value (G_ENUM_CLASS (g_type_class_peek
(GST_TYPE_MPEG_TS_MISC_DESCRIPTOR_TYPE)), val);
(GST_TYPE_MPEGTS_MISC_DESCRIPTOR_TYPE)), val);
if (en == NULL)
return "UNKNOWN/PRIVATE";
return en->value_nick;
@ -112,19 +112,19 @@ table_id_name (gint val)
GEnumValue *en;
en = g_enum_get_value (G_ENUM_CLASS (g_type_class_peek
(GST_TYPE_MPEG_TS_SECTION_TABLE_ID)), val);
(GST_TYPE_MPEGTS_SECTION_TABLE_ID)), val);
if (en == NULL)
/* Else try with DVB enum types */
en = g_enum_get_value (G_ENUM_CLASS (g_type_class_peek
(GST_TYPE_MPEG_TS_SECTION_DVB_TABLE_ID)), val);
(GST_TYPE_MPEGTS_SECTION_DVB_TABLE_ID)), val);
if (en == NULL)
/* Else try with ATSC enum types */
en = g_enum_get_value (G_ENUM_CLASS (g_type_class_peek
(GST_TYPE_MPEG_TS_SECTION_ATSC_TABLE_ID)), val);
(GST_TYPE_MPEGTS_SECTION_ATSC_TABLE_ID)), val);
if (en == NULL)
/* Else try with SCTE enum types */
en = g_enum_get_value (G_ENUM_CLASS (g_type_class_peek
(GST_TYPE_MPEG_TS_SECTION_SCTE_TABLE_ID)), val);
(GST_TYPE_MPEGTS_SECTION_SCTE_TABLE_ID)), val);
if (en == NULL)
return "UNKNOWN/PRIVATE";
return en->value_nick;
@ -143,27 +143,27 @@ enum_name (GType instance_type, gint val)
}
static void
dump_cable_delivery_descriptor (GstMpegTsDescriptor * desc, guint spacing)
dump_cable_delivery_descriptor (GstMpegtsDescriptor * desc, guint spacing)
{
GstMpegTsCableDeliverySystemDescriptor res;
GstMpegtsCableDeliverySystemDescriptor res;
if (gst_mpegts_descriptor_parse_cable_delivery_system (desc, &res)) {
g_printf ("%*s Cable Delivery Descriptor\n", spacing, "");
g_printf ("%*s Frequency : %d Hz\n", spacing, "", res.frequency);
g_printf ("%*s Outer FEC : %d (%s)\n", spacing, "", res.outer_fec,
enum_name (GST_TYPE_MPEG_TS_CABLE_OUTER_FEC_SCHEME, res.outer_fec));
enum_name (GST_TYPE_MPEGTS_CABLE_OUTER_FEC_SCHEME, res.outer_fec));
g_printf ("%*s modulation : %d (%s)\n", spacing, "", res.modulation,
enum_name (GST_TYPE_MPEG_TS_MODULATION_TYPE, res.modulation));
enum_name (GST_TYPE_MPEGTS_MODULATION_TYPE, res.modulation));
g_printf ("%*s Symbol rate : %d sym/s\n", spacing, "", res.symbol_rate);
g_printf ("%*s Inner FEC : %d (%s)\n", spacing, "", res.fec_inner,
enum_name (GST_TYPE_MPEG_TS_DVB_CODE_RATE, res.fec_inner));
enum_name (GST_TYPE_MPEGTS_DVB_CODE_RATE, res.fec_inner));
}
}
static void
dump_terrestrial_delivery (GstMpegTsDescriptor * desc, guint spacing)
dump_terrestrial_delivery (GstMpegtsDescriptor * desc, guint spacing)
{
GstMpegTsTerrestrialDeliverySystemDescriptor res;
GstMpegtsTerrestrialDeliverySystemDescriptor res;
if (gst_mpegts_descriptor_parse_terrestrial_delivery_system (desc, &res)) {
g_printf ("%*s Terrestrial Delivery Descriptor\n", spacing, "");
@ -176,24 +176,24 @@ dump_terrestrial_delivery (GstMpegTsDescriptor * desc, guint spacing)
g_printf ("%*s MPE FEC : %s\n", spacing, "",
res.mpe_fec ? "TRUE" : "FALSE");
g_printf ("%*s Constellation : %d (%s)\n", spacing, "",
res.constellation, enum_name (GST_TYPE_MPEG_TS_MODULATION_TYPE,
res.constellation, enum_name (GST_TYPE_MPEGTS_MODULATION_TYPE,
res.constellation));
g_printf ("%*s Hierarchy : %d (%s)\n", spacing, "",
res.hierarchy, enum_name (GST_TYPE_MPEG_TS_TERRESTRIAL_HIERARCHY,
res.hierarchy, enum_name (GST_TYPE_MPEGTS_TERRESTRIAL_HIERARCHY,
res.hierarchy));
g_printf ("%*s Code Rate HP : %d (%s)\n", spacing, "",
res.code_rate_hp, enum_name (GST_TYPE_MPEG_TS_DVB_CODE_RATE,
res.code_rate_hp, enum_name (GST_TYPE_MPEGTS_DVB_CODE_RATE,
res.code_rate_hp));
g_printf ("%*s Code Rate LP : %d (%s)\n", spacing, "",
res.code_rate_lp, enum_name (GST_TYPE_MPEG_TS_DVB_CODE_RATE,
res.code_rate_lp, enum_name (GST_TYPE_MPEGTS_DVB_CODE_RATE,
res.code_rate_lp));
g_printf ("%*s Guard Interval : %d (%s)\n", spacing, "",
res.guard_interval,
enum_name (GST_TYPE_MPEG_TS_TERRESTRIAL_GUARD_INTERVAL,
enum_name (GST_TYPE_MPEGTS_TERRESTRIAL_GUARD_INTERVAL,
res.guard_interval));
g_printf ("%*s Transmission Mode : %d (%s)\n", spacing, "",
res.transmission_mode,
enum_name (GST_TYPE_MPEG_TS_TERRESTRIAL_TRANSMISSION_MODE,
enum_name (GST_TYPE_MPEGTS_TERRESTRIAL_TRANSMISSION_MODE,
res.transmission_mode));
g_printf ("%*s Other Frequency : %s\n", spacing, "",
res.other_frequency ? "TRUE" : "FALSE");
@ -201,7 +201,7 @@ dump_terrestrial_delivery (GstMpegTsDescriptor * desc, guint spacing)
}
static void
dump_dvb_service_list (GstMpegTsDescriptor * desc, guint spacing)
dump_dvb_service_list (GstMpegtsDescriptor * desc, guint spacing)
{
GPtrArray *res;
@ -209,26 +209,26 @@ dump_dvb_service_list (GstMpegTsDescriptor * desc, guint spacing)
guint i;
g_printf ("%*s DVB Service List Descriptor\n", spacing, "");
for (i = 0; i < res->len; i++) {
GstMpegTsDVBServiceListItem *item = g_ptr_array_index (res, i);
GstMpegtsDVBServiceListItem *item = g_ptr_array_index (res, i);
g_printf ("%*s Service #%d, id:0x%04x, type:0x%x (%s)\n",
spacing, "", i, item->service_id, item->type,
enum_name (GST_TYPE_MPEG_TS_DVB_SERVICE_TYPE, item->type));
enum_name (GST_TYPE_MPEGTS_DVB_SERVICE_TYPE, item->type));
}
g_ptr_array_unref (res);
}
}
static void
dump_logical_channel_descriptor (GstMpegTsDescriptor * desc, guint spacing)
dump_logical_channel_descriptor (GstMpegtsDescriptor * desc, guint spacing)
{
GstMpegTsLogicalChannelDescriptor res;
GstMpegtsLogicalChannelDescriptor res;
guint i;
if (gst_mpegts_descriptor_parse_logical_channel (desc, &res)) {
g_printf ("%*s Logical Channel Descriptor (%d channels)\n", spacing, "",
res.nb_channels);
for (i = 0; i < res.nb_channels; i++) {
GstMpegTsLogicalChannel *chann = &res.channels[i];
GstMpegtsLogicalChannel *chann = &res.channels[i];
g_printf ("%*s service_id: 0x%04x, logical channel number:%4d\n",
spacing, "", chann->service_id, chann->logical_channel_number);
}
@ -236,13 +236,13 @@ dump_logical_channel_descriptor (GstMpegTsDescriptor * desc, guint spacing)
}
static void
dump_multiligual_network_name (GstMpegTsDescriptor * desc, guint spacing)
dump_multiligual_network_name (GstMpegtsDescriptor * desc, guint spacing)
{
GPtrArray *items;
if (gst_mpegts_descriptor_parse_dvb_multilingual_network_name (desc, &items)) {
guint i;
for (i = 0; i < items->len; i++) {
GstMpegTsDvbMultilingualNetworkNameItem *item =
GstMpegtsDvbMultilingualNetworkNameItem *item =
g_ptr_array_index (items, i);
g_printf ("%*s item : %u\n", spacing, "", i);
g_printf ("%*s language_code : %s\n", spacing, "", item->language_code);
@ -253,13 +253,13 @@ dump_multiligual_network_name (GstMpegTsDescriptor * desc, guint spacing)
}
static void
dump_multiligual_bouquet_name (GstMpegTsDescriptor * desc, guint spacing)
dump_multiligual_bouquet_name (GstMpegtsDescriptor * desc, guint spacing)
{
GPtrArray *items;
if (gst_mpegts_descriptor_parse_dvb_multilingual_bouquet_name (desc, &items)) {
guint i;
for (i = 0; i < items->len; i++) {
GstMpegTsDvbMultilingualBouquetNameItem *item =
GstMpegtsDvbMultilingualBouquetNameItem *item =
g_ptr_array_index (items, i);
g_printf ("%*s item : %u\n", spacing, "", i);
g_printf ("%*s language_code : %s\n", spacing, "", item->language_code);
@ -270,13 +270,13 @@ dump_multiligual_bouquet_name (GstMpegTsDescriptor * desc, guint spacing)
}
static void
dump_multiligual_service_name (GstMpegTsDescriptor * desc, guint spacing)
dump_multiligual_service_name (GstMpegtsDescriptor * desc, guint spacing)
{
GPtrArray *items;
if (gst_mpegts_descriptor_parse_dvb_multilingual_service_name (desc, &items)) {
guint i;
for (i = 0; i < items->len; i++) {
GstMpegTsDvbMultilingualServiceNameItem *item =
GstMpegtsDvbMultilingualServiceNameItem *item =
g_ptr_array_index (items, i);
g_printf ("%*s item : %u\n", spacing, "", i);
g_printf ("%*s language_code : %s\n", spacing, "", item->language_code);
@ -288,7 +288,7 @@ dump_multiligual_service_name (GstMpegTsDescriptor * desc, guint spacing)
}
static void
dump_multiligual_component (GstMpegTsDescriptor * desc, guint spacing)
dump_multiligual_component (GstMpegtsDescriptor * desc, guint spacing)
{
GPtrArray *items;
guint8 tag;
@ -297,7 +297,7 @@ dump_multiligual_component (GstMpegTsDescriptor * desc, guint spacing)
guint8 i;
g_printf ("%*s component_tag : 0x%02x\n", spacing, "", tag);
for (i = 0; i < items->len; i++) {
GstMpegTsDvbMultilingualComponentItem *item =
GstMpegtsDvbMultilingualComponentItem *item =
g_ptr_array_index (items, i);
g_printf ("%*s item : %u\n", spacing, "", i);
g_printf ("%*s language_code : %s\n", spacing, "",
@ -309,13 +309,13 @@ dump_multiligual_component (GstMpegTsDescriptor * desc, guint spacing)
}
static void
dump_linkage (GstMpegTsDescriptor * desc, guint spacing)
dump_linkage (GstMpegtsDescriptor * desc, guint spacing)
{
GstMpegTsDVBLinkageDescriptor *res;
GstMpegtsDVBLinkageDescriptor *res;
if (gst_mpegts_descriptor_parse_dvb_linkage (desc, &res)) {
g_printf ("%*s Linkage Descriptor : 0x%02x (%s)\n", spacing, "",
res->linkage_type, enum_name (GST_TYPE_MPEG_TS_DVB_LINKAGE_TYPE,
res->linkage_type, enum_name (GST_TYPE_MPEGTS_DVB_LINKAGE_TYPE,
res->linkage_type));
g_printf ("%*s Transport Stream ID : 0x%04x\n", spacing, "",
@ -328,11 +328,11 @@ dump_linkage (GstMpegTsDescriptor * desc, guint spacing)
switch (res->linkage_type) {
case GST_MPEGTS_DVB_LINKAGE_MOBILE_HAND_OVER:
{
GstMpegTsDVBLinkageMobileHandOver *linkage =
(GstMpegTsDVBLinkageMobileHandOver *) res->linkage_data;
GstMpegtsDVBLinkageMobileHandOver *linkage =
(GstMpegtsDVBLinkageMobileHandOver *) res->linkage_data;
g_printf ("%*s hand_over_type : 0x%02x (%s)\n", spacing,
"", linkage->hand_over_type,
enum_name (GST_TYPE_MPEG_TS_DVB_LINKAGE_HAND_OVER_TYPE,
enum_name (GST_TYPE_MPEGTS_DVB_LINKAGE_HAND_OVER_TYPE,
linkage->hand_over_type));
g_printf ("%*s origin_type : %s\n", spacing, "",
linkage->origin_type ? "SDT" : "NIT");
@ -344,8 +344,8 @@ dump_linkage (GstMpegTsDescriptor * desc, guint spacing)
}
case GST_MPEGTS_DVB_LINKAGE_EVENT:
{
GstMpegTsDVBLinkageEvent *linkage =
(GstMpegTsDVBLinkageEvent *) res->linkage_data;
GstMpegtsDVBLinkageEvent *linkage =
(GstMpegtsDVBLinkageEvent *) res->linkage_data;
g_printf ("%*s target_event_id : 0x%04x\n", spacing, "",
linkage->target_event_id);
g_printf ("%*s target_listed : %s\n", spacing, "",
@ -360,7 +360,7 @@ dump_linkage (GstMpegTsDescriptor * desc, guint spacing)
GPtrArray *items = (GPtrArray *) res->linkage_data;
for (i = 0; i < items->len; i++) {
GstMpegTsDVBLinkageExtendedEvent *linkage =
GstMpegtsDVBLinkageExtendedEvent *linkage =
g_ptr_array_index (items, i);
g_printf ("%*s target_event_id : 0x%04x\n", spacing, "",
linkage->target_event_id);
@ -405,14 +405,14 @@ dump_linkage (GstMpegTsDescriptor * desc, guint spacing)
}
static void
dump_component (GstMpegTsDescriptor * desc, guint spacing)
dump_component (GstMpegtsDescriptor * desc, guint spacing)
{
GstMpegTsComponentDescriptor *res;
GstMpegtsComponentDescriptor *res;
if (gst_mpegts_descriptor_parse_dvb_component (desc, &res)) {
g_printf ("%*s stream_content : 0x%02x (%s)\n", spacing, "",
res->stream_content,
enum_name (GST_TYPE_MPEG_TS_COMPONENT_STREAM_CONTENT,
enum_name (GST_TYPE_MPEGTS_COMPONENT_STREAM_CONTENT,
res->stream_content));
g_printf ("%*s component_type : 0x%02x\n", spacing, "",
res->component_type);
@ -425,17 +425,17 @@ dump_component (GstMpegTsDescriptor * desc, guint spacing)
}
static void
dump_content (GstMpegTsDescriptor * desc, guint spacing)
dump_content (GstMpegtsDescriptor * desc, guint spacing)
{
GPtrArray *contents;
guint i;
if (gst_mpegts_descriptor_parse_dvb_content (desc, &contents)) {
for (i = 0; i < contents->len; i++) {
GstMpegTsContent *item = g_ptr_array_index (contents, i);
GstMpegtsContent *item = g_ptr_array_index (contents, i);
g_printf ("%*s content nibble 1 : 0x%01x (%s)\n", spacing, "",
item->content_nibble_1,
enum_name (GST_TYPE_MPEG_TS_CONTENT_NIBBLE_HI,
enum_name (GST_TYPE_MPEGTS_CONTENT_NIBBLE_HI,
item->content_nibble_1));
g_printf ("%*s content nibble 2 : 0x%01x\n", spacing, "",
item->content_nibble_2);
@ -447,26 +447,26 @@ dump_content (GstMpegTsDescriptor * desc, guint spacing)
}
static void
dump_iso_639_language (GstMpegTsDescriptor * desc, guint spacing)
dump_iso_639_language (GstMpegtsDescriptor * desc, guint spacing)
{
guint i;
GstMpegTsISO639LanguageDescriptor *res;
GstMpegtsISO639LanguageDescriptor *res;
if (gst_mpegts_descriptor_parse_iso_639_language (desc, &res)) {
for (i = 0; i < res->nb_language; i++) {
g_print
("%*s ISO 639 Language Descriptor %s , audio_type:0x%x (%s)\n",
spacing, "", res->language[i], res->audio_type[i],
enum_name (GST_TYPE_MPEG_TS_ISO639_AUDIO_TYPE, res->audio_type[i]));
enum_name (GST_TYPE_MPEGTS_ISO639_AUDIO_TYPE, res->audio_type[i]));
}
gst_mpegts_iso_639_language_descriptor_free (res);
}
}
static void
dump_dvb_extended_event (GstMpegTsDescriptor * desc, guint spacing)
dump_dvb_extended_event (GstMpegtsDescriptor * desc, guint spacing)
{
GstMpegTsExtendedEventDescriptor *res;
GstMpegtsExtendedEventDescriptor *res;
if (gst_mpegts_descriptor_parse_dvb_extended_event (desc, &res)) {
guint i;
@ -476,7 +476,7 @@ dump_dvb_extended_event (GstMpegTsDescriptor * desc, guint spacing)
g_printf ("%*s language_code:%s\n", spacing, "", res->language_code);
g_printf ("%*s text : %s\n", spacing, "", res->text);
for (i = 0; i < res->items->len; i++) {
GstMpegTsExtendedEventItem *item = g_ptr_array_index (res->items, i);
GstMpegtsExtendedEventItem *item = g_ptr_array_index (res->items, i);
g_printf ("%*s #%d [description:item] %s : %s\n",
spacing, "", i, item->item_description, item->item);
}
@ -490,7 +490,7 @@ dump_descriptors (GPtrArray * descriptors, guint spacing)
guint i;
for (i = 0; i < descriptors->len; i++) {
GstMpegTsDescriptor *desc = g_ptr_array_index (descriptors, i);
GstMpegtsDescriptor *desc = g_ptr_array_index (descriptors, i);
g_printf ("%*s [descriptor 0x%02x (%s) length:%d]\n", spacing, "",
desc->tag, descriptor_name (desc->tag), desc->length);
if (DUMP_DESCRIPTORS)
@ -542,11 +542,11 @@ dump_descriptors (GPtrArray * descriptors, guint spacing)
case GST_MTS_DESC_DVB_SERVICE:
{
gchar *service_name, *provider_name;
GstMpegTsDVBServiceType service_type;
GstMpegtsDVBServiceType service_type;
if (gst_mpegts_descriptor_parse_dvb_service (desc, &service_type,
&service_name, &provider_name)) {
g_printf ("%*s Service Descriptor, type:0x%02x (%s)\n", spacing, "",
service_type, enum_name (GST_TYPE_MPEG_TS_DVB_SERVICE_TYPE,
service_type, enum_name (GST_TYPE_MPEGTS_DVB_SERVICE_TYPE,
service_type));
g_printf ("%*s service_name : %s\n", spacing, "", service_name);
g_printf ("%*s provider_name : %s\n", spacing, "",
@ -647,7 +647,7 @@ dump_descriptors (GPtrArray * descriptors, guint spacing)
if (gst_mpegts_descriptor_parse_dvb_parental_rating (desc, &ratings)) {
for (j = 0; j < ratings->len; j++) {
GstMpegTsDVBParentalRatingItem *item =
GstMpegtsDVBParentalRatingItem *item =
g_ptr_array_index (ratings, j);
g_printf ("%*s country_code : %s\n", spacing, "",
item->country_code);
@ -659,7 +659,7 @@ dump_descriptors (GPtrArray * descriptors, guint spacing)
}
case GST_MTS_DESC_DVB_DATA_BROADCAST:
{
GstMpegTsDataBroadcastDescriptor *res;
GstMpegtsDataBroadcastDescriptor *res;
if (gst_mpegts_descriptor_parse_dvb_data_broadcast (desc, &res)) {
g_printf ("%*s data_broadcast_id : 0x%04x\n", spacing, "",
@ -722,7 +722,7 @@ dump_descriptors (GPtrArray * descriptors, guint spacing)
break;
case GST_MTS_DESC_DVB_TELETEXT:
{
GstMpegTsDVBTeletextType type;
GstMpegtsDVBTeletextType type;
gchar *lang;
guint8 magazine, page_number;
guint j;
@ -731,7 +731,7 @@ dump_descriptors (GPtrArray * descriptors, guint spacing)
gst_mpegts_descriptor_parse_dvb_teletext_idx (desc, j, &lang, &type,
&magazine, &page_number); j++) {
g_printf ("%*s Teletext, type:0x%02x (%s)\n", spacing, "", type,
enum_name (GST_TYPE_MPEG_TS_DVB_TELETEXT_TYPE, type));
enum_name (GST_TYPE_MPEGTS_DVB_TELETEXT_TYPE, type));
g_printf ("%*s language : %s\n", spacing, "", lang);
g_printf ("%*s magazine : %u\n", spacing, "", magazine);
g_printf ("%*s page number : %u\n", spacing, "", page_number);
@ -746,7 +746,7 @@ dump_descriptors (GPtrArray * descriptors, guint spacing)
}
static void
dump_pat (GstMpegTsSection * section)
dump_pat (GstMpegtsSection * section)
{
GPtrArray *pat = gst_mpegts_section_get_pat (section);
guint i, len;
@ -755,7 +755,7 @@ dump_pat (GstMpegTsSection * section)
g_printf (" %d program(s):\n", len);
for (i = 0; i < len; i++) {
GstMpegTsPatProgram *patp = g_ptr_array_index (pat, i);
GstMpegtsPatProgram *patp = g_ptr_array_index (pat, i);
g_print
(" program_number:%6d (0x%04x), network_or_program_map_PID:0x%04x\n",
@ -767,9 +767,9 @@ dump_pat (GstMpegTsSection * section)
}
static void
dump_pmt (GstMpegTsSection * section)
dump_pmt (GstMpegtsSection * section)
{
const GstMpegTsPMT *pmt = gst_mpegts_section_get_pmt (section);
const GstMpegtsPMT *pmt = gst_mpegts_section_get_pmt (section);
guint i, len;
g_printf (" program_number : 0x%04x\n", section->subtable_extension);
@ -778,18 +778,18 @@ dump_pmt (GstMpegTsSection * section)
len = pmt->streams->len;
g_printf (" %d Streams:\n", len);
for (i = 0; i < len; i++) {
GstMpegTsPMTStream *stream = g_ptr_array_index (pmt->streams, i);
GstMpegtsPMTStream *stream = g_ptr_array_index (pmt->streams, i);
g_printf (" pid:0x%04x , stream_type:0x%02x (%s)\n", stream->pid,
stream->stream_type,
enum_name (GST_TYPE_MPEG_TS_STREAM_TYPE, stream->stream_type));
enum_name (GST_TYPE_MPEGTS_STREAM_TYPE, stream->stream_type));
dump_descriptors (stream->descriptors, 9);
}
}
static void
dump_eit (GstMpegTsSection * section)
dump_eit (GstMpegtsSection * section)
{
const GstMpegTsEIT *eit = gst_mpegts_section_get_eit (section);
const GstMpegtsEIT *eit = gst_mpegts_section_get_eit (section);
guint i, len;
g_assert (eit);
@ -807,7 +807,7 @@ dump_eit (GstMpegTsSection * section)
g_printf (" %d Event(s):\n", len);
for (i = 0; i < len; i++) {
gchar *tmp = (gchar *) "<NO TIME>";
GstMpegTsEITEvent *event = g_ptr_array_index (eit->events, i);
GstMpegtsEITEvent *event = g_ptr_array_index (eit->events, i);
if (event->start_time)
tmp = gst_date_time_to_iso8601_string (event->start_time);
@ -815,7 +815,7 @@ dump_eit (GstMpegTsSection * section)
GST_TIME_FORMAT "\n", event->event_id, tmp,
GST_TIME_ARGS (event->duration * GST_SECOND));
g_printf (" running_status:0x%02x (%s), free_CA_mode:%d (%s)\n",
event->running_status, enum_name (GST_TYPE_MPEG_TS_RUNNING_STATUS,
event->running_status, enum_name (GST_TYPE_MPEGTS_RUNNING_STATUS,
event->running_status), event->free_CA_mode,
event->free_CA_mode ? "MAYBE SCRAMBLED" : "NOT SCRAMBLED");
if (event->start_time)
@ -830,7 +830,7 @@ dump_atsc_mult_string (GPtrArray * mstrings, guint spacing)
guint i;
for (i = 0; i < mstrings->len; i++) {
GstMpegTsAtscMultString *mstring = g_ptr_array_index (mstrings, i);
GstMpegtsAtscMultString *mstring = g_ptr_array_index (mstrings, i);
gint j, n;
n = mstring->segments->len;
@ -839,7 +839,7 @@ dump_atsc_mult_string (GPtrArray * mstrings, guint spacing)
i, mstring->iso_639_langcode);
g_printf ("%*s segments:%d\n", spacing, "", n);
for (j = 0; j < n; j++) {
GstMpegTsAtscStringSegment *segment =
GstMpegtsAtscStringSegment *segment =
g_ptr_array_index (mstring->segments, j);
g_printf ("%*s Compression:0x%x\n", spacing, "",
@ -853,9 +853,9 @@ dump_atsc_mult_string (GPtrArray * mstrings, guint spacing)
}
static void
dump_atsc_eit (GstMpegTsSection * section)
dump_atsc_eit (GstMpegtsSection * section)
{
const GstMpegTsAtscEIT *eit = gst_mpegts_section_get_atsc_eit (section);
const GstMpegtsAtscEIT *eit = gst_mpegts_section_get_atsc_eit (section);
guint i, len;
g_assert (eit);
@ -866,7 +866,7 @@ dump_atsc_eit (GstMpegTsSection * section)
len = eit->events->len;
g_printf (" %d Event(s):\n", len);
for (i = 0; i < len; i++) {
GstMpegTsAtscEITEvent *event = g_ptr_array_index (eit->events, i);
GstMpegtsAtscEITEvent *event = g_ptr_array_index (eit->events, i);
g_printf (" %d)\n", i);
g_printf (" event_id: 0x%04x\n", event->event_id);
@ -880,9 +880,9 @@ dump_atsc_eit (GstMpegTsSection * section)
}
static void
dump_ett (GstMpegTsSection * section)
dump_ett (GstMpegtsSection * section)
{
const GstMpegTsAtscETT *ett = gst_mpegts_section_get_atsc_ett (section);
const GstMpegtsAtscETT *ett = gst_mpegts_section_get_atsc_ett (section);
guint len;
g_assert (ett);
@ -897,15 +897,15 @@ dump_ett (GstMpegTsSection * section)
}
static void
dump_stt (GstMpegTsSection * section)
dump_stt (GstMpegtsSection * section)
{
const GstMpegTsAtscSTT *stt = gst_mpegts_section_get_atsc_stt (section);
const GstMpegtsAtscSTT *stt = gst_mpegts_section_get_atsc_stt (section);
GstDateTime *dt;
gchar *dt_str = NULL;
g_assert (stt);
dt = gst_mpegts_atsc_stt_get_datetime_utc ((GstMpegTsAtscSTT *) stt);
dt = gst_mpegts_atsc_stt_get_datetime_utc ((GstMpegtsAtscSTT *) stt);
if (dt)
dt_str = gst_date_time_to_iso8601_string (dt);
@ -921,9 +921,9 @@ dump_stt (GstMpegTsSection * section)
}
static void
dump_nit (GstMpegTsSection * section)
dump_nit (GstMpegtsSection * section)
{
const GstMpegTsNIT *nit = gst_mpegts_section_get_nit (section);
const GstMpegtsNIT *nit = gst_mpegts_section_get_nit (section);
guint i, len;
g_assert (nit);
@ -935,7 +935,7 @@ dump_nit (GstMpegTsSection * section)
len = nit->streams->len;
g_printf (" %d Streams:\n", len);
for (i = 0; i < len; i++) {
GstMpegTsNITStream *stream = g_ptr_array_index (nit->streams, i);
GstMpegtsNITStream *stream = g_ptr_array_index (nit->streams, i);
g_printf
(" transport_stream_id:0x%04x , original_network_id:0x%02x\n",
stream->transport_stream_id, stream->original_network_id);
@ -944,9 +944,9 @@ dump_nit (GstMpegTsSection * section)
}
static void
dump_bat (GstMpegTsSection * section)
dump_bat (GstMpegtsSection * section)
{
const GstMpegTsBAT *bat = gst_mpegts_section_get_bat (section);
const GstMpegtsBAT *bat = gst_mpegts_section_get_bat (section);
guint i, len;
g_assert (bat);
@ -956,7 +956,7 @@ dump_bat (GstMpegTsSection * section)
len = bat->streams->len;
g_printf (" %d Streams:\n", len);
for (i = 0; i < len; i++) {
GstMpegTsBATStream *stream = g_ptr_array_index (bat->streams, i);
GstMpegtsBATStream *stream = g_ptr_array_index (bat->streams, i);
g_printf
(" transport_stream_id:0x%04x , original_network_id:0x%02x\n",
stream->transport_stream_id, stream->original_network_id);
@ -965,9 +965,9 @@ dump_bat (GstMpegTsSection * section)
}
static void
dump_sdt (GstMpegTsSection * section)
dump_sdt (GstMpegtsSection * section)
{
const GstMpegTsSDT *sdt = gst_mpegts_section_get_sdt (section);
const GstMpegtsSDT *sdt = gst_mpegts_section_get_sdt (section);
guint i, len;
g_assert (sdt);
@ -978,7 +978,7 @@ dump_sdt (GstMpegTsSection * section)
len = sdt->services->len;
g_printf (" %d Services:\n", len);
for (i = 0; i < len; i++) {
GstMpegTsSDTService *service = g_ptr_array_index (sdt->services, i);
GstMpegtsSDTService *service = g_ptr_array_index (sdt->services, i);
g_print
(" service_id:0x%04x, EIT_schedule_flag:%d, EIT_present_following_flag:%d\n",
service->service_id, service->EIT_schedule_flag,
@ -986,7 +986,7 @@ dump_sdt (GstMpegTsSection * section)
g_print
(" running_status:0x%02x (%s), free_CA_mode:%d (%s)\n",
service->running_status,
enum_name (GST_TYPE_MPEG_TS_RUNNING_STATUS, service->running_status),
enum_name (GST_TYPE_MPEGTS_RUNNING_STATUS, service->running_status),
service->free_CA_mode,
service->free_CA_mode ? "MAYBE SCRAMBLED" : "NOT SCRAMBLED");
dump_descriptors (service->descriptors, 9);
@ -994,7 +994,7 @@ dump_sdt (GstMpegTsSection * section)
}
static void
dump_tdt (GstMpegTsSection * section)
dump_tdt (GstMpegtsSection * section)
{
GstDateTime *date = gst_mpegts_section_get_tdt (section);
@ -1009,9 +1009,9 @@ dump_tdt (GstMpegTsSection * section)
}
static void
dump_tot (GstMpegTsSection * section)
dump_tot (GstMpegtsSection * section)
{
const GstMpegTsTOT *tot = gst_mpegts_section_get_tot (section);
const GstMpegtsTOT *tot = gst_mpegts_section_get_tot (section);
gchar *str = gst_date_time_to_iso8601_string (tot->utc_time);
g_printf (" utc_time : %s\n", str);
@ -1020,15 +1020,15 @@ dump_tot (GstMpegTsSection * section)
}
static void
dump_mgt (GstMpegTsSection * section)
dump_mgt (GstMpegtsSection * section)
{
const GstMpegTsAtscMGT *mgt = gst_mpegts_section_get_atsc_mgt (section);
const GstMpegtsAtscMGT *mgt = gst_mpegts_section_get_atsc_mgt (section);
gint i;
g_printf (" protocol_version : %u\n", mgt->protocol_version);
g_printf (" tables number : %d\n", mgt->tables->len);
for (i = 0; i < mgt->tables->len; i++) {
GstMpegTsAtscMGTTable *table = g_ptr_array_index (mgt->tables, i);
GstMpegtsAtscMGTTable *table = g_ptr_array_index (mgt->tables, i);
g_printf (" table %d)\n", i);
g_printf (" table_type : %u\n", table->table_type);
g_printf (" pid : 0x%x\n", table->pid);
@ -1040,9 +1040,9 @@ dump_mgt (GstMpegTsSection * section)
}
static void
dump_vct (GstMpegTsSection * section)
dump_vct (GstMpegtsSection * section)
{
const GstMpegTsAtscVCT *vct;
const GstMpegtsAtscVCT *vct;
gint i;
if (GST_MPEGTS_SECTION_TYPE (section) == GST_MPEGTS_SECTION_ATSC_CVCT) {
@ -1058,7 +1058,7 @@ dump_vct (GstMpegTsSection * section)
g_printf (" protocol_version : %u\n", vct->protocol_version);
g_printf (" %d Sources:\n", vct->sources->len);
for (i = 0; i < vct->sources->len; i++) {
GstMpegTsAtscVCTSource *source = g_ptr_array_index (vct->sources, i);
GstMpegtsAtscVCTSource *source = g_ptr_array_index (vct->sources, i);
g_print (" short_name: %s\n", source->short_name);
g_print (" major_channel_number: %u, minor_channel_number: %u\n",
source->major_channel_number, source->minor_channel_number);
@ -1083,7 +1083,7 @@ dump_vct (GstMpegTsSection * section)
}
static void
dump_section (GstMpegTsSection * section)
dump_section (GstMpegtsSection * section)
{
switch (GST_MPEGTS_SECTION_TYPE (section)) {
case GST_MPEGTS_SECTION_PAT:
@ -1144,7 +1144,7 @@ _on_bus_message (GstBus * bus, GstMessage * message, GMainLoop * mainloop)
break;
case GST_MESSAGE_ELEMENT:
{
GstMpegTsSection *section;
GstMpegtsSection *section;
if ((section = gst_message_parse_mpegts_section (message))) {
const gchar *table_name;
@ -1152,7 +1152,7 @@ _on_bus_message (GstBus * bus, GstMessage * message, GMainLoop * mainloop)
g_print
("Got section: PID:0x%04x type:%s (table_id 0x%02x (%s)) at offset %"
G_GUINT64_FORMAT "\n", section->pid,
enum_name (GST_TYPE_MPEG_TS_SECTION_TYPE, section->section_type),
enum_name (GST_TYPE_MPEGTS_SECTION_TYPE, section->section_type),
section->table_id, table_name, section->offset);
if (!section->short_section) {
g_print
@ -1194,31 +1194,31 @@ main (int argc, gchar ** argv)
}
/* Hack: ensure all enum type classes are loaded */
g_type_class_ref (GST_TYPE_MPEG_TS_SECTION_TYPE);
g_type_class_ref (GST_TYPE_MPEG_TS_SECTION_TABLE_ID);
g_type_class_ref (GST_TYPE_MPEG_TS_RUNNING_STATUS);
g_type_class_ref (GST_TYPE_MPEG_TS_DESCRIPTOR_TYPE);
g_type_class_ref (GST_TYPE_MPEG_TS_DVB_DESCRIPTOR_TYPE);
g_type_class_ref (GST_TYPE_MPEG_TS_ATSC_DESCRIPTOR_TYPE);
g_type_class_ref (GST_TYPE_MPEG_TS_ISDB_DESCRIPTOR_TYPE);
g_type_class_ref (GST_TYPE_MPEG_TS_MISC_DESCRIPTOR_TYPE);
g_type_class_ref (GST_TYPE_MPEG_TS_ISO639_AUDIO_TYPE);
g_type_class_ref (GST_TYPE_MPEG_TS_DVB_SERVICE_TYPE);
g_type_class_ref (GST_TYPE_MPEG_TS_DVB_TELETEXT_TYPE);
g_type_class_ref (GST_TYPE_MPEG_TS_STREAM_TYPE);
g_type_class_ref (GST_TYPE_MPEG_TS_SECTION_DVB_TABLE_ID);
g_type_class_ref (GST_TYPE_MPEG_TS_SECTION_ATSC_TABLE_ID);
g_type_class_ref (GST_TYPE_MPEG_TS_SECTION_SCTE_TABLE_ID);
g_type_class_ref (GST_TYPE_MPEG_TS_MODULATION_TYPE);
g_type_class_ref (GST_TYPE_MPEG_TS_DVB_CODE_RATE);
g_type_class_ref (GST_TYPE_MPEG_TS_CABLE_OUTER_FEC_SCHEME);
g_type_class_ref (GST_TYPE_MPEG_TS_TERRESTRIAL_TRANSMISSION_MODE);
g_type_class_ref (GST_TYPE_MPEG_TS_TERRESTRIAL_GUARD_INTERVAL);
g_type_class_ref (GST_TYPE_MPEG_TS_TERRESTRIAL_HIERARCHY);
g_type_class_ref (GST_TYPE_MPEG_TS_DVB_LINKAGE_TYPE);
g_type_class_ref (GST_TYPE_MPEG_TS_DVB_LINKAGE_HAND_OVER_TYPE);
g_type_class_ref (GST_TYPE_MPEG_TS_COMPONENT_STREAM_CONTENT);
g_type_class_ref (GST_TYPE_MPEG_TS_CONTENT_NIBBLE_HI);
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);
mainloop = g_main_loop_new (NULL, FALSE);