Esempio n. 1
0
static void
dump_sdt (GstMpegTsSection * section)
{
  const GstMpegTsSDT *sdt = gst_mpegts_section_get_sdt (section);
  guint i, len;

  g_assert (sdt);

  g_printf ("     original_network_id : 0x%04x\n", sdt->original_network_id);
  g_printf ("     actual_ts           : %s\n",
      sdt->actual_ts ? "TRUE" : "FALSE");
  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);
    g_print
        ("       service_id:0x%04x, EIT_schedule_flag:%d, EIT_present_following_flag:%d\n",
        service->service_id, service->EIT_schedule_flag,
        service->EIT_present_following_flag);
    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),
        service->free_CA_mode,
        service->free_CA_mode ? "MAYBE SCRAMBLED" : "NOT SCRAMBLED");
    dump_descriptors (service->descriptors, 9);
  }
}
Esempio n. 2
0
static void
dump_sdt (GstMpegtsSection * section, ATS_METADATA* data)
{
  const GstMpegtsSDT *sdt = gst_mpegts_section_get_sdt (section);
  guint i, len;

  g_assert (sdt);

  len = sdt->services->len;
  if ((data == NULL) || (data->prog_info == NULL)) return;
  for (i = 0; i < len; i++) {
    GstMpegtsSDTService *service = g_ptr_array_index (sdt->services, i);
    if (service->service_id == 0) continue;
    ATS_CH_DATA* tmpch = ats_metadata_find_channel(data, service->service_id);
    if (!tmpch) continue;
    for (guint i = 0; i < service->descriptors->len; i++) {
      GstMpegtsDescriptor *desc = g_ptr_array_index (service->descriptors, i);
      if (desc->tag == GST_MTS_DESC_DVB_SERVICE) {
	gchar *service_name, *provider_name;
	GstMpegtsDVBServiceType service_type;
	if (gst_mpegts_descriptor_parse_dvb_service (desc, &service_type,
						     &service_name, &provider_name)) {
	  tmpch->service_name = g_strdup(service_name);
	  tmpch->provider_name = g_strdup(provider_name);
	  g_free (service_name);
	  g_free (provider_name);
	}
      }
    }
  }
}