ports/130515: new port: multimedia/dvbsnoop-1.4.50 DVB/MPEG stream analyzer
J.R. Oldroyd
fbsd at opal.com
Tue Jan 13 21:30:02 UTC 2009
>Number: 130515
>Category: ports
>Synopsis: new port: multimedia/dvbsnoop-1.4.50 DVB/MPEG stream analyzer
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: update
>Submitter-Id: current-users
>Arrival-Date: Tue Jan 13 21:30:01 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator: J.R. Oldroyd
>Release: FreeBSD 7.0-STABLE i386
>Organization:
>Environment:
System: FreeBSD xx.opal.com 7.0-STABLE FreeBSD 7.0-STABLE #1: Thu Mar 13 12:42:33 EDT 2008 xx at opal.com:/usr/src/sys/i386/compile/XX i386
>Description:
new port: multimedia/dvbsnoop-1.4.50 DVB/MPEG stream analyzer
>How-To-Repeat:
>Fix:
# This is a shell archive. Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file". Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
# multimedia/dvbsnoop/
# multimedia/dvbsnoop/Makefile
# multimedia/dvbsnoop/distinfo
# multimedia/dvbsnoop/pkg-descr
# multimedia/dvbsnoop/files
# multimedia/dvbsnoop/files/dmx.h
# multimedia/dvbsnoop/files/frontend.h
# multimedia/dvbsnoop/files/patch-src-dvbsnoop.h
#
echo c - multimedia/dvbsnoop/
mkdir -p multimedia/dvbsnoop/ > /dev/null 2>&1
echo x - multimedia/dvbsnoop/Makefile
sed 's/^X//' >multimedia/dvbsnoop/Makefile << 'END-of-multimedia/dvbsnoop/Makefile'
X# New ports collection makefile for: dvbsnoop
X# Date created: 2009 January 12
X# Whom: J.R. Oldroyd <fbsd at opal.com>
X#
X# $FreeBSD$
X#
X
XPORTNAME= dvbsnoop
XPORTVERSION= 1.4.50
XCATEGORIES= multimedia
XMASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
XMASTER_SITE_SUBDIR= dvbsnoop
X
XMAINTAINER= fbsd at opal.com
XCOMMENT= DVB stream analyzer / MPEG analyzer
X
XDVB_HEADERS= dmx.h frontend.h
X
XGNU_CONFIGURE= yes
XCONFIGURE_ENV= CFLAGS="${CFLAGS} -I${WRKSRC}"
XUSE_GMAKE= yes
X
XPLIST_FILES= bin/${PORTNAME}
XMAN1= ${PORTNAME}.1
X
X.include <bsd.port.pre.mk>
X
Xpost-patch:
X ${MKDIR} ${WRKSRC}/linux/dvb
X cd ${FILESDIR}; ${CP} ${DVB_HEADERS} ${WRKSRC}/linux/dvb
X
X.include <bsd.port.post.mk>
END-of-multimedia/dvbsnoop/Makefile
echo x - multimedia/dvbsnoop/distinfo
sed 's/^X//' >multimedia/dvbsnoop/distinfo << 'END-of-multimedia/dvbsnoop/distinfo'
XMD5 (dvbsnoop-1.4.50.tar.gz) = 68a5618c95b4372eea9ac5ec5005f299
XSHA256 (dvbsnoop-1.4.50.tar.gz) = 7658498b26a5d2a0242e81f0cfafa0e43a2bec56f8674e7ac197dfc310866ec6
XSIZE (dvbsnoop-1.4.50.tar.gz) = 333992
END-of-multimedia/dvbsnoop/distinfo
echo x - multimedia/dvbsnoop/pkg-descr
sed 's/^X//' >multimedia/dvbsnoop/pkg-descr << 'END-of-multimedia/dvbsnoop/pkg-descr'
XDVBsnoop is an analyzer for DVB broadcast streams / MPEG transport
Xstreams.
X
XDVBsnoop is a program to monitor, analyze, debug, dump or view
Xdvb/mpeg/dsm-cc/mhp stream information (TS, PES, SECTION) (e.g.
Xdigital television) send via satellite, cable or terrestrial.
X
XWWW: http://dvbsnoop.sourceforge.net/
END-of-multimedia/dvbsnoop/pkg-descr
echo c - multimedia/dvbsnoop/files
mkdir -p multimedia/dvbsnoop/files > /dev/null 2>&1
echo x - multimedia/dvbsnoop/files/dmx.h
sed 's/^X//' >multimedia/dvbsnoop/files/dmx.h << 'END-of-multimedia/dvbsnoop/files/dmx.h'
X/*
X * dmx.h
X *
X * Copyright (C) 2000 Marcus Metzler <marcus at convergence.de>
X * & Ralph Metzler <ralph at convergence.de>
X for convergence integrated media GmbH
X *
X * This program is free software; you can redistribute it and/or
X * modify it under the terms of the GNU Lesser General Public License
X * as published by the Free Software Foundation; either version 2.1
X * of the License, or (at your option) any later version.
X *
X * This program is distributed in the hope that it will be useful,
X * but WITHOUT ANY WARRANTY; without even the implied warranty of
X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
X * GNU General Public License for more details.
X *
X * You should have received a copy of the GNU Lesser General Public License
X * along with this program; if not, write to the Free Software
X * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
X *
X */
X
X#ifndef _DVBDMX_H_
X#define _DVBDMX_H_
X
X#ifndef LINUX_TYPES_ADDED
X#define LINUX_TYPES_ADDED
X#include <sys/types.h>
Xtypedef uint64_t __u64;
Xtypedef uint32_t __u32;
Xtypedef uint16_t __u16;
Xtypedef uint8_t __u8;
X#endif
X
X#include <time.h>
X
X#define DMX_FILTER_SIZE 16
X
Xtypedef enum
X{
X DMX_OUT_DECODER, /* Streaming directly to decoder. */
X DMX_OUT_TAP, /* Output going to a memory buffer */
X /* (to be retrieved via the read command).*/
X DMX_OUT_TS_TAP /* Output multiplexed into a new TS */
X /* (to be retrieved by reading from the */
X /* logical DVR device). */
X} dmx_output_t;
X
X
Xtypedef enum
X{
X DMX_IN_FRONTEND, /* Input from a front-end device. */
X DMX_IN_DVR /* Input from the logical DVR device. */
X} dmx_input_t;
X
X
Xtypedef enum
X{
X DMX_PES_AUDIO0,
X DMX_PES_VIDEO0,
X DMX_PES_TELETEXT0,
X DMX_PES_SUBTITLE0,
X DMX_PES_PCR0,
X
X DMX_PES_AUDIO1,
X DMX_PES_VIDEO1,
X DMX_PES_TELETEXT1,
X DMX_PES_SUBTITLE1,
X DMX_PES_PCR1,
X
X DMX_PES_AUDIO2,
X DMX_PES_VIDEO2,
X DMX_PES_TELETEXT2,
X DMX_PES_SUBTITLE2,
X DMX_PES_PCR2,
X
X DMX_PES_AUDIO3,
X DMX_PES_VIDEO3,
X DMX_PES_TELETEXT3,
X DMX_PES_SUBTITLE3,
X DMX_PES_PCR3,
X
X DMX_PES_OTHER
X} dmx_pes_type_t;
X
X#define DMX_PES_AUDIO DMX_PES_AUDIO0
X#define DMX_PES_VIDEO DMX_PES_VIDEO0
X#define DMX_PES_TELETEXT DMX_PES_TELETEXT0
X#define DMX_PES_SUBTITLE DMX_PES_SUBTITLE0
X#define DMX_PES_PCR DMX_PES_PCR0
X
X
Xtypedef enum
X{
X DMX_SCRAMBLING_EV,
X DMX_FRONTEND_EV
X} dmx_event_t;
X
X
Xtypedef enum
X{
X DMX_SCRAMBLING_OFF,
X DMX_SCRAMBLING_ON
X} dmx_scrambling_status_t;
X
X
Xtypedef struct dmx_filter
X{
X __u8 filter[DMX_FILTER_SIZE];
X __u8 mask[DMX_FILTER_SIZE];
X __u8 mode[DMX_FILTER_SIZE];
X} dmx_filter_t;
X
X
Xstruct dmx_sct_filter_params
X{
X __u16 pid;
X dmx_filter_t filter;
X __u32 timeout;
X __u32 flags;
X#define DMX_CHECK_CRC 1
X#define DMX_ONESHOT 2
X#define DMX_IMMEDIATE_START 4
X#define DMX_KERNEL_CLIENT 0x8000
X};
X
X
Xstruct dmx_pes_filter_params
X{
X __u16 pid;
X dmx_input_t input;
X dmx_output_t output;
X dmx_pes_type_t pes_type;
X __u32 flags;
X};
X
X
Xstruct dmx_event
X{
X dmx_event_t event;
X time_t timeStamp;
X union
X {
X dmx_scrambling_status_t scrambling;
X } u;
X};
X
Xtypedef struct dmx_caps {
X __u32 caps;
X int num_decoders;
X} dmx_caps_t;
X
Xtypedef enum {
X DMX_SOURCE_FRONT0 = 0,
X DMX_SOURCE_FRONT1,
X DMX_SOURCE_FRONT2,
X DMX_SOURCE_FRONT3,
X DMX_SOURCE_DVR0 = 16,
X DMX_SOURCE_DVR1,
X DMX_SOURCE_DVR2,
X DMX_SOURCE_DVR3
X} dmx_source_t;
X
Xstruct dmx_stc {
X unsigned int num; /* input : which STC? 0..N */
X unsigned int base; /* output: divisor for stc to get 90 kHz clock */
X __u64 stc; /* output: stc in 'base'*90 kHz units */
X};
X
X
X#define DMX_START _IO('o',41)
X#define DMX_STOP _IO('o',42)
X#define DMX_SET_FILTER _IOW('o',43,struct dmx_sct_filter_params)
X#define DMX_SET_PES_FILTER _IOW('o',44,struct dmx_pes_filter_params)
X#define DMX_SET_BUFFER_SIZE _IO('o',45)
X#define DMX_GET_EVENT _IOR('o',46,struct dmx_event)
X#define DMX_GET_PES_PIDS _IOR('o', 47, __u16[5])
X#define DMX_GET_CAPS _IOR('o',48,dmx_caps_t)
X#define DMX_SET_SOURCE _IOW('o',49,dmx_source_t)
X#define DMX_GET_STC _IOWR('o',50,struct dmx_stc)
X
X#endif /*_DVBDMX_H_*/
X
END-of-multimedia/dvbsnoop/files/dmx.h
echo x - multimedia/dvbsnoop/files/frontend.h
sed 's/^X//' >multimedia/dvbsnoop/files/frontend.h << 'END-of-multimedia/dvbsnoop/files/frontend.h'
X/*
X * frontend.h
X *
X * Copyright (C) 2000 Marcus Metzler <marcus at convergence.de>
X * Ralph Metzler <ralph at convergence.de>
X * Holger Waechtler <holger at convergence.de>
X * Andre Draszik <ad at convergence.de>
X * for convergence integrated media GmbH
X *
X * This program is free software; you can redistribute it and/or
X * modify it under the terms of the GNU Lesser General Public License
X * as published by the Free Software Foundation; either version 2.1
X * of the License, or (at your option) any later version.
X *
X * This program is distributed in the hope that it will be useful,
X * but WITHOUT ANY WARRANTY; without even the implied warranty of
X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
X * GNU General Public License for more details.
X *
X * You should have received a copy of the GNU Lesser General Public License
X * along with this program; if not, write to the Free Software
X * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
X *
X */
X
X#ifndef _DVBFRONTEND_H_
X#define _DVBFRONTEND_H_
X
X#ifndef LINUX_TYPES_ADDED
X#define LINUX_TYPES_ADDED
X#include <sys/types.h>
Xtypedef uint64_t __u64;
Xtypedef uint32_t __u32;
Xtypedef uint16_t __u16;
Xtypedef uint8_t __u8;
X#endif
X
X
X
Xtypedef enum fe_type {
X FE_QPSK,
X FE_QAM,
X FE_OFDM,
X FE_ATSC
X} fe_type_t;
X
X
Xtypedef enum fe_caps {
X FE_IS_STUPID = 0,
X FE_CAN_INVERSION_AUTO = 0x1,
X FE_CAN_FEC_1_2 = 0x2,
X FE_CAN_FEC_2_3 = 0x4,
X FE_CAN_FEC_3_4 = 0x8,
X FE_CAN_FEC_4_5 = 0x10,
X FE_CAN_FEC_5_6 = 0x20,
X FE_CAN_FEC_6_7 = 0x40,
X FE_CAN_FEC_7_8 = 0x80,
X FE_CAN_FEC_8_9 = 0x100,
X FE_CAN_FEC_AUTO = 0x200,
X FE_CAN_QPSK = 0x400,
X FE_CAN_QAM_16 = 0x800,
X FE_CAN_QAM_32 = 0x1000,
X FE_CAN_QAM_64 = 0x2000,
X FE_CAN_QAM_128 = 0x4000,
X FE_CAN_QAM_256 = 0x8000,
X FE_CAN_QAM_AUTO = 0x10000,
X FE_CAN_TRANSMISSION_MODE_AUTO = 0x20000,
X FE_CAN_BANDWIDTH_AUTO = 0x40000,
X FE_CAN_GUARD_INTERVAL_AUTO = 0x80000,
X FE_CAN_HIERARCHY_AUTO = 0x100000,
X FE_CAN_8VSB = 0x200000,
X FE_CAN_16VSB = 0x400000,
X FE_NEEDS_BENDING = 0x20000000, // not supported anymore, don't use (frontend requires frequency bending)
X FE_CAN_RECOVER = 0x40000000, // frontend can recover from a cable unplug automatically
X FE_CAN_MUTE_TS = 0x80000000 // frontend can stop spurious TS data output
X} fe_caps_t;
X
X
Xstruct dvb_frontend_info {
X char name[128];
X fe_type_t type;
X __u32 frequency_min;
X __u32 frequency_max;
X __u32 frequency_stepsize;
X __u32 frequency_tolerance;
X __u32 symbol_rate_min;
X __u32 symbol_rate_max;
X __u32 symbol_rate_tolerance; /* ppm */
X __u32 notifier_delay; /* DEPRECATED */
X fe_caps_t caps;
X};
X
X
X/**
X * Check out the DiSEqC bus spec available on http://www.eutelsat.org/ for
X * the meaning of this struct...
X */
Xstruct dvb_diseqc_master_cmd {
X __u8 msg [6]; /* { framing, address, command, data [3] } */
X __u8 msg_len; /* valid values are 3...6 */
X};
X
X
Xstruct dvb_diseqc_slave_reply {
X __u8 msg [4]; /* { framing, data [3] } */
X __u8 msg_len; /* valid values are 0...4, 0 means no msg */
X int timeout; /* return from ioctl after timeout ms with */
X}; /* errorcode when no message was received */
X
X
Xtypedef enum fe_sec_voltage {
X SEC_VOLTAGE_13,
X SEC_VOLTAGE_18,
X SEC_VOLTAGE_OFF
X} fe_sec_voltage_t;
X
X
Xtypedef enum fe_sec_tone_mode {
X SEC_TONE_ON,
X SEC_TONE_OFF
X} fe_sec_tone_mode_t;
X
X
Xtypedef enum fe_sec_mini_cmd {
X SEC_MINI_A,
X SEC_MINI_B
X} fe_sec_mini_cmd_t;
X
X
Xtypedef enum fe_status {
X FE_HAS_SIGNAL = 0x01, /* found something above the noise level */
X FE_HAS_CARRIER = 0x02, /* found a DVB signal */
X FE_HAS_VITERBI = 0x04, /* FEC is stable */
X FE_HAS_SYNC = 0x08, /* found sync bytes */
X FE_HAS_LOCK = 0x10, /* everything's working... */
X FE_TIMEDOUT = 0x20, /* no lock within the last ~2 seconds */
X FE_REINIT = 0x40 /* frontend was reinitialized, */
X} fe_status_t; /* application is recommended to reset */
X /* DiSEqC, tone and parameters */
X
Xtypedef enum fe_spectral_inversion {
X INVERSION_OFF,
X INVERSION_ON,
X INVERSION_AUTO
X} fe_spectral_inversion_t;
X
X
Xtypedef enum fe_code_rate {
X FEC_NONE = 0,
X FEC_1_2,
X FEC_2_3,
X FEC_3_4,
X FEC_4_5,
X FEC_5_6,
X FEC_6_7,
X FEC_7_8,
X FEC_8_9,
X FEC_AUTO
X} fe_code_rate_t;
X
X
Xtypedef enum fe_modulation {
X QPSK,
X QAM_16,
X QAM_32,
X QAM_64,
X QAM_128,
X QAM_256,
X QAM_AUTO,
X VSB_8,
X VSB_16
X} fe_modulation_t;
X
Xtypedef enum fe_transmit_mode {
X TRANSMISSION_MODE_2K,
X TRANSMISSION_MODE_8K,
X TRANSMISSION_MODE_AUTO
X} fe_transmit_mode_t;
X
Xtypedef enum fe_bandwidth {
X BANDWIDTH_8_MHZ,
X BANDWIDTH_7_MHZ,
X BANDWIDTH_6_MHZ,
X BANDWIDTH_AUTO
X} fe_bandwidth_t;
X
X
Xtypedef enum fe_guard_interval {
X GUARD_INTERVAL_1_32,
X GUARD_INTERVAL_1_16,
X GUARD_INTERVAL_1_8,
X GUARD_INTERVAL_1_4,
X GUARD_INTERVAL_AUTO
X} fe_guard_interval_t;
X
X
Xtypedef enum fe_hierarchy {
X HIERARCHY_NONE,
X HIERARCHY_1,
X HIERARCHY_2,
X HIERARCHY_4,
X HIERARCHY_AUTO
X} fe_hierarchy_t;
X
X
Xstruct dvb_qpsk_parameters {
X __u32 symbol_rate; /* symbol rate in Symbols per second */
X fe_code_rate_t fec_inner; /* forward error correction (see above) */
X};
X
X
Xstruct dvb_qam_parameters {
X __u32 symbol_rate; /* symbol rate in Symbols per second */
X fe_code_rate_t fec_inner; /* forward error correction (see above) */
X fe_modulation_t modulation; /* modulation type (see above) */
X};
X
Xstruct dvb_vsb_parameters {
X fe_modulation_t modulation; /* modulation type (see above) */
X};
X
Xstruct dvb_ofdm_parameters {
X fe_bandwidth_t bandwidth;
X fe_code_rate_t code_rate_HP; /* high priority stream code rate */
X fe_code_rate_t code_rate_LP; /* low priority stream code rate */
X fe_modulation_t constellation; /* modulation type (see above) */
X fe_transmit_mode_t transmission_mode;
X fe_guard_interval_t guard_interval;
X fe_hierarchy_t hierarchy_information;
X};
X
X
Xstruct dvb_frontend_parameters {
X __u32 frequency; /* (absolute) frequency in Hz for QAM/OFDM/ATSC */
X /* intermediate frequency in kHz for QPSK */
X fe_spectral_inversion_t inversion;
X union {
X struct dvb_qpsk_parameters qpsk;
X struct dvb_qam_parameters qam;
X struct dvb_ofdm_parameters ofdm;
X struct dvb_vsb_parameters vsb;
X } u;
X};
X
X
Xstruct dvb_frontend_event {
X fe_status_t status;
X struct dvb_frontend_parameters parameters;
X};
X
X
X
X#define FE_GET_INFO _IOR('o', 61, struct dvb_frontend_info)
X
X#define FE_DISEQC_RESET_OVERLOAD _IO('o', 62)
X#define FE_DISEQC_SEND_MASTER_CMD _IOW('o', 63, struct dvb_diseqc_master_cmd)
X#define FE_DISEQC_RECV_SLAVE_REPLY _IOR('o', 64, struct dvb_diseqc_slave_reply)
X#define FE_DISEQC_SEND_BURST _IO('o', 65) /* fe_sec_mini_cmd_t */
X
X#define FE_SET_TONE _IO('o', 66) /* fe_sec_tone_mode_t */
X#define FE_SET_VOLTAGE _IO('o', 67) /* fe_sec_voltage_t */
X#define FE_ENABLE_HIGH_LNB_VOLTAGE _IO('o', 68) /* int */
X
X#define FE_READ_STATUS _IOR('o', 69, fe_status_t)
X#define FE_READ_BER _IOR('o', 70, __u32)
X#define FE_READ_SIGNAL_STRENGTH _IOR('o', 71, __u16)
X#define FE_READ_SNR _IOR('o', 72, __u16)
X#define FE_READ_UNCORRECTED_BLOCKS _IOR('o', 73, __u32)
X
X#define FE_SET_FRONTEND _IOW('o', 76, struct dvb_frontend_parameters)
X#define FE_GET_FRONTEND _IOR('o', 77, struct dvb_frontend_parameters)
X#define FE_GET_EVENT _IOR('o', 78, struct dvb_frontend_event)
X
X#define FE_DISHNETWORK_SEND_LEGACY_CMD _IO('o', 80) /* unsigned int */
X
X
X#endif /*_DVBFRONTEND_H_*/
X
END-of-multimedia/dvbsnoop/files/frontend.h
echo x - multimedia/dvbsnoop/files/patch-src-dvbsnoop.h
sed 's/^X//' >multimedia/dvbsnoop/files/patch-src-dvbsnoop.h << 'END-of-multimedia/dvbsnoop/files/patch-src-dvbsnoop.h'
X--- src/dvbsnoop.h.orig 2005-09-09 10:20:30.000000000 -0400
X+++ src/dvbsnoop.h 2009-01-12 18:05:11.000000000 -0500
X@@ -112,6 +112,7 @@
X #include <string.h>
X #include <time.h>
X #include <ctype.h>
X+#include <sys/types.h>
X
X #include "version.h"
X #include "misc/helper.h"
END-of-multimedia/dvbsnoop/files/patch-src-dvbsnoop.h
exit
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list