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