Lines Matching refs:object
539 static void gst_dvbsrc_finalize (GObject * object);
540 static void gst_dvbsrc_set_property (GObject * object, guint prop_id,
542 static void gst_dvbsrc_get_property (GObject * object, guint prop_id,
559 static gboolean gst_dvbsrc_tune (GstDvbSrc * object);
560 static gboolean gst_dvbsrc_set_fe_params (GstDvbSrc * object,
562 static void gst_dvbsrc_guess_delsys (GstDvbSrc * object);
563 static gboolean gst_dvbsrc_tune_fe (GstDvbSrc * object);
565 static void gst_dvbsrc_set_pes_filters (GstDvbSrc * object);
566 static void gst_dvbsrc_unset_pes_filters (GstDvbSrc * object);
1040 gst_dvbsrc_init (GstDvbSrc * object) in gst_dvbsrc_init() argument
1045 GST_DEBUG_OBJECT (object, "Kernel DVB API version %d.%d", DVB_API_VERSION, in gst_dvbsrc_init()
1049 gst_base_src_set_live (GST_BASE_SRC (object), TRUE); in gst_dvbsrc_init()
1051 gst_base_src_set_do_timestamp (GST_BASE_SRC (object), TRUE); in gst_dvbsrc_init()
1052 gst_base_src_set_format (GST_BASE_SRC (object), GST_FORMAT_TIME); in gst_dvbsrc_init()
1054 object->fd_frontend = -1; in gst_dvbsrc_init()
1055 object->fd_dvr = -1; in gst_dvbsrc_init()
1056 object->supported_delsys = NULL; in gst_dvbsrc_init()
1059 object->fd_filters[i] = -1; in gst_dvbsrc_init()
1063 object->pids[0] = 8192; in gst_dvbsrc_init()
1064 object->pids[1] = G_MAXUINT16; in gst_dvbsrc_init()
1065 object->dvb_buffer_size = DEFAULT_DVB_BUFFER_SIZE; in gst_dvbsrc_init()
1069 object->adapter_number = atoi (adapter); in gst_dvbsrc_init()
1071 object->adapter_number = DEFAULT_ADAPTER; in gst_dvbsrc_init()
1073 object->frontend_number = DEFAULT_FRONTEND; in gst_dvbsrc_init()
1074 object->diseqc_src = DEFAULT_DISEQC_SRC; in gst_dvbsrc_init()
1075 object->send_diseqc = (DEFAULT_DISEQC_SRC != -1); in gst_dvbsrc_init()
1076 object->tone = SEC_TONE_OFF; in gst_dvbsrc_init()
1078 object->sym_rate = DEFAULT_SYMBOL_RATE; in gst_dvbsrc_init()
1079 object->bandwidth = DEFAULT_BANDWIDTH; in gst_dvbsrc_init()
1080 object->code_rate_hp = DEFAULT_CODE_RATE_HP; in gst_dvbsrc_init()
1081 object->code_rate_lp = DEFAULT_CODE_RATE_LP; in gst_dvbsrc_init()
1082 object->guard_interval = DEFAULT_GUARD; in gst_dvbsrc_init()
1083 object->modulation = DEFAULT_MODULATION; in gst_dvbsrc_init()
1084 object->transmission_mode = DEFAULT_TRANSMISSION_MODE; in gst_dvbsrc_init()
1085 object->hierarchy_information = DEFAULT_HIERARCHY; in gst_dvbsrc_init()
1086 object->inversion = DEFAULT_INVERSION; in gst_dvbsrc_init()
1087 object->stats_interval = DEFAULT_STATS_REPORTING_INTERVAL; in gst_dvbsrc_init()
1088 object->delsys = DEFAULT_DELSYS; in gst_dvbsrc_init()
1089 object->pilot = DEFAULT_PILOT; in gst_dvbsrc_init()
1090 object->rolloff = DEFAULT_ROLLOFF; in gst_dvbsrc_init()
1091 object->stream_id = DEFAULT_STREAM_ID; in gst_dvbsrc_init()
1093 object->isdbt_layer_enabled = DEFAULT_ISDBT_LAYER_ENABLED; in gst_dvbsrc_init()
1094 object->isdbt_partial_reception = DEFAULT_ISDBT_PARTIAL_RECEPTION; in gst_dvbsrc_init()
1095 object->isdbt_sound_broadcasting = DEFAULT_ISDBT_SOUND_BROADCASTING; in gst_dvbsrc_init()
1096 object->isdbt_sb_subchannel_id = DEFAULT_ISDBT_SB_SUBCHANNEL_ID; in gst_dvbsrc_init()
1097 object->isdbt_sb_segment_idx = DEFAULT_ISDBT_SB_SEGMENT_IDX; in gst_dvbsrc_init()
1098 object->isdbt_sb_segment_count = DEFAULT_ISDBT_SB_SEGMENT_COUNT; in gst_dvbsrc_init()
1099 object->isdbt_layera_fec = DEFAULT_ISDBT_LAYERA_FEC; in gst_dvbsrc_init()
1100 object->isdbt_layera_modulation = DEFAULT_ISDBT_LAYERA_MODULATION; in gst_dvbsrc_init()
1101 object->isdbt_layera_segment_count = DEFAULT_ISDBT_LAYERA_SEGMENT_COUNT; in gst_dvbsrc_init()
1102 object->isdbt_layera_time_interleaving = in gst_dvbsrc_init()
1104 object->isdbt_layerb_fec = DEFAULT_ISDBT_LAYERB_FEC; in gst_dvbsrc_init()
1105 object->isdbt_layerb_modulation = DEFAULT_ISDBT_LAYERB_MODULATION; in gst_dvbsrc_init()
1106 object->isdbt_layerb_segment_count = DEFAULT_ISDBT_LAYERB_SEGMENT_COUNT; in gst_dvbsrc_init()
1107 object->isdbt_layerb_time_interleaving = in gst_dvbsrc_init()
1109 object->isdbt_layerc_fec = DEFAULT_ISDBT_LAYERC_FEC; in gst_dvbsrc_init()
1110 object->isdbt_layerc_modulation = DEFAULT_ISDBT_LAYERC_MODULATION; in gst_dvbsrc_init()
1111 object->isdbt_layerc_segment_count = DEFAULT_ISDBT_LAYERC_SEGMENT_COUNT; in gst_dvbsrc_init()
1112 object->isdbt_layerc_time_interleaving = in gst_dvbsrc_init()
1115 object->lnb_slof = DEFAULT_LNB_SLOF; in gst_dvbsrc_init()
1116 object->lnb_lof1 = DEFAULT_LNB_LOF1; in gst_dvbsrc_init()
1117 object->lnb_lof2 = DEFAULT_LNB_LOF2; in gst_dvbsrc_init()
1119 object->interleaving = DEFAULT_INTERLEAVING; in gst_dvbsrc_init()
1121 g_mutex_init (&object->tune_mutex); in gst_dvbsrc_init()
1122 object->timeout = DEFAULT_TIMEOUT; in gst_dvbsrc_init()
1123 object->tuning_timeout = DEFAULT_TUNING_TIMEOUT; in gst_dvbsrc_init()
1175 GstDvbSrc *object; in gst_dvbsrc_set_property() local
1178 object = GST_DVBSRC (_object); in gst_dvbsrc_set_property()
1182 object->adapter_number = g_value_get_int (value); in gst_dvbsrc_set_property()
1185 object->frontend_number = g_value_get_int (value); in gst_dvbsrc_set_property()
1188 if (object->diseqc_src != g_value_get_int (value)) { in gst_dvbsrc_set_property()
1189 object->diseqc_src = g_value_get_int (value); in gst_dvbsrc_set_property()
1190 object->send_diseqc = TRUE; in gst_dvbsrc_set_property()
1192 GST_INFO_OBJECT (object, "Set Property: ARG_DVBSRC_DISEQC_ID"); in gst_dvbsrc_set_property()
1195 object->freq = g_value_get_uint (value); in gst_dvbsrc_set_property()
1196 GST_INFO_OBJECT (object, "Set Property: ARG_DVBSRC_FREQUENCY (%d Hz)", in gst_dvbsrc_set_property()
1197 object->freq); in gst_dvbsrc_set_property()
1205 object->pol = (s[0] == 'h' || s[0] == 'H') ? DVB_POL_H : DVB_POL_V; in gst_dvbsrc_set_property()
1206 GST_INFO_OBJECT (object, "Set Property: ARG_DVBSRC_POLARITY to %s", in gst_dvbsrc_set_property()
1207 object->pol ? "Vertical" : "Horizontal"); in gst_dvbsrc_set_property()
1216 GST_INFO_OBJECT (object, "Set Property: ARG_DVBSRC_PIDS %s", pid_string); in gst_dvbsrc_set_property()
1218 gst_dvbsrc_set_pids (object, pid_string); in gst_dvbsrc_set_property()
1222 object->sym_rate = g_value_get_uint (value); in gst_dvbsrc_set_property()
1223 GST_INFO_OBJECT (object, "Set Property: ARG_DVBSRC_SYM_RATE to value %d", in gst_dvbsrc_set_property()
1224 object->sym_rate); in gst_dvbsrc_set_property()
1228 object->bandwidth = g_value_get_uint (value); in gst_dvbsrc_set_property()
1233 object->bandwidth = 8000000; in gst_dvbsrc_set_property()
1236 object->bandwidth = 7000000; in gst_dvbsrc_set_property()
1239 object->bandwidth = 6000000; in gst_dvbsrc_set_property()
1242 object->bandwidth = 5000000; in gst_dvbsrc_set_property()
1245 object->bandwidth = 10000000; in gst_dvbsrc_set_property()
1248 object->bandwidth = 1712000; in gst_dvbsrc_set_property()
1252 object->bandwidth = 0; in gst_dvbsrc_set_property()
1257 object->code_rate_hp = g_value_get_enum (value); in gst_dvbsrc_set_property()
1260 object->code_rate_lp = g_value_get_enum (value); in gst_dvbsrc_set_property()
1263 object->guard_interval = g_value_get_enum (value); in gst_dvbsrc_set_property()
1266 object->modulation = g_value_get_enum (value); in gst_dvbsrc_set_property()
1269 object->transmission_mode = g_value_get_enum (value); in gst_dvbsrc_set_property()
1272 object->hierarchy_information = g_value_get_enum (value); in gst_dvbsrc_set_property()
1275 object->inversion = g_value_get_enum (value); in gst_dvbsrc_set_property()
1278 GST_INFO_OBJECT (object, "Set Property: ARG_DVBSRC_TUNE"); in gst_dvbsrc_set_property()
1279 gst_dvbsrc_do_tune (object); in gst_dvbsrc_set_property()
1282 object->stats_interval = g_value_get_uint (value); in gst_dvbsrc_set_property()
1283 object->stats_counter = 0; in gst_dvbsrc_set_property()
1286 object->timeout = g_value_get_uint64 (value); in gst_dvbsrc_set_property()
1289 object->tuning_timeout = g_value_get_uint64 (value); in gst_dvbsrc_set_property()
1292 object->dvb_buffer_size = g_value_get_uint (value); in gst_dvbsrc_set_property()
1295 object->delsys = g_value_get_enum (value); in gst_dvbsrc_set_property()
1298 object->pilot = g_value_get_enum (value); in gst_dvbsrc_set_property()
1301 object->rolloff = g_value_get_enum (value); in gst_dvbsrc_set_property()
1304 object->stream_id = g_value_get_int (value); in gst_dvbsrc_set_property()
1307 object->isdbt_layer_enabled = g_value_get_uint (value); in gst_dvbsrc_set_property()
1310 object->isdbt_partial_reception = g_value_get_int (value); in gst_dvbsrc_set_property()
1313 object->isdbt_sound_broadcasting = g_value_get_int (value); in gst_dvbsrc_set_property()
1316 object->isdbt_sb_subchannel_id = g_value_get_int (value); in gst_dvbsrc_set_property()
1319 object->isdbt_sb_segment_idx = g_value_get_int (value); in gst_dvbsrc_set_property()
1322 object->isdbt_sb_segment_count = g_value_get_uint (value); in gst_dvbsrc_set_property()
1325 object->isdbt_layera_fec = g_value_get_enum (value); in gst_dvbsrc_set_property()
1328 object->isdbt_layera_modulation = g_value_get_enum (value); in gst_dvbsrc_set_property()
1331 object->isdbt_layera_segment_count = g_value_get_int (value); in gst_dvbsrc_set_property()
1334 object->isdbt_layera_time_interleaving = g_value_get_int (value); in gst_dvbsrc_set_property()
1337 object->isdbt_layerb_fec = g_value_get_enum (value); in gst_dvbsrc_set_property()
1340 object->isdbt_layerb_modulation = g_value_get_enum (value); in gst_dvbsrc_set_property()
1343 object->isdbt_layerb_segment_count = g_value_get_int (value); in gst_dvbsrc_set_property()
1346 object->isdbt_layerb_time_interleaving = g_value_get_int (value); in gst_dvbsrc_set_property()
1349 object->isdbt_layerc_fec = g_value_get_enum (value); in gst_dvbsrc_set_property()
1352 object->isdbt_layerc_modulation = g_value_get_enum (value); in gst_dvbsrc_set_property()
1355 object->isdbt_layerc_segment_count = g_value_get_int (value); in gst_dvbsrc_set_property()
1358 object->isdbt_layerc_time_interleaving = g_value_get_int (value); in gst_dvbsrc_set_property()
1361 object->lnb_slof = g_value_get_uint (value); in gst_dvbsrc_set_property()
1364 object->lnb_lof1 = g_value_get_uint (value); in gst_dvbsrc_set_property()
1367 object->lnb_lof2 = g_value_get_uint (value); in gst_dvbsrc_set_property()
1370 object->interleaving = g_value_get_enum (value); in gst_dvbsrc_set_property()
1373 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); in gst_dvbsrc_set_property()
1381 GstDvbSrc *object; in gst_dvbsrc_get_property() local
1384 object = GST_DVBSRC (_object); in gst_dvbsrc_get_property()
1388 g_value_set_int (value, object->adapter_number); in gst_dvbsrc_get_property()
1391 g_value_set_int (value, object->frontend_number); in gst_dvbsrc_get_property()
1394 g_value_set_uint (value, object->freq); in gst_dvbsrc_get_property()
1397 if (object->pol == DVB_POL_H) in gst_dvbsrc_get_property()
1403 g_value_set_uint (value, object->sym_rate); in gst_dvbsrc_get_property()
1406 g_value_set_int (value, object->diseqc_src); in gst_dvbsrc_get_property()
1409 g_value_set_uint (value, object->bandwidth); in gst_dvbsrc_get_property()
1413 if (!object->bandwidth) in gst_dvbsrc_get_property()
1415 else if (object->bandwidth <= 1712000) in gst_dvbsrc_get_property()
1417 else if (object->bandwidth <= 5000000) in gst_dvbsrc_get_property()
1419 else if (object->bandwidth <= 6000000) in gst_dvbsrc_get_property()
1421 else if (object->bandwidth <= 7000000) in gst_dvbsrc_get_property()
1423 else if (object->bandwidth <= 8000000) in gst_dvbsrc_get_property()
1425 else if (object->bandwidth <= 10000000) in gst_dvbsrc_get_property()
1434 g_value_set_enum (value, object->code_rate_hp); in gst_dvbsrc_get_property()
1437 g_value_set_enum (value, object->code_rate_lp); in gst_dvbsrc_get_property()
1440 g_value_set_enum (value, object->guard_interval); in gst_dvbsrc_get_property()
1443 g_value_set_enum (value, object->modulation); in gst_dvbsrc_get_property()
1446 g_value_set_enum (value, object->transmission_mode); in gst_dvbsrc_get_property()
1449 g_value_set_enum (value, object->hierarchy_information); in gst_dvbsrc_get_property()
1452 g_value_set_enum (value, object->inversion); in gst_dvbsrc_get_property()
1455 g_value_set_uint (value, object->stats_interval); in gst_dvbsrc_get_property()
1458 g_value_set_uint64 (value, object->timeout); in gst_dvbsrc_get_property()
1461 g_value_set_uint64 (value, object->tuning_timeout); in gst_dvbsrc_get_property()
1464 g_value_set_uint (value, object->dvb_buffer_size); in gst_dvbsrc_get_property()
1467 g_value_set_enum (value, object->delsys); in gst_dvbsrc_get_property()
1470 g_value_set_enum (value, object->pilot); in gst_dvbsrc_get_property()
1473 g_value_set_enum (value, object->rolloff); in gst_dvbsrc_get_property()
1476 g_value_set_int (value, object->stream_id); in gst_dvbsrc_get_property()
1479 g_value_set_uint (value, object->isdbt_layer_enabled); in gst_dvbsrc_get_property()
1482 g_value_set_int (value, object->isdbt_partial_reception); in gst_dvbsrc_get_property()
1485 g_value_set_int (value, object->isdbt_sound_broadcasting); in gst_dvbsrc_get_property()
1488 g_value_set_int (value, object->isdbt_sb_subchannel_id); in gst_dvbsrc_get_property()
1491 g_value_set_int (value, object->isdbt_sb_segment_idx); in gst_dvbsrc_get_property()
1494 g_value_set_uint (value, object->isdbt_sb_segment_count); in gst_dvbsrc_get_property()
1497 g_value_set_enum (value, object->isdbt_layera_fec); in gst_dvbsrc_get_property()
1500 g_value_set_enum (value, object->isdbt_layera_modulation); in gst_dvbsrc_get_property()
1503 g_value_set_int (value, object->isdbt_layera_segment_count); in gst_dvbsrc_get_property()
1506 g_value_set_int (value, object->isdbt_layera_time_interleaving); in gst_dvbsrc_get_property()
1509 g_value_set_enum (value, object->isdbt_layerb_fec); in gst_dvbsrc_get_property()
1512 g_value_set_enum (value, object->isdbt_layerb_modulation); in gst_dvbsrc_get_property()
1515 g_value_set_int (value, object->isdbt_layerb_segment_count); in gst_dvbsrc_get_property()
1518 g_value_set_int (value, object->isdbt_layerb_time_interleaving); in gst_dvbsrc_get_property()
1521 g_value_set_enum (value, object->isdbt_layerc_fec); in gst_dvbsrc_get_property()
1524 g_value_set_enum (value, object->isdbt_layerc_modulation); in gst_dvbsrc_get_property()
1527 g_value_set_int (value, object->isdbt_layerc_segment_count); in gst_dvbsrc_get_property()
1530 g_value_set_int (value, object->isdbt_layerc_time_interleaving); in gst_dvbsrc_get_property()
1533 g_value_set_uint (value, object->lnb_slof); in gst_dvbsrc_get_property()
1536 g_value_set_uint (value, object->lnb_lof1); in gst_dvbsrc_get_property()
1539 g_value_set_uint (value, object->lnb_lof2); in gst_dvbsrc_get_property()
1542 g_value_set_enum (value, object->interleaving); in gst_dvbsrc_get_property()
1545 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); in gst_dvbsrc_get_property()
1550 gst_dvbsrc_close_devices (GstDvbSrc * object) in gst_dvbsrc_close_devices() argument
1552 gst_dvbsrc_unset_pes_filters (object); in gst_dvbsrc_close_devices()
1554 close (object->fd_dvr); in gst_dvbsrc_close_devices()
1555 object->fd_dvr = -1; in gst_dvbsrc_close_devices()
1556 close (object->fd_frontend); in gst_dvbsrc_close_devices()
1557 object->fd_frontend = -1; in gst_dvbsrc_close_devices()
1576 gst_dvbsrc_open_frontend (GstDvbSrc * object, gboolean writable) in gst_dvbsrc_open_frontend() argument
1587 object->adapter_number, object->frontend_number); in gst_dvbsrc_open_frontend()
1588 GST_INFO_OBJECT (object, "Using frontend device: %s", frontend_dev); in gst_dvbsrc_open_frontend()
1591 LOOP_WHILE_EINTR (object->fd_frontend, in gst_dvbsrc_open_frontend()
1593 if (object->fd_frontend < 0) { in gst_dvbsrc_open_frontend()
1596 GST_ELEMENT_ERROR (object, RESOURCE, NOT_FOUND, in gst_dvbsrc_open_frontend()
1600 GST_ELEMENT_ERROR (object, RESOURCE, OPEN_READ_WRITE, in gst_dvbsrc_open_frontend()
1610 if (object->supported_delsys) in gst_dvbsrc_open_frontend()
1615 GST_DEBUG_OBJECT (object, "Device opened, querying information"); in gst_dvbsrc_open_frontend()
1617 LOOP_WHILE_EINTR (err, ioctl (object->fd_frontend, FE_GET_INFO, &fe_info)); in gst_dvbsrc_open_frontend()
1619 GST_ELEMENT_ERROR (object, RESOURCE, SETTINGS, in gst_dvbsrc_open_frontend()
1623 close (object->fd_frontend); in gst_dvbsrc_open_frontend()
1628 GST_DEBUG_OBJECT (object, "Get list of supported delivery systems"); in gst_dvbsrc_open_frontend()
1634 LOOP_WHILE_EINTR (err, ioctl (object->fd_frontend, FE_GET_PROPERTY, &props)); in gst_dvbsrc_open_frontend()
1636 GST_ELEMENT_ERROR (object, RESOURCE, SETTINGS, in gst_dvbsrc_open_frontend()
1640 close (object->fd_frontend); in gst_dvbsrc_open_frontend()
1645 GST_INFO_OBJECT (object, "Got information about adapter: %s", fe_info.name); in gst_dvbsrc_open_frontend()
1662 object->supported_delsys = g_list_append (object->supported_delsys, in gst_dvbsrc_open_frontend()
1669 object->supported_delsys = g_list_append (object->supported_delsys, in gst_dvbsrc_open_frontend()
1676 object->supported_delsys = g_list_append (object->supported_delsys, in gst_dvbsrc_open_frontend()
1683 object->supported_delsys = g_list_append (object->supported_delsys, in gst_dvbsrc_open_frontend()
1689 object->supported_delsys = g_list_append (object->supported_delsys, in gst_dvbsrc_open_frontend()
1696 object->supported_delsys = g_list_append (object->supported_delsys, in gst_dvbsrc_open_frontend()
1703 object->supported_delsys = g_list_append (object->supported_delsys, in gst_dvbsrc_open_frontend()
1710 object->supported_delsys = g_list_append (object->supported_delsys, in gst_dvbsrc_open_frontend()
1717 object->supported_delsys = g_list_append (object->supported_delsys, in gst_dvbsrc_open_frontend()
1724 object->supported_delsys = g_list_append (object->supported_delsys, in gst_dvbsrc_open_frontend()
1731 object->supported_delsys = g_list_append (object->supported_delsys, in gst_dvbsrc_open_frontend()
1737 object->supported_delsys = g_list_append (object->supported_delsys, in gst_dvbsrc_open_frontend()
1744 object->supported_delsys = g_list_append (object->supported_delsys, in gst_dvbsrc_open_frontend()
1751 object->supported_delsys = g_list_append (object->supported_delsys, in gst_dvbsrc_open_frontend()
1757 object->supported_delsys = g_list_append (object->supported_delsys, in gst_dvbsrc_open_frontend()
1763 object->supported_delsys = g_list_append (object->supported_delsys, in gst_dvbsrc_open_frontend()
1770 object->supported_delsys = g_list_append (object->supported_delsys, in gst_dvbsrc_open_frontend()
1777 object->supported_delsys = g_list_append (object->supported_delsys, in gst_dvbsrc_open_frontend()
1784 GST_TRACE_OBJECT (object, "%s description: %" GST_PTR_FORMAT, adapter_name, in gst_dvbsrc_open_frontend()
1786 gst_element_post_message (GST_ELEMENT_CAST (object), gst_message_new_element in gst_dvbsrc_open_frontend()
1787 (GST_OBJECT (object), adapter_structure)); in gst_dvbsrc_open_frontend()
1797 gst_dvbsrc_open_dvr (GstDvbSrc * object) in gst_dvbsrc_open_dvr() argument
1803 object->adapter_number, object->frontend_number); in gst_dvbsrc_open_dvr()
1804 GST_INFO_OBJECT (object, "Using DVR device: %s", dvr_dev); in gst_dvbsrc_open_dvr()
1807 if ((object->fd_dvr = open (dvr_dev, O_RDONLY | O_NONBLOCK)) < 0) { in gst_dvbsrc_open_dvr()
1810 GST_ELEMENT_ERROR (object, RESOURCE, NOT_FOUND, in gst_dvbsrc_open_dvr()
1814 GST_ELEMENT_ERROR (object, RESOURCE, OPEN_READ, in gst_dvbsrc_open_dvr()
1824 GST_INFO_OBJECT (object, "Setting DVB kernel buffer size to %d", in gst_dvbsrc_open_dvr()
1825 object->dvb_buffer_size); in gst_dvbsrc_open_dvr()
1826 LOOP_WHILE_EINTR (err, ioctl (object->fd_dvr, DMX_SET_BUFFER_SIZE, in gst_dvbsrc_open_dvr()
1827 object->dvb_buffer_size)); in gst_dvbsrc_open_dvr()
1829 GST_INFO_OBJECT (object, "ioctl DMX_SET_BUFFER_SIZE failed (%d)", errno); in gst_dvbsrc_open_dvr()
1838 GstDvbSrc *object; in gst_dvbsrc_finalize() local
1843 object = GST_DVBSRC (_object); in gst_dvbsrc_finalize()
1846 g_mutex_clear (&object->tune_mutex); in gst_dvbsrc_finalize()
1870 gst_dvbsrc_read_device (GstDvbSrc * object, int size, GstBuffer ** buffer) in gst_dvbsrc_read_device() argument
1875 GstClockTime timeout = object->timeout * GST_USECOND; in gst_dvbsrc_read_device()
1880 if (object->fd_dvr < 0) in gst_dvbsrc_read_device()
1885 ret_val = gst_poll_wait (object->poll, timeout); in gst_dvbsrc_read_device()
1886 GST_LOG_OBJECT (object, "select returned %d", ret_val); in gst_dvbsrc_read_device()
1896 gst_element_post_message (GST_ELEMENT_CAST (object), in gst_dvbsrc_read_device()
1897 gst_message_new_element (GST_OBJECT (object), in gst_dvbsrc_read_device()
1900 int nread = read (object->fd_dvr, map.data + count, size - count); in gst_dvbsrc_read_device()
1904 (object, in gst_dvbsrc_read_device()
1906 object->adapter_number, object->frontend_number, errno); in gst_dvbsrc_read_device()
1907 gst_element_post_message (GST_ELEMENT_CAST (object), in gst_dvbsrc_read_device()
1908 gst_message_new_element (GST_OBJECT (object), in gst_dvbsrc_read_device()
1923 GST_DEBUG_OBJECT (object, "stop called"); in gst_dvbsrc_read_device()
1930 GST_ELEMENT_ERROR (object, RESOURCE, READ, (NULL), in gst_dvbsrc_read_device()
1943 GstDvbSrc *object; in gst_dvbsrc_create() local
1946 object = GST_DVBSRC (element); in gst_dvbsrc_create()
1947 GST_LOG ("fd_dvr: %d", object->fd_dvr); in gst_dvbsrc_create()
1952 g_mutex_lock (&object->tune_mutex); in gst_dvbsrc_create()
1955 if (object->fd_dvr > -1) { in gst_dvbsrc_create()
1957 GST_DEBUG_OBJECT (object, "Reading from DVR device"); in gst_dvbsrc_create()
1958 retval = gst_dvbsrc_read_device (object, buffer_size, buf); in gst_dvbsrc_create()
1960 if (object->stats_interval && in gst_dvbsrc_create()
1961 ++object->stats_counter == object->stats_interval) { in gst_dvbsrc_create()
1962 gst_dvbsrc_output_frontend_stats (object, &status); in gst_dvbsrc_create()
1963 object->stats_counter = 0; in gst_dvbsrc_create()
1967 g_mutex_unlock (&object->tune_mutex); in gst_dvbsrc_create()
2328 gst_dvbsrc_tune_fe (GstDvbSrc * object) in gst_dvbsrc_tune_fe() argument
2337 GST_DEBUG_OBJECT (object, "Starting the frontend tuning process"); in gst_dvbsrc_tune_fe()
2339 if (object->fd_frontend < 0) { in gst_dvbsrc_tune_fe()
2340 GST_INFO_OBJECT (object, "Frontend not open: tuning later"); in gst_dvbsrc_tune_fe()
2346 if (object->delsys != SYS_UNDEFINED) { in gst_dvbsrc_tune_fe()
2347 GST_DEBUG_OBJECT (object, "Confirming delivery system '%u' is supported", in gst_dvbsrc_tune_fe()
2348 object->delsys); in gst_dvbsrc_tune_fe()
2349 if (!g_list_find (object->supported_delsys, in gst_dvbsrc_tune_fe()
2350 GINT_TO_POINTER (object->delsys))) { in gst_dvbsrc_tune_fe()
2351 GST_WARNING_OBJECT (object, "Adapter does not support delivery system " in gst_dvbsrc_tune_fe()
2352 "'%u'", object->delsys); in gst_dvbsrc_tune_fe()
2357 gst_dvbsrc_unset_pes_filters (object); in gst_dvbsrc_tune_fe()
2359 g_mutex_lock (&object->tune_mutex); in gst_dvbsrc_tune_fe()
2366 LOOP_WHILE_EINTR (err, ioctl (object->fd_frontend, FE_SET_PROPERTY, &props)); in gst_dvbsrc_tune_fe()
2368 GST_WARNING_OBJECT (object, "Error resetting tuner: %s", in gst_dvbsrc_tune_fe()
2373 if (!gst_dvbsrc_set_fe_params (object, &props)) { in gst_dvbsrc_tune_fe()
2374 GST_WARNING_OBJECT (object, "Could not set frontend params"); in gst_dvbsrc_tune_fe()
2378 GST_DEBUG_OBJECT (object, "Setting %d properties", props.num); in gst_dvbsrc_tune_fe()
2380 LOOP_WHILE_EINTR (err, ioctl (object->fd_frontend, FE_SET_PROPERTY, &props)); in gst_dvbsrc_tune_fe()
2382 GST_WARNING_OBJECT (object, "Error tuning channel: %s (%d)", in gst_dvbsrc_tune_fe()
2387 g_signal_emit (object, gst_dvbsrc_signals[SIGNAL_TUNING_START], 0); in gst_dvbsrc_tune_fe()
2394 if (!gst_dvbsrc_output_frontend_stats (object, &status)) in gst_dvbsrc_tune_fe()
2398 if (object->tuning_timeout) in gst_dvbsrc_tune_fe()
2400 GST_LOG_OBJECT (object, in gst_dvbsrc_tune_fe()
2402 GST_STIME_ARGS (elapsed_time), GST_TIME_ARGS (object->tuning_timeout)); in gst_dvbsrc_tune_fe()
2403 } while (!(status & FE_HAS_LOCK) && elapsed_time <= object->tuning_timeout); in gst_dvbsrc_tune_fe()
2406 GST_WARNING_OBJECT (object, in gst_dvbsrc_tune_fe()
2411 GST_LOG_OBJECT (object, "status == 0x%02x", status); in gst_dvbsrc_tune_fe()
2413 g_signal_emit (object, gst_dvbsrc_signals[SIGNAL_TUNING_DONE], 0); in gst_dvbsrc_tune_fe()
2414 GST_DEBUG_OBJECT (object, "Successfully set frontend tuning params"); in gst_dvbsrc_tune_fe()
2416 g_mutex_unlock (&object->tune_mutex); in gst_dvbsrc_tune_fe()
2420 g_signal_emit (object, gst_dvbsrc_signals[SIGNAL_TUNING_FAIL], 0); in gst_dvbsrc_tune_fe()
2422 GST_WARNING_OBJECT (object, "Could not tune to desired frequency"); in gst_dvbsrc_tune_fe()
2423 g_mutex_unlock (&object->tune_mutex); in gst_dvbsrc_tune_fe()
2428 gst_dvbsrc_guess_delsys (GstDvbSrc * object) in gst_dvbsrc_guess_delsys() argument
2433 if (g_list_length (object->supported_delsys) == 1) { in gst_dvbsrc_guess_delsys()
2434 object->delsys = GPOINTER_TO_INT (object->supported_delsys->data); in gst_dvbsrc_guess_delsys()
2435 GST_DEBUG_OBJECT (object, "Adapter supports a single delsys: '%u'", in gst_dvbsrc_guess_delsys()
2436 object->delsys); in gst_dvbsrc_guess_delsys()
2443 valid = g_list_copy (object->supported_delsys); in gst_dvbsrc_guess_delsys()
2449 object->modulation) || in gst_dvbsrc_guess_delsys()
2451 object->transmission_mode) || in gst_dvbsrc_guess_delsys()
2453 object->bandwidth)) { in gst_dvbsrc_guess_delsys()
2463 GST_WARNING_OBJECT (object, "Delivery system autodetection provided no " in gst_dvbsrc_guess_delsys()
2465 candidate = g_list_last (object->supported_delsys); in gst_dvbsrc_guess_delsys()
2469 GST_DEBUG_OBJECT (object, "Delivery system autodetection provided only " in gst_dvbsrc_guess_delsys()
2481 GST_WARNING_OBJECT (object, "Channel parameters valid for DVB-T and " in gst_dvbsrc_guess_delsys()
2489 object->delsys = GPOINTER_TO_INT (candidate->data); in gst_dvbsrc_guess_delsys()
2493 GST_INFO_OBJECT (object, "Automatically selecting delivery system '%u'", in gst_dvbsrc_guess_delsys()
2494 object->delsys); in gst_dvbsrc_guess_delsys()
2498 gst_dvbsrc_set_fe_params (GstDvbSrc * object, struct dtv_properties *props) in gst_dvbsrc_set_fe_params() argument
2501 unsigned int freq = object->freq; in gst_dvbsrc_set_fe_params()
2502 unsigned int sym_rate = object->sym_rate * 1000; in gst_dvbsrc_set_fe_params()
2503 int inversion = object->inversion; in gst_dvbsrc_set_fe_params()
2508 if (object->delsys == SYS_UNDEFINED) in gst_dvbsrc_set_fe_params()
2509 gst_dvbsrc_guess_delsys (object); in gst_dvbsrc_set_fe_params()
2518 switch (object->delsys) { in gst_dvbsrc_set_fe_params()
2524 if (freq < object->lnb_slof) { in gst_dvbsrc_set_fe_params()
2525 freq -= object->lnb_lof1; in gst_dvbsrc_set_fe_params()
2526 object->tone = SEC_TONE_OFF; in gst_dvbsrc_set_fe_params()
2528 freq -= object->lnb_lof2; in gst_dvbsrc_set_fe_params()
2529 object->tone = SEC_TONE_ON; in gst_dvbsrc_set_fe_params()
2535 set_prop (props->props, &n, DTV_INNER_FEC, object->code_rate_hp); in gst_dvbsrc_set_fe_params()
2537 GST_INFO_OBJECT (object, in gst_dvbsrc_set_fe_params()
2539 freq, object->pol, sym_rate, in gst_dvbsrc_set_fe_params()
2540 object->tone == SEC_TONE_ON ? "on" : "off"); in gst_dvbsrc_set_fe_params()
2542 if (object->pol == DVB_POL_H) in gst_dvbsrc_set_fe_params()
2547 if (object->diseqc_src == -1 || object->send_diseqc == FALSE) { in gst_dvbsrc_set_fe_params()
2552 LOOP_WHILE_EINTR (err, ioctl (object->fd_frontend, FE_SET_TONE, in gst_dvbsrc_set_fe_params()
2553 object->tone)); in gst_dvbsrc_set_fe_params()
2555 GST_WARNING_OBJECT (object, "Couldn't set tone: %s", in gst_dvbsrc_set_fe_params()
2559 GST_DEBUG_OBJECT (object, "Sending DiSEqC"); in gst_dvbsrc_set_fe_params()
2560 diseqc (object->fd_frontend, object->diseqc_src, voltage, object->tone); in gst_dvbsrc_set_fe_params()
2566 if ((object->delsys == SYS_DVBS2) || (object->delsys == SYS_TURBO)) in gst_dvbsrc_set_fe_params()
2567 set_prop (props->props, &n, DTV_MODULATION, object->modulation); in gst_dvbsrc_set_fe_params()
2569 if (object->delsys == SYS_DVBS2) { in gst_dvbsrc_set_fe_params()
2570 if (object->stream_id > 255) { in gst_dvbsrc_set_fe_params()
2571 GST_WARNING_OBJECT (object, "Invalid (> 255) DVB-S2 stream ID '%d'. " in gst_dvbsrc_set_fe_params()
2572 "Disabling sub-stream filtering", object->stream_id); in gst_dvbsrc_set_fe_params()
2573 object->stream_id = NO_STREAM_ID_FILTER; in gst_dvbsrc_set_fe_params()
2575 set_prop (props->props, &n, DTV_PILOT, object->pilot); in gst_dvbsrc_set_fe_params()
2576 set_prop (props->props, &n, DTV_ROLLOFF, object->rolloff); in gst_dvbsrc_set_fe_params()
2577 set_prop (props->props, &n, DTV_STREAM_ID, object->stream_id); in gst_dvbsrc_set_fe_params()
2582 set_prop (props->props, &n, DTV_BANDWIDTH_HZ, object->bandwidth); in gst_dvbsrc_set_fe_params()
2583 set_prop (props->props, &n, DTV_CODE_RATE_HP, object->code_rate_hp); in gst_dvbsrc_set_fe_params()
2584 set_prop (props->props, &n, DTV_CODE_RATE_LP, object->code_rate_lp); in gst_dvbsrc_set_fe_params()
2585 set_prop (props->props, &n, DTV_MODULATION, object->modulation); in gst_dvbsrc_set_fe_params()
2587 object->transmission_mode); in gst_dvbsrc_set_fe_params()
2588 set_prop (props->props, &n, DTV_GUARD_INTERVAL, object->guard_interval); in gst_dvbsrc_set_fe_params()
2589 set_prop (props->props, &n, DTV_HIERARCHY, object->hierarchy_information); in gst_dvbsrc_set_fe_params()
2591 if (object->delsys == SYS_DVBT2) { in gst_dvbsrc_set_fe_params()
2592 if (object->stream_id > 255) { in gst_dvbsrc_set_fe_params()
2593 GST_WARNING_OBJECT (object, "Invalid (> 255) DVB-T2 stream ID '%d'. " in gst_dvbsrc_set_fe_params()
2594 "Disabling sub-stream filtering", object->stream_id); in gst_dvbsrc_set_fe_params()
2595 object->stream_id = NO_STREAM_ID_FILTER; in gst_dvbsrc_set_fe_params()
2597 set_prop (props->props, &n, DTV_STREAM_ID, object->stream_id); in gst_dvbsrc_set_fe_params()
2600 GST_INFO_OBJECT (object, "Tuning DVB-T/DVB_T2 to %d Hz", freq); in gst_dvbsrc_set_fe_params()
2607 GST_INFO_OBJECT (object, "Tuning DVB-C/ClearCable to %d, srate=%d", in gst_dvbsrc_set_fe_params()
2610 set_prop (props->props, &n, DTV_MODULATION, object->modulation); in gst_dvbsrc_set_fe_params()
2611 if (object->delsys != SYS_DVBC_ANNEX_B) { in gst_dvbsrc_set_fe_params()
2612 set_prop (props->props, &n, DTV_INNER_FEC, object->code_rate_hp); in gst_dvbsrc_set_fe_params()
2617 GST_INFO_OBJECT (object, "Tuning ATSC to %d", freq); in gst_dvbsrc_set_fe_params()
2619 set_prop (props->props, &n, DTV_MODULATION, object->modulation); in gst_dvbsrc_set_fe_params()
2623 if (object->isdbt_partial_reception == 1 && in gst_dvbsrc_set_fe_params()
2624 object->isdbt_layera_segment_count != 1) { in gst_dvbsrc_set_fe_params()
2625 GST_WARNING_OBJECT (object, "Wrong ISDB-T parameter combination: " in gst_dvbsrc_set_fe_params()
2629 if (!object->isdbt_sound_broadcasting) { in gst_dvbsrc_set_fe_params()
2630 GST_INFO_OBJECT (object, "ISDB-T sound broadcasting is not set. " in gst_dvbsrc_set_fe_params()
2635 if (object->isdbt_layerc_modulation == DQPSK && in gst_dvbsrc_set_fe_params()
2636 object->isdbt_layerb_modulation != DQPSK) { in gst_dvbsrc_set_fe_params()
2637 GST_WARNING_OBJECT (object, "Wrong ISDB-T parameter combination: " in gst_dvbsrc_set_fe_params()
2641 GST_INFO_OBJECT (object, "Tuning ISDB-T to %d", freq); in gst_dvbsrc_set_fe_params()
2642 set_prop (props->props, &n, DTV_BANDWIDTH_HZ, object->bandwidth); in gst_dvbsrc_set_fe_params()
2643 set_prop (props->props, &n, DTV_GUARD_INTERVAL, object->guard_interval); in gst_dvbsrc_set_fe_params()
2645 object->transmission_mode); in gst_dvbsrc_set_fe_params()
2647 object->isdbt_layer_enabled); in gst_dvbsrc_set_fe_params()
2649 object->isdbt_partial_reception); in gst_dvbsrc_set_fe_params()
2651 object->isdbt_sound_broadcasting); in gst_dvbsrc_set_fe_params()
2653 object->isdbt_sb_subchannel_id); in gst_dvbsrc_set_fe_params()
2655 object->isdbt_sb_segment_idx); in gst_dvbsrc_set_fe_params()
2657 object->isdbt_sb_segment_count); in gst_dvbsrc_set_fe_params()
2659 object->isdbt_layera_fec); in gst_dvbsrc_set_fe_params()
2661 object->isdbt_layera_modulation); in gst_dvbsrc_set_fe_params()
2663 object->isdbt_layera_segment_count); in gst_dvbsrc_set_fe_params()
2665 object->isdbt_layera_time_interleaving); in gst_dvbsrc_set_fe_params()
2667 object->isdbt_layerb_fec); in gst_dvbsrc_set_fe_params()
2669 object->isdbt_layerb_modulation); in gst_dvbsrc_set_fe_params()
2671 object->isdbt_layerb_segment_count); in gst_dvbsrc_set_fe_params()
2673 object->isdbt_layerb_time_interleaving); in gst_dvbsrc_set_fe_params()
2675 object->isdbt_layerc_fec); in gst_dvbsrc_set_fe_params()
2677 object->isdbt_layerc_modulation); in gst_dvbsrc_set_fe_params()
2679 object->isdbt_layerc_segment_count); in gst_dvbsrc_set_fe_params()
2681 object->isdbt_layerc_time_interleaving); in gst_dvbsrc_set_fe_params()
2685 set_prop (props->props, &n, DTV_BANDWIDTH_HZ, object->bandwidth); in gst_dvbsrc_set_fe_params()
2686 set_prop (props->props, &n, DTV_MODULATION, object->modulation); in gst_dvbsrc_set_fe_params()
2687 set_prop (props->props, &n, DTV_INVERSION, object->inversion); in gst_dvbsrc_set_fe_params()
2688 set_prop (props->props, &n, DTV_INNER_FEC, object->code_rate_hp); in gst_dvbsrc_set_fe_params()
2690 object->transmission_mode); in gst_dvbsrc_set_fe_params()
2691 set_prop (props->props, &n, DTV_GUARD_INTERVAL, object->guard_interval); in gst_dvbsrc_set_fe_params()
2692 set_prop (props->props, &n, DTV_INTERLEAVING, object->interleaving); in gst_dvbsrc_set_fe_params()
2699 GST_INFO_OBJECT (object, "Tuning DTMB to %d Hz", freq); in gst_dvbsrc_set_fe_params()
2703 GST_ERROR_OBJECT (object, "Unknown frontend type %u", object->delsys); in gst_dvbsrc_set_fe_params()
2708 if (!gst_dvbsrc_is_valid_modulation (object->delsys, object->modulation)) { in gst_dvbsrc_set_fe_params()
2709 GST_WARNING_OBJECT (object, in gst_dvbsrc_set_fe_params()
2711 object->modulation, object->delsys); in gst_dvbsrc_set_fe_params()
2713 if (!gst_dvbsrc_is_valid_trans_mode (object->delsys, in gst_dvbsrc_set_fe_params()
2714 object->transmission_mode)) { in gst_dvbsrc_set_fe_params()
2715 GST_WARNING_OBJECT (object, in gst_dvbsrc_set_fe_params()
2717 object->transmission_mode, object->delsys); in gst_dvbsrc_set_fe_params()
2719 if (!gst_dvbsrc_is_valid_bandwidth (object->delsys, object->bandwidth)) { in gst_dvbsrc_set_fe_params()
2720 GST_WARNING_OBJECT (object, in gst_dvbsrc_set_fe_params()
2722 object->bandwidth, object->delsys); in gst_dvbsrc_set_fe_params()
2729 set_prop (props->props, &n, DTV_DELIVERY_SYSTEM, object->delsys); in gst_dvbsrc_set_fe_params()
2737 gst_dvbsrc_tune (GstDvbSrc * object) in gst_dvbsrc_tune() argument
2746 if (!gst_dvbsrc_tune_fe (object)) { in gst_dvbsrc_tune()
2747 GST_WARNING_OBJECT (object, "Unable to tune frontend"); in gst_dvbsrc_tune()
2751 gst_dvbsrc_set_pes_filters (object); in gst_dvbsrc_tune()
2758 gst_dvbsrc_unset_pes_filters (GstDvbSrc * object) in gst_dvbsrc_unset_pes_filters() argument
2762 GST_INFO_OBJECT (object, "clearing PES filter"); in gst_dvbsrc_unset_pes_filters()
2765 if (object->fd_filters[i] == -1) in gst_dvbsrc_unset_pes_filters()
2767 close (object->fd_filters[i]); in gst_dvbsrc_unset_pes_filters()
2768 object->fd_filters[i] = -1; in gst_dvbsrc_unset_pes_filters()
2773 gst_dvbsrc_set_pes_filters (GstDvbSrc * object) in gst_dvbsrc_set_pes_filters() argument
2780 object->adapter_number, object->frontend_number); in gst_dvbsrc_set_pes_filters()
2782 GST_INFO_OBJECT (object, "Setting PES filter"); in gst_dvbsrc_set_pes_filters()
2791 if (object->pids[i] == G_MAXUINT16) in gst_dvbsrc_set_pes_filters()
2794 fd = &object->fd_filters[i]; in gst_dvbsrc_set_pes_filters()
2795 pid = object->pids[i]; in gst_dvbsrc_set_pes_filters()
2800 GST_ERROR_OBJECT (object, "Error opening demuxer: %s (%s)", in gst_dvbsrc_set_pes_filters()
2808 GST_INFO_OBJECT (object, "Setting PES filter: pid = %d, type = %d", in gst_dvbsrc_set_pes_filters()
2813 GST_WARNING_OBJECT (object, "Error setting PES filter on %s: %s", in gst_dvbsrc_set_pes_filters()