Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
libdvbpsi
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
libdvbpsi
Commits
f2a7607d
Commit
f2a7607d
authored
Dec 10, 2015
by
Jean-Paul Saman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ATSC ETT: rename API's
parent
c9cdefea
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
132 additions
and
34 deletions
+132
-34
examples/dvbinfo/libdvbpsi.c
examples/dvbinfo/libdvbpsi.c
+3
-3
src/tables/atsc_ett.c
src/tables/atsc_ett.c
+15
-15
src/tables/atsc_ett.h
src/tables/atsc_ett.h
+114
-16
No files found.
examples/dvbinfo/libdvbpsi.c
View file @
f2a7607d
...
...
@@ -702,7 +702,7 @@ static void handle_subtable(dvbpsi_t *p_dvbpsi, uint8_t i_table_id, uint16_t i_e
fprintf
(
stderr
,
"dvbinfo: Failed to attach ATSC EIT subdecoder
\n
"
);
break
;
case
0xCC
:
/* ATSC ETT */
if
(
!
dvbpsi_atsc_
AttachETT
(
p_dvbpsi
,
i_table_id
,
i_extension
,
handle_atsc_ETT
,
p_data
))
if
(
!
dvbpsi_atsc_
ett_attach
(
p_dvbpsi
,
i_table_id
,
i_extension
,
handle_atsc_ETT
,
p_data
))
fprintf
(
stderr
,
"dvbinfo: Failed to attach ATSC ETT subdecoder
\n
"
);
break
;
case
0xCD
:
/* ATSC STT */
...
...
@@ -2113,7 +2113,7 @@ static void handle_atsc_ETT(void* p_data, dvbpsi_atsc_ett_t* p_ett)
printf
(
"
\t
Raw Data : '%s'
\n
"
,
p_ett
->
p_etm_data
);
DumpDescriptors
(
"
\t
| ]"
,
p_ett
->
p_first_descriptor
);
dvbpsi_atsc_
DeleteETT
(
p_ett
);
dvbpsi_atsc_
ett_delete
(
p_ett
);
}
static
void
handle_atsc_STT
(
void
*
p_data
,
dvbpsi_atsc_stt_t
*
p_stt
)
...
...
@@ -2376,7 +2376,7 @@ static void DeleteTableDecoder(dvbpsi_t *p_dvbpsi, uint8_t i_table, uint16_t i_e
case
0xC8
:
/* ATSC VCT */
case
0xC9
:
dvbpsi_atsc_DetachVCT
(
p_dvbpsi
,
i_table
,
i_extension
);
break
;
/* ATSC VCT */
case
0xCB
:
dvbpsi_atsc_eit_detach
(
p_dvbpsi
,
i_table
,
i_extension
);
break
;
/* ATSC EIT */
case
0xCC
:
dvbpsi_atsc_
DetachETT
(
p_dvbpsi
,
i_table
,
i_extension
);
break
;
/* ATSC ETT */
case
0xCC
:
dvbpsi_atsc_
ett_detach
(
p_dvbpsi
,
i_table
,
i_extension
);
break
;
/* ATSC ETT */
case
0xCD
:
dvbpsi_atsc_DetachSTT
(
p_dvbpsi
,
i_table
,
i_extension
);
break
;
/* ATSC STT */
#ifdef TS_USE_SCTE_SIS
case
0xFC
:
dvbpsi_sis_detach
(
p_dvbpsi
,
i_table
,
i_extension
);
break
;
/* SIS */
...
...
src/tables/atsc_ett.c
View file @
f2a7607d
...
...
@@ -78,11 +78,11 @@ static void dvbpsi_atsc_DecodeETTSections(dvbpsi_atsc_ett_t* p_ett,
dvbpsi_psi_section_t
*
p_section
);
/*****************************************************************************
* dvbpsi_atsc_
AttachETT
* dvbpsi_atsc_
ett_attach
*****************************************************************************
* Initialize a ETT decoder and return a handle on it.
*****************************************************************************/
bool
dvbpsi_atsc_
AttachETT
(
dvbpsi_t
*
p_dvbpsi
,
uint8_t
i_table_id
,
uint16_t
i_extension
,
bool
dvbpsi_atsc_
ett_attach
(
dvbpsi_t
*
p_dvbpsi
,
uint8_t
i_table_id
,
uint16_t
i_extension
,
dvbpsi_atsc_ett_callback
pf_callback
,
void
*
p_cb_data
)
{
assert
(
p_dvbpsi
);
...
...
@@ -121,11 +121,11 @@ bool dvbpsi_atsc_AttachETT(dvbpsi_t * p_dvbpsi, uint8_t i_table_id, uint16_t i_e
}
/*****************************************************************************
* dvbpsi_atsc_
DetachETT
* dvbpsi_atsc_
ett_detach
*****************************************************************************
* Close a ETT decoder. The handle isn't valid any more.
*****************************************************************************/
void
dvbpsi_atsc_
DetachETT
(
dvbpsi_t
*
p_dvbpsi
,
uint8_t
i_table_id
,
uint16_t
i_extension
)
void
dvbpsi_atsc_
ett_detach
(
dvbpsi_t
*
p_dvbpsi
,
uint8_t
i_table_id
,
uint16_t
i_extension
)
{
assert
(
p_dvbpsi
);
...
...
@@ -151,18 +151,18 @@ void dvbpsi_atsc_DetachETT(dvbpsi_t *p_dvbpsi, uint8_t i_table_id, uint16_t i_ex
dvbpsi_atsc_ett_decoder_t
*
p_ett_decoder
=
(
dvbpsi_atsc_ett_decoder_t
*
)
p_dec
;
if
(
p_ett_decoder
->
p_building_ett
)
dvbpsi_atsc_
DeleteETT
(
p_ett_decoder
->
p_building_ett
);
dvbpsi_atsc_
ett_delete
(
p_ett_decoder
->
p_building_ett
);
p_ett_decoder
->
p_building_ett
=
NULL
;
dvbpsi_decoder_delete
(
p_dec
);
p_dec
=
NULL
;
}
/*****************************************************************************
* dvbpsi_atsc_
InitETT
* dvbpsi_atsc_
ett_init
*****************************************************************************
* Initialize a pre-allocated dvbpsi_ett_t structure.
*****************************************************************************/
void
dvbpsi_atsc_
InitETT
(
dvbpsi_atsc_ett_t
*
p_ett
,
uint8_t
i_table_id
,
void
dvbpsi_atsc_
ett_init
(
dvbpsi_atsc_ett_t
*
p_ett
,
uint8_t
i_table_id
,
uint16_t
i_extension
,
uint8_t
i_version
,
uint8_t
i_protocol
,
uint32_t
i_etm_id
,
bool
b_current_next
)
{
...
...
@@ -180,24 +180,24 @@ void dvbpsi_atsc_InitETT(dvbpsi_atsc_ett_t *p_ett, uint8_t i_table_id,
p_ett
->
p_first_descriptor
=
NULL
;
}
dvbpsi_atsc_ett_t
*
dvbpsi_atsc_
NewETT
(
uint8_t
i_table_id
,
uint16_t
i_extension
,
dvbpsi_atsc_ett_t
*
dvbpsi_atsc_
ett_new
(
uint8_t
i_table_id
,
uint16_t
i_extension
,
uint8_t
i_version
,
uint8_t
i_protocol
,
uint32_t
i_etm_id
,
bool
b_current_next
)
{
dvbpsi_atsc_ett_t
*
p_ett
;
p_ett
=
(
dvbpsi_atsc_ett_t
*
)
malloc
(
sizeof
(
dvbpsi_atsc_ett_t
));
if
(
p_ett
!=
NULL
)
dvbpsi_atsc_
InitETT
(
p_ett
,
i_table_id
,
i_extension
,
i_version
,
dvbpsi_atsc_
ett_init
(
p_ett
,
i_table_id
,
i_extension
,
i_version
,
i_protocol
,
i_etm_id
,
b_current_next
);
return
p_ett
;
}
/*****************************************************************************
* dvbpsi_atsc_
EmptyETT
* dvbpsi_atsc_
ett_empty
*****************************************************************************
* Clean a dvbpsi_atsc_ett_t structure.
*****************************************************************************/
void
dvbpsi_atsc_
EmptyETT
(
dvbpsi_atsc_ett_t
*
p_ett
)
void
dvbpsi_atsc_
ett_empty
(
dvbpsi_atsc_ett_t
*
p_ett
)
{
assert
(
p_ett
);
...
...
@@ -209,10 +209,10 @@ void dvbpsi_atsc_EmptyETT(dvbpsi_atsc_ett_t *p_ett)
p_ett
->
p_first_descriptor
=
NULL
;
}
void
dvbpsi_atsc_
DeleteETT
(
dvbpsi_atsc_ett_t
*
p_ett
)
void
dvbpsi_atsc_
ett_delete
(
dvbpsi_atsc_ett_t
*
p_ett
)
{
if
(
p_ett
)
dvbpsi_atsc_
EmptyETT
(
p_ett
);
dvbpsi_atsc_
ett_empty
(
p_ett
);
free
(
p_ett
);
p_ett
=
NULL
;
}
...
...
@@ -231,7 +231,7 @@ static void dvbpsi_ReInitETT(dvbpsi_atsc_ett_decoder_t *p_decoder, const bool b_
{
/* Free structures */
if
(
p_decoder
->
p_building_ett
)
dvbpsi_atsc_
DeleteETT
(
p_decoder
->
p_building_ett
);
dvbpsi_atsc_
ett_delete
(
p_decoder
->
p_building_ett
);
}
p_decoder
->
p_building_ett
=
NULL
;
}
...
...
@@ -287,7 +287,7 @@ static bool dvbpsi_AddSectionETT(dvbpsi_t *p_dvbpsi, dvbpsi_atsc_ett_decoder_t *
((
uint32_t
)
p_section
->
p_payload_start
[
3
]
<<
8
)
|
((
uint32_t
)
p_section
->
p_payload_start
[
4
]
<<
0
);
p_decoder
->
p_building_ett
=
dvbpsi_atsc_
NewETT
(
p_section
->
i_table_id
,
p_decoder
->
p_building_ett
=
dvbpsi_atsc_
ett_new
(
p_section
->
i_table_id
,
p_section
->
i_extension
,
p_section
->
i_version
,
p_section
->
p_payload_start
[
0
],
...
...
src/tables/atsc_ett.h
View file @
f2a7607d
...
...
@@ -86,10 +86,10 @@ typedef struct dvbpsi_atsc_ett_s
typedef
void
(
*
dvbpsi_atsc_ett_callback
)(
void
*
p_cb_data
,
dvbpsi_atsc_ett_t
*
p_new_ett
);
/*****************************************************************************
* dvbpsi_atsc_
AttachETT
* dvbpsi_atsc_
ett_attach
*****************************************************************************/
/*!
* \fn bool dvbpsi_atsc_
AttachETT
(dvbpsi_t *p_dvbpsi, uint8_t i_table_id,
* \fn bool dvbpsi_atsc_
ett_attach
(dvbpsi_t *p_dvbpsi, uint8_t i_table_id,
uint16_t i_extension, dvbpsi_atsc_ett_callback pf_callback, void* p_cb_data)
*
* \brief Creation and initialization of a ETT decoder.
...
...
@@ -100,14 +100,31 @@ typedef void (* dvbpsi_atsc_ett_callback)(void* p_cb_data, dvbpsi_atsc_ett_t* p_
* \param p_cb_data private data given in argument to the callback.
* \return true if everything went ok, else it returns false.
*/
bool
dvbpsi_atsc_
AttachETT
(
dvbpsi_t
*
p_dvbpsi
,
uint8_t
i_table_id
,
uint16_t
i_extension
,
bool
dvbpsi_atsc_
ett_attach
(
dvbpsi_t
*
p_dvbpsi
,
uint8_t
i_table_id
,
uint16_t
i_extension
,
dvbpsi_atsc_ett_callback
pf_callback
,
void
*
p_cb_data
);
/*!
* \brief dvbpsi_atsc_AttachETT is deprecated use @see dvbpsi_atsc_ett_attach() instead.
* \param p_dvbpsi dvbpsi handle to Subtable demultiplexor to which the decoder is attached
* \param i_table_id Table ID, 0xCC.
* \param i_extension Table ID extension, normally 0x0000.
* \param pf_callback function to call back on new ETT.
* \param p_cb_data private data given in argument to the callback.
* \return true if everything went ok, else it returns false.
*/
__attribute__
((
deprecated
,
unused
))
inline
bool
dvbpsi_atsc_AttachETT
(
dvbpsi_t
*
p_dvbpsi
,
uint8_t
i_table_id
,
uint16_t
i_extension
,
dvbpsi_atsc_ett_callback
pf_callback
,
void
*
p_cb_data
)
{
return
dvbpsi_atsc_ett_attach
(
p_dvbpsi
,
i_table_id
,
i_extension
,
pf_callback
,
p_cb_data
);
}
/*****************************************************************************
* dvbpsi_atsc_
DetachETT
* dvbpsi_atsc_
ett_detach
*****************************************************************************/
/*!
* \fn void dvbpsi_atsc_
DetachETT
(dvbpsi_t *p_dvbpsi, uint8_t i_table_id, uint16_t i_extension)
* \fn void dvbpsi_atsc_
ett_detach
(dvbpsi_t *p_dvbpsi, uint8_t i_table_id, uint16_t i_extension)
*
* \brief Destroy a ETT decoder.
* \param p_dvbpsi dvbpsi handle to Subtable demultiplexor to which the decoder is attached
...
...
@@ -115,14 +132,28 @@ bool dvbpsi_atsc_AttachETT(dvbpsi_t *p_dvbpsi, uint8_t i_table_id, uint16_t i_ex
* \param i_extension Table ID extension, normally 0x0000.
* \return nothing.
*/
void
dvbpsi_atsc_
DetachETT
(
dvbpsi_t
*
p_dvbpsi
,
uint8_t
i_table_id
,
void
dvbpsi_atsc_
ett_detach
(
dvbpsi_t
*
p_dvbpsi
,
uint8_t
i_table_id
,
uint16_t
i_extension
);
/*!
* \brief dvbpsi_atsc_DetachETT is deprecated use @see dvbpsi_atsc_ett_detach() instead.
* \param p_dvbpsi dvbpsi handle to Subtable demultiplexor to which the decoder is attached
* \param i_table_id Table ID, 0xCD.
* \param i_extension Table ID extension, normally 0x0000.
* \return nothing.
*/
__attribute__
((
deprecated
,
unused
))
inline
void
dvbpsi_atsc_DetachETT
(
dvbpsi_t
*
p_dvbpsi
,
uint8_t
i_table_id
,
uint16_t
i_extension
)
{
dvbpsi_atsc_ett_detach
(
p_dvbpsi
,
i_table_id
,
i_extension
);
}
/*****************************************************************************
* dvbpsi_atsc_
InitETT/dvbpsi_atsc_NewETT
* dvbpsi_atsc_
ett_init
*****************************************************************************/
/*!
* \fn void dvbpsi_atsc_
InitETT
(dvbpsi_atsc_ett_t *p_ett, uint8_t i_table_id, uint16_t i_extension,
* \fn void dvbpsi_atsc_
ett_init
(dvbpsi_atsc_ett_t *p_ett, uint8_t i_table_id, uint16_t i_extension,
uint8_t i_version, uint8_t i_protocol, uint32_t i_etm_id, bool b_current_next);
* \brief Initialize a user-allocated dvbpsi_atsc_ett_t structure.
* \param p_ett pointer to the ETT structure
...
...
@@ -134,12 +165,35 @@ void dvbpsi_atsc_DetachETT(dvbpsi_t *p_dvbpsi, uint8_t i_table_id,
* \param b_current_next current next indicator
* \return nothing.
*/
void
dvbpsi_atsc_
InitETT
(
dvbpsi_atsc_ett_t
*
p_ett
,
uint8_t
i_table_id
,
uint16_t
i_extension
,
void
dvbpsi_atsc_
ett_init
(
dvbpsi_atsc_ett_t
*
p_ett
,
uint8_t
i_table_id
,
uint16_t
i_extension
,
uint8_t
i_version
,
uint8_t
i_protocol
,
uint32_t
i_etm_id
,
bool
b_current_next
);
/*!
* \fn dvbpsi_atsc_ett_t *dvbpsi_atsc_NewETT(uint8_t i_table_id, uint16_t i_extension,
* \brief dvbpsi_atsc_InitETT is deprecated use @see dvbpsi_atsc_ett_init() instead.
* \param p_ett pointer to the ETT structure
* \param i_table_id Table ID, 0xCC.
* \param i_extension Table ID extension, normally 0x0000.
* \param i_version version
* \param i_protocol PSIP Protocol version.
* \param i_etm_id ETM Identifier.
* \param b_current_next current next indicator
* \return nothing.
*/
__attribute__
((
deprecated
,
unused
))
inline
void
dvbpsi_atsc_InitETT
(
dvbpsi_atsc_ett_t
*
p_ett
,
uint8_t
i_table_id
,
uint16_t
i_extension
,
uint8_t
i_version
,
uint8_t
i_protocol
,
uint32_t
i_etm_id
,
bool
b_current_next
)
{
dvbpsi_atsc_ett_init
(
p_ett
,
i_table_id
,
i_extension
,
i_version
,
i_protocol
,
i_etm_id
,
b_current_next
);
}
/*****************************************************************************
* dvbpsi_atsc_ett_new
*****************************************************************************/
/*!
* \fn dvbpsi_atsc_ett_t *dvbpsi_atsc_ett_new(uint8_t i_table_id, uint16_t i_extension,
uint8_t i_version, uint8_t i_protocol,
uint32_t i_etm_id, bool b_current_next)
* \brief Allocate and initialize a new dvbpsi_atsc_ett_t structure. Use ObjectRefDec to delete it.
...
...
@@ -151,28 +205,72 @@ void dvbpsi_atsc_InitETT(dvbpsi_atsc_ett_t *p_ett, uint8_t i_table_id, uint16_t
* \param b_current_next current next indicator
* \returns p_ett pointer to the ETT structure, NULL otherwise
*/
dvbpsi_atsc_ett_t
*
dvbpsi_atsc_
NewETT
(
uint8_t
i_table_id
,
uint16_t
i_extension
,
dvbpsi_atsc_ett_t
*
dvbpsi_atsc_
ett_new
(
uint8_t
i_table_id
,
uint16_t
i_extension
,
uint8_t
i_version
,
uint8_t
i_protocol
,
uint32_t
i_etm_id
,
bool
b_current_next
);
/*!
* \brief dvbpsi_atsc_NewETT is deprecated use @see dvbpsi_atsc_ett_new() instead.
* \param i_table_id Table ID, 0xCC.
* \param i_extension Table ID extension, normally 0x0000.
* \param i_version version
* \param i_protocol PSIP Protocol version.
* \param i_etm_id ETM Identifier.
* \param b_current_next current next indicator
* \returns p_ett pointer to the ETT structure, NULL otherwise
*/
__attribute__
((
deprecated
,
unused
))
inline
dvbpsi_atsc_ett_t
*
dvbpsi_atsc_NewETT
(
uint8_t
i_table_id
,
uint16_t
i_extension
,
uint8_t
i_version
,
uint8_t
i_protocol
,
uint32_t
i_etm_id
,
bool
b_current_next
)
{
return
dvbpsi_atsc_ett_new
(
i_table_id
,
i_extension
,
i_version
,
i_protocol
,
i_etm_id
,
b_current_next
);
}
/*****************************************************************************
* dvbpsi_atsc_
EmptyETT/dvbpsi_atsc_DeleteETT
* dvbpsi_atsc_
ett_empty
*****************************************************************************/
/*!
* \fn void dvbpsi_atsc_
EmptyETT
(dvbpsi_atsc_ett_t* p_ett)
* \fn void dvbpsi_atsc_
ett_empty
(dvbpsi_atsc_ett_t* p_ett)
* \brief Clean a dvbpsi_atsc_ett_t structure.
* \param p_ett pointer to the ETT structure
* \return nothing.
*/
void
dvbpsi_atsc_
EmptyETT
(
dvbpsi_atsc_ett_t
*
p_ett
);
void
dvbpsi_atsc_
ett_empty
(
dvbpsi_atsc_ett_t
*
p_ett
);
/*!
* \fn void dvbpsi_atsc_DeleteETT(dvbpsi_atsc_ett_t *p_ett);
* \brief dvbpsi_atsc_EmptyETT is deprecated use @see dvbpsi_atsc_ett_empty() instead.
* \param p_ett pointer to the ETT structure
* \return nothing.
*/
__attribute__
((
deprecated
,
unused
))
inline
void
dvbpsi_atsc_EmptyETT
(
dvbpsi_atsc_ett_t
*
p_ett
)
{
dvbpsi_atsc_ett_empty
(
p_ett
);
}
/*****************************************************************************
* dvbpsi_atsc_ett_delete
*****************************************************************************/
/*!
* \fn void dvbpsi_atsc_ett_delete(dvbpsi_atsc_ett_t *p_ett);
* \brief Clean and free a dvbpsi_atsc_ett_t structure.
* \param p_ett pointer to the ETT structure
* \return nothing.
*/
void
dvbpsi_atsc_DeleteETT
(
dvbpsi_atsc_ett_t
*
p_ett
);
void
dvbpsi_atsc_ett_delete
(
dvbpsi_atsc_ett_t
*
p_ett
);
/*!
* \brief dvbpsi_atsc_DeleteETT is deprecated use @see dvbpsi_atsc_ett_delete() instead.
* \param p_ett pointer to the ETT structure
* \return nothing.
*/
__attribute__
((
deprecated
,
unused
))
inline
void
dvbpsi_atsc_DeleteETT
(
dvbpsi_atsc_ett_t
*
p_ett
)
{
dvbpsi_atsc_ett_delete
(
p_ett
);
}
#ifdef __cplusplus
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment