Doxygen documentation.

parent 27375b1a
## Process this file with automake to produce Makefile.in ## Process this file with automake to produce Makefile.in
SUBDIRS = src examples misc SUBDIRS = src examples misc doc
doc-dummy:
doc: doc-dummy
$(MAKE) -C doc doc
...@@ -74,7 +74,7 @@ RANLIB = @RANLIB@ ...@@ -74,7 +74,7 @@ RANLIB = @RANLIB@
STRIP = @STRIP@ STRIP = @STRIP@
VERSION = @VERSION@ VERSION = @VERSION@
SUBDIRS = src examples misc SUBDIRS = src examples misc doc
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ./src/config.h CONFIG_HEADER = ./src/config.h
...@@ -329,6 +329,11 @@ installdirs mostlyclean-generic distclean-generic clean-generic \ ...@@ -329,6 +329,11 @@ installdirs mostlyclean-generic distclean-generic clean-generic \
maintainer-clean-generic clean mostlyclean distclean maintainer-clean maintainer-clean-generic clean mostlyclean distclean maintainer-clean
doc-dummy:
doc: doc-dummy
$(MAKE) -C doc doc
# Tell versions [3.59,3.63) of GNU make to not export all variables. # Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded. # Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT: .NOEXPORT:
...@@ -1930,7 +1930,7 @@ else ...@@ -1930,7 +1930,7 @@ else
if { (eval echo configure:1931: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then if { (eval echo configure:1931: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
for file in conftest.*; do for file in conftest.*; do
case $file in case $file in
*.c | *.o | *.obj) ;; *.$ac_ext | *.c | *.o | *.obj) ;;
*) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
esac esac
done done
...@@ -5507,7 +5507,7 @@ done ...@@ -5507,7 +5507,7 @@ done
ac_given_srcdir=$srcdir ac_given_srcdir=$srcdir
ac_given_INSTALL="$INSTALL" ac_given_INSTALL="$INSTALL"
trap 'rm -fr `echo "Makefile src/Makefile src/tables/Makefile examples/Makefile misc/Makefile src/config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 trap 'rm -fr `echo "Makefile src/Makefile src/tables/Makefile examples/Makefile misc/Makefile doc/Makefile src/config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
EOF EOF
cat >> $CONFIG_STATUS <<EOF cat >> $CONFIG_STATUS <<EOF
...@@ -5610,7 +5610,7 @@ EOF ...@@ -5610,7 +5610,7 @@ EOF
cat >> $CONFIG_STATUS <<EOF cat >> $CONFIG_STATUS <<EOF
CONFIG_FILES=\${CONFIG_FILES-"Makefile src/Makefile src/tables/Makefile examples/Makefile misc/Makefile"} CONFIG_FILES=\${CONFIG_FILES-"Makefile src/Makefile src/tables/Makefile examples/Makefile misc/Makefile doc/Makefile"}
EOF EOF
cat >> $CONFIG_STATUS <<\EOF cat >> $CONFIG_STATUS <<\EOF
for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
......
...@@ -42,7 +42,7 @@ else ...@@ -42,7 +42,7 @@ else
fi fi
AC_OUTPUT([Makefile src/Makefile src/tables/Makefile examples/Makefile misc/Makefile]) AC_OUTPUT([Makefile src/Makefile src/tables/Makefile examples/Makefile misc/Makefile doc/Makefile])
echo " echo "
libdvbpsi configuration libdvbpsi configuration
......
## Process this file with automake to produce Makefile.in
EXTRA_DIST=doxygen.cfg
doc:
doxygen doxygen.cfg
# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
libdir = @libdir@
infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
AS = @AS@
CC = @CC@
DLLTOOL = @DLLTOOL@
ECHO = @ECHO@
EXEEXT = @EXEEXT@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
MAKEINFO = @MAKEINFO@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
RANLIB = @RANLIB@
STRIP = @STRIP@
VERSION = @VERSION@
EXTRA_DIST = doxygen.cfg
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../src/config.h
CONFIG_CLEAN_FILES =
DIST_COMMON = Makefile.am Makefile.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
GZIP_ENV = --best
all: all-redirect
.SUFFIXES:
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
tags: TAGS
TAGS:
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
subdir = doc
distdir: $(DISTFILES)
here=`cd $(top_builddir) && pwd`; \
top_distdir=`cd $(top_distdir) && pwd`; \
distdir=`cd $(distdir) && pwd`; \
cd $(top_srcdir) \
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu doc/Makefile
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
fi; \
done
info-am:
info: info-am
dvi-am:
dvi: dvi-am
check-am: all-am
check: check-am
installcheck-am:
installcheck: installcheck-am
install-exec-am:
install-exec: install-exec-am
install-data-am:
install-data: install-data-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am:
uninstall: uninstall-am
all-am: Makefile
all-redirect: all-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic:
mostlyclean-am: mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-generic mostlyclean-am
clean: clean-am
distclean-am: distclean-generic clean-am
-rm -f libtool
distclean: distclean-am
maintainer-clean-am: maintainer-clean-generic distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
maintainer-clean: maintainer-clean-am
.PHONY: tags distdir info-am info dvi-am dvi check check-am \
installcheck-am installcheck install-exec-am install-exec \
install-data-am install-data install-am install uninstall-am uninstall \
all-redirect all-am all installdirs mostlyclean-generic \
distclean-generic clean-generic maintainer-clean-generic clean \
mostlyclean distclean maintainer-clean
doc:
doxygen doxygen.cfg
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
This diff is collapsed.
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* descriptor.h: common descriptor structures * descriptor.h: common descriptor structures
*---------------------------------------------------------------------------- *----------------------------------------------------------------------------
* (c)2001-2002 VideoLAN * (c)2001-2002 VideoLAN
* $Id: descriptor.h,v 1.2 2002/03/15 12:16:01 bozo Exp $ * $Id: descriptor.h,v 1.3 2002/03/25 21:00:50 bozo Exp $
* *
* Authors: Arnaud de Bossoreille de Ribou <bozo@via.ecp.fr> * Authors: Arnaud de Bossoreille de Ribou <bozo@via.ecp.fr>
* *
...@@ -34,26 +34,31 @@ extern "C" { ...@@ -34,26 +34,31 @@ extern "C" {
/***************************************************************************** /*****************************************************************************
* dvbpsi_descriptor_t * dvbpsi_descriptor_t
***************************************************************************** *****************************************************************************/
* This structure is used to store a descriptor. /*!This structure is used to store a descriptor.
* (ISO/IEC 13818-1 section 2.6). * (ISO/IEC 13818-1 section 2.6).
*****************************************************************************/ *****************************************************************************/
typedef struct dvbpsi_descriptor_s typedef struct dvbpsi_descriptor_s
{ {
uint8_t i_tag; /* descriptor_tag */ uint8_t i_tag; /*!< descriptor_tag */
uint8_t i_length; /* descriptor_length */ uint8_t i_length; /*!< descriptor_length */
uint8_t * p_data; /* content */ uint8_t * p_data; /*!< content */
struct dvbpsi_descriptor_s * p_next; struct dvbpsi_descriptor_s * p_next; /*!< next element of
the list */
} dvbpsi_descriptor_t; } dvbpsi_descriptor_t;
/***************************************************************************** /*****************************************************************************
* dvbpsi_NewDescriptor * dvbpsi_NewDescriptor
***************************************************************************** *****************************************************************************/
* Creation of a new dvbpsi_descriptor_t structure. /*!Creation of a new dvbpsi_descriptor_t structure.
* \param i_tag descriptor's tag
* \param i_length descriptor's length
* \param p_data descriptor's data
* \return a pointer to the descriptor.
*****************************************************************************/ *****************************************************************************/
dvbpsi_descriptor_t* dvbpsi_NewDescriptor(uint8_t i_tag, uint8_t i_length, dvbpsi_descriptor_t* dvbpsi_NewDescriptor(uint8_t i_tag, uint8_t i_length,
uint8_t* p_data); uint8_t* p_data);
...@@ -61,8 +66,10 @@ dvbpsi_descriptor_t* dvbpsi_NewDescriptor(uint8_t i_tag, uint8_t i_length, ...@@ -61,8 +66,10 @@ dvbpsi_descriptor_t* dvbpsi_NewDescriptor(uint8_t i_tag, uint8_t i_length,
/***************************************************************************** /*****************************************************************************
* dvbpsi_DeleteDescriptor * dvbpsi_DeleteDescriptor
***************************************************************************** *****************************************************************************/
* Destruction of a dvbpsi_descriptor_t structure. /*!Destruction of a dvbpsi_descriptor_t structure.
* \param p_descriptor pointer to the descriptor
* \return nothing.
*****************************************************************************/ *****************************************************************************/
void dvbpsi_DeleteDescriptor(dvbpsi_descriptor_t* p_descriptor); void dvbpsi_DeleteDescriptor(dvbpsi_descriptor_t* p_descriptor);
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* dvbpsi.h: main header * dvbpsi.h: main header
*---------------------------------------------------------------------------- *----------------------------------------------------------------------------
* (c)2001-2002 VideoLAN * (c)2001-2002 VideoLAN
* $Id: dvbpsi.h,v 1.3 2002/03/15 12:16:01 bozo Exp $ * $Id: dvbpsi.h,v 1.4 2002/03/25 21:00:50 bozo Exp $
* *
* Authors: Arnaud de Bossoreille de Ribou <bozo@via.ecp.fr> * Authors: Arnaud de Bossoreille de Ribou <bozo@via.ecp.fr>
* *
...@@ -37,16 +37,19 @@ extern "C" { ...@@ -37,16 +37,19 @@ extern "C" {
/***************************************************************************** /*****************************************************************************
* dvbpsi_handle * dvbpsi_handle
***************************************************************************** *****************************************************************************/
* Decoder abstration. /*!Decoder abstration.
*****************************************************************************/ *****************************************************************************/
typedef struct dvbpsi_decoder_s * dvbpsi_handle; typedef struct dvbpsi_decoder_s * dvbpsi_handle;
/***************************************************************************** /*****************************************************************************
* dvbpsi_PushPacket * dvbpsi_PushPacket
***************************************************************************** *****************************************************************************/
* Injection of a TS packet into a PSI decoder. /*!Injection of a TS packet into a PSI decoder.
* \param h_dvbpsi handle to the decoder
* \param p_data pointer to a 188 bytes playload of a TS packet
* \return nothing.
*****************************************************************************/ *****************************************************************************/
void dvbpsi_PushPacket(dvbpsi_handle h_dvbpsi, uint8_t* p_data); void dvbpsi_PushPacket(dvbpsi_handle h_dvbpsi, uint8_t* p_data);
...@@ -60,8 +63,8 @@ typedef struct dvbpsi_psi_section_s dvbpsi_psi_section_t; ...@@ -60,8 +63,8 @@ typedef struct dvbpsi_psi_section_s dvbpsi_psi_section_t;
/***************************************************************************** /*****************************************************************************
* dvbpsi_callback * dvbpsi_callback
***************************************************************************** *****************************************************************************/
* Callback type definition. /*!Callback type definition.
*****************************************************************************/ *****************************************************************************/
typedef void (* dvbpsi_callback)(dvbpsi_handle p_decoder, typedef void (* dvbpsi_callback)(dvbpsi_handle p_decoder,
dvbpsi_psi_section_t* p_section); dvbpsi_psi_section_t* p_section);
...@@ -69,8 +72,8 @@ typedef void (* dvbpsi_callback)(dvbpsi_handle p_decoder, ...@@ -69,8 +72,8 @@ typedef void (* dvbpsi_callback)(dvbpsi_handle p_decoder,
/***************************************************************************** /*****************************************************************************
* dvbpsi_decoder_t * dvbpsi_decoder_t
***************************************************************************** *****************************************************************************/
* PSI decoder. /*!PSI decoder.
*****************************************************************************/ *****************************************************************************/
typedef struct dvbpsi_decoder_s typedef struct dvbpsi_decoder_s
{ {
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* psi.h: common PSI structures * psi.h: common PSI structures
*---------------------------------------------------------------------------- *----------------------------------------------------------------------------
* (c)2001-2002 VideoLAN * (c)2001-2002 VideoLAN
* $Id: psi.h,v 1.3 2002/03/15 12:16:01 bozo Exp $ * $Id: psi.h,v 1.4 2002/03/25 21:00:50 bozo Exp $
* *
* Authors: Arnaud de Bossoreille de Ribou <bozo@via.ecp.fr> * Authors: Arnaud de Bossoreille de Ribou <bozo@via.ecp.fr>
* *
...@@ -34,70 +34,79 @@ extern "C" { ...@@ -34,70 +34,79 @@ extern "C" {
/***************************************************************************** /*****************************************************************************
* dvbpsi_psi_section_t * dvbpsi_psi_section_t
***************************************************************************** *****************************************************************************/
* This structure is used to store a PSI section. The common information are /*!This structure is used to store a PSI section. The common information are
* decoded (ISO/IEC 13818-1 section 2.4.4.10). * decoded (ISO/IEC 13818-1 section 2.4.4.10).
*****************************************************************************/ *****************************************************************************/
struct dvbpsi_psi_section_s struct dvbpsi_psi_section_s
{ {
/* non-specific section data */ /* non-specific section data */
uint8_t i_table_id; /* table_id */ uint8_t i_table_id; /*!< table_id */
int b_syntax_indicator; /* section_syntax_indicator */ int b_syntax_indicator; /*!< section_syntax_indicator */
int b_private_indicator; /* private_indicator */ int b_private_indicator; /*!< private_indicator */
uint16_t i_length; /* section_length */ uint16_t i_length; /*!< section_length */
/* used if b_syntax_indicator is true */ /* used if b_syntax_indicator is true */
uint16_t i_extension; /* table_id_extension */ uint16_t i_extension; /*!< table_id_extension */
/* transport_stream_id for a /*!< transport_stream_id for a
PAT section */ PAT section */
uint8_t i_version; /* version_number */ uint8_t i_version; /*!< version_number */
int b_current_next; /* current_next_indicator */ int b_current_next; /*!< current_next_indicator */
uint8_t i_number; /* section_number */ uint8_t i_number; /*!< section_number */
uint8_t i_last_number; /* last_section_number */ uint8_t i_last_number; /*!< last_section_number */
/* non-specific section data */ /* non-specific section data */
/* the content is table-specific */ /* the content is table-specific */
uint8_t * p_data; /* complete section */ uint8_t * p_data; /*!< complete section */
uint8_t * p_payload_start; /* payload start */ uint8_t * p_payload_start; /*!< payload start */
uint8_t * p_payload_end; /* payload end */ uint8_t * p_payload_end; /*!< payload end */
/* used if b_syntax_indicator is true */ /* used if b_syntax_indicator is true */
uint32_t i_crc; /* CRC_32 */ uint32_t i_crc; /*!< CRC_32 */
/* list handling */ /* list handling */
struct dvbpsi_psi_section_s * p_next; struct dvbpsi_psi_section_s * p_next; /*!< next element of
the list */
}; };
/***************************************************************************** /*****************************************************************************
* dvbpsi_NewPSISection * dvbpsi_NewPSISection
***************************************************************************** *****************************************************************************/
* Creation of a new dvbpsi_psi_section_t structure. /*!Creation of a new dvbpsi_psi_section_t structure.
* \param i_max_size max size in bytes of the section
* \return a pointer to the new PSI section structure.
*****************************************************************************/ *****************************************************************************/
dvbpsi_psi_section_t * dvbpsi_NewPSISection(int i_max_size); dvbpsi_psi_section_t * dvbpsi_NewPSISection(int i_max_size);
/***************************************************************************** /*****************************************************************************
* dvbpsi_DeletePSISections * dvbpsi_DeletePSISections
***************************************************************************** *****************************************************************************/
* Destruction of a dvbpsi_psi_section_t structure. /*!Destruction of a dvbpsi_psi_section_t structure.
* \param p_section pointer to the first PSI section structure
* \return nothing.
*****************************************************************************/ *****************************************************************************/
void dvbpsi_DeletePSISections(dvbpsi_psi_section_t * p_section); void dvbpsi_DeletePSISections(dvbpsi_psi_section_t * p_section);
/***************************************************************************** /*****************************************************************************
* dvbpsi_ValidPSISection * dvbpsi_ValidPSISection
***************************************************************************** *****************************************************************************/
* Check the CRC_32 if the section has b_syntax_indicator set. /*!Check the CRC_32 if the section has b_syntax_indicator set.
* \param p_section pointer to the PSI section structure
* \return boolean value (0 if the section is not valid).
*****************************************************************************/ *****************************************************************************/
int dvbpsi_ValidPSISection(dvbpsi_psi_section_t* p_section); int dvbpsi_ValidPSISection(dvbpsi_psi_section_t* p_section);
/***************************************************************************** /*****************************************************************************
* dvbpsi_BuildPSISection * dvbpsi_BuildPSISection
***************************************************************************** *****************************************************************************/
* Build the section based on the information in the structure. /*!Build the section based on the information in the structure.
* \param p_section pointer to the PSI section structure
* \return nothing.
*****************************************************************************/ *****************************************************************************/
void dvbpsi_BuildPSISection(dvbpsi_psi_section_t* p_section); void dvbpsi_BuildPSISection(dvbpsi_psi_section_t* p_section);
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* pat.h: PAT structures * pat.h: PAT structures
*---------------------------------------------------------------------------- *----------------------------------------------------------------------------
* (c)2001-2002 VideoLAN * (c)2001-2002 VideoLAN
* $Id: pat.h,v 1.2 2002/03/15 12:16:01 bozo Exp $ * $Id: pat.h,v 1.3 2002/03/25 21:00:50 bozo Exp $
* *
* Authors: Arnaud de Bossoreille de Ribou <bozo@via.ecp.fr> * Authors: Arnaud de Bossoreille de Ribou <bozo@via.ecp.fr>
* *
...@@ -34,49 +34,53 @@ extern "C" { ...@@ -34,49 +34,53 @@ extern "C" {
/***************************************************************************** /*****************************************************************************
* dvbpsi_pat_program_t * dvbpsi_pat_program_t
***************************************************************************** *****************************************************************************/
* This structure is used to store a decoded PAT program. /*!This structure is used to store a decoded PAT program.
* (ISO/IEC 13818-1 section 2.4.4.3). * (ISO/IEC 13818-1 section 2.4.4.3).
*****************************************************************************/ *****************************************************************************/
typedef struct dvbpsi_pat_program_s typedef struct dvbpsi_pat_program_s
{ {
uint16_t i_number; /* program_number */ uint16_t i_number; /*!< program_number */
uint16_t i_pid; /* PID of NIT/PMT */ uint16_t i_pid; /*!< PID of NIT/PMT */
struct dvbpsi_pat_program_s * p_next; struct dvbpsi_pat_program_s * p_next; /*!< next element of
the list */
} dvbpsi_pat_program_t; } dvbpsi_pat_program_t;
/***************************************************************************** /*****************************************************************************
* dvbpsi_pat_t * dvbpsi_pat_t
***************************************************************************** *****************************************************************************/
* This structure is used to store a decoded PAT. /*!This structure is used to store a decoded PAT.
* (ISO/IEC 13818-1 section 2.4.4.3). * (ISO/IEC 13818-1 section 2.4.4.3).
*****************************************************************************/ *****************************************************************************/
typedef struct dvbpsi_pat_s typedef struct dvbpsi_pat_s
{ {
uint16_t i_ts_id; /* transport_stream_id */ uint16_t i_ts_id; /*!< transport_stream_id */
uint8_t i_version; /* version_number */ uint8_t i_version; /*!< version_number */
int b_current_next; /* current_next_indicator */ int b_current_next; /*!< current_next_indicator */
dvbpsi_pat_program_t * p_first_program; /* program list */ dvbpsi_pat_program_t * p_first_program; /*!< program list */
} dvbpsi_pat_t; } dvbpsi_pat_t;
/***************************************************************************** /*****************************************************************************
* dvbpsi_pat_callback * dvbpsi_pat_callback
***************************************************************************** *****************************************************************************/
* Callback type definition. /*!Callback type definition.
*****************************************************************************/ *****************************************************************************/
typedef void (* dvbpsi_pat_callback)(void* p_cb_data, dvbpsi_pat_t* p_new_pat); typedef void (* dvbpsi_pat_callback)(void* p_cb_data, dvbpsi_pat_t* p_new_pat);
/***************************************************************************** /*****************************************************************************
* dvbpsi_AttachPAT * dvbpsi_AttachPAT
***************************************************************************** *****************************************************************************/
* Initialize a PAT decoder and return a handle on it. /*!Initialize a PAT decoder and return a handle on it.
* \param pf_callback function to call back on new PAT
* \param p_cb_data private data given in argument to the callback
* \return a pointer to the decoder for future calls.
*****************************************************************************/ *****************************************************************************/
dvbpsi_handle dvbpsi_AttachPAT(dvbpsi_pat_callback pf_callback, dvbpsi_handle dvbpsi_AttachPAT(dvbpsi_pat_callback pf_callback,
void* p_cb_data); void* p_cb_data);
...@@ -84,20 +88,34 @@ dvbpsi_handle dvbpsi_AttachPAT(dvbpsi_pat_callback pf_callback, ...@@ -84,20 +88,34 @@ dvbpsi_handle dvbpsi_AttachPAT(dvbpsi_pat_callback pf_callback,
/***************************************************************************** /*****************************************************************************
* dvbpsi_DetachPAT * dvbpsi_DetachPAT
***************************************************************************** *****************************************************************************/
* Close a PAT decoder. The handle isn't valid any more. /*!Close a PAT decoder. The handle isn't valid any more.
* \param h_dvbpsi handle to the decoder
* \return nothing.
*****************************************************************************/ *****************************************************************************/
void dvbpsi_DetachPAT(dvbpsi_handle h_dvbpsi); void dvbpsi_DetachPAT(dvbpsi_handle h_dvbpsi);
/***************************************************************************** /*****************************************************************************
* dvbpsi_InitPAT/dvbpsi_NewPAT * dvbpsi_InitPAT/dvbpsi_NewPAT
***************************************************************************** *****************************************************************************/
* Initialize a pre-allocated/new dvbpsi_pat_t structure. /*!Initialize a user-allocated dvbpsi_pat_t structure.
* \param p_pat PAT structure
* \param i_ts_id transport stream ID
* \param i_version PAT version
* \param b_current_next current next indicator
* \return nothing.
*****************************************************************************/ *****************************************************************************/
void dvbpsi_InitPAT(dvbpsi_pat_t* p_pat, uint16_t i_ts_id, uint8_t i_version, void dvbpsi_InitPAT(dvbpsi_pat_t* p_pat, uint16_t i_ts_id, uint8_t i_version,
int b_current_next); int b_current_next);
/*!Allocate and initialize a new dvbpsi_pat_t structure.
* \param p_pat PAT structure
* \param i_ts_id transport stream ID
* \param i_version PAT version
* \param b_current_next current next indicator
* \return nothing.
*****************************************************************************/
#define dvbpsi_NewPAT(p_pat, i_ts_id, i_version, b_current_next) \ #define dvbpsi_NewPAT(p_pat, i_ts_id, i_version, b_current_next) \
p_pat = (dvbpsi_pat_t*)malloc(sizeof(dvbpsi_pat_t)); \ p_pat = (dvbpsi_pat_t*)malloc(sizeof(dvbpsi_pat_t)); \
if(p_pat != NULL) \ if(p_pat != NULL) \
...@@ -106,11 +124,17 @@ void dvbpsi_InitPAT(dvbpsi_pat_t* p_pat, uint16_t i_ts_id, uint8_t i_version, ...@@ -106,11 +124,17 @@ void dvbpsi_InitPAT(dvbpsi_pat_t* p_pat, uint16_t i_ts_id, uint8_t i_version,
/***************************************************************************** /*****************************************************************************
* dvbpsi_EmptyPAT/dvbpsi_DeletePAT * dvbpsi_EmptyPAT/dvbpsi_DeletePAT
***************************************************************************** *****************************************************************************/
* Clean/free a dvbpsi_pat_t structure. /*!Clean a dvbpsi_pat_t structure.
* \param p_pat PAT structure
* \return nothing.
*****************************************************************************/ *****************************************************************************/
void dvbpsi_EmptyPAT(dvbpsi_pat_t* p_pat); void dvbpsi_EmptyPAT(dvbpsi_pat_t* p_pat);
/*!Clean and free a dvbpsi_pat_t structure.
* \param p_pat PAT structure
* \return nothing.
*****************************************************************************/
#define dvbpsi_DeletePAT(p_pat) \ #define dvbpsi_DeletePAT(p_pat) \
dvbpsi_EmptyPAT(p_pat); \ dvbpsi_EmptyPAT(p_pat); \
free(p_pat); free(p_pat);
...@@ -118,18 +142,24 @@ void dvbpsi_EmptyPAT(dvbpsi_pat_t* p_pat); ...@@ -118,18 +142,24 @@ void dvbpsi_EmptyPAT(dvbpsi_pat_t* p_pat);
/***************************************************************************** /*****************************************************************************
* dvbpsi_PATAddProgram * dvbpsi_PATAddProgram
***************************************************************************** *****************************************************************************/
* Add a program at the end of the PAT. /*!Add a program at the end of the PAT.
* \param p_pat PAT structure
* \param i_number program number
* \param i_pid PID of the NIT/PMT
* \return a pointer to the added program.
*****************************************************************************/ *****************************************************************************/
dvbpsi_pat_program_t* dvbpsi_PATAddProgram(dvbpsi_pat_t* p_pat, dvbpsi_pat_program_t* dvbpsi_PATAddProgram(dvbpsi_pat_t* p_pat,
uint16_t i_number, uint16_t i_pid); uint16_t i_number, uint16_t i_pid);
/***************************************************************************** /*****************************************************************************
* dvbpsi_GenPATSections * dvbpsi_GenPATSections
***************************************************************************** *****************************************************************************/
* Generate PAT sections based on the dvbpsi_pat_t structure. The third /*!Generate PAT sections based on the dvbpsi_pat_t structure.
* argument is used to limit the number of program in each section (max: 253). * \param p_pat PAT structure
* \param i_max_pps limitation of the number of program in each section
* (max: 253).
* \return a pointer to the list of generated PSI sections.
*****************************************************************************/ *****************************************************************************/
dvbpsi_psi_section_t* dvbpsi_GenPATSections(dvbpsi_pat_t* p_pat, dvbpsi_psi_section_t* dvbpsi_GenPATSections(dvbpsi_pat_t* p_pat,
int i_max_pps); int i_max_pps);
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment