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
9d6928c6
Commit
9d6928c6
authored
Dec 10, 2015
by
Jean-Paul Saman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ATSC MGT: Rename API's
parent
f2a7607d
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
130 additions
and
34 deletions
+130
-34
examples/dvbinfo/libdvbpsi.c
examples/dvbinfo/libdvbpsi.c
+3
-3
src/tables/atsc_mgt.c
src/tables/atsc_mgt.c
+15
-15
src/tables/atsc_mgt.h
src/tables/atsc_mgt.h
+112
-16
No files found.
examples/dvbinfo/libdvbpsi.c
View file @
9d6928c6
...
...
@@ -689,7 +689,7 @@ static void handle_subtable(dvbpsi_t *p_dvbpsi, uint8_t i_table_id, uint16_t i_e
#endif
/* Handle ATSC PSI tables */
case
0xC7
:
/* ATSC MGT */
if
(
!
dvbpsi_atsc_
AttachMGT
(
p_dvbpsi
,
i_table_id
,
i_extension
,
handle_atsc_MGT
,
p_data
))
if
(
!
dvbpsi_atsc_
mgt_attach
(
p_dvbpsi
,
i_table_id
,
i_extension
,
handle_atsc_MGT
,
p_data
))
fprintf
(
stderr
,
"dvbinfo: Failed to attach ATSC MGT subdecoder
\n
"
);
break
;
case
0xC8
:
...
...
@@ -1979,7 +1979,7 @@ static void handle_atsc_MGT(void *p_data, dvbpsi_atsc_mgt_t *p_mgt)
}
DumpDescriptors
(
"
\t
| ]"
,
p_mgt
->
p_first_descriptor
);
dvbpsi_atsc_
DeleteMGT
(
p_mgt
);
dvbpsi_atsc_
mgt_delete
(
p_mgt
);
}
static
const
char
*
GetAtscVCTModulationModes
(
const
uint8_t
i_mode
)
...
...
@@ -2372,7 +2372,7 @@ static void DeleteTableDecoder(dvbpsi_t *p_dvbpsi, uint8_t i_table, uint16_t i_e
case 0x79: // resolution notification section (TS 102 323 [13])
#endif
/* Handle ATSC PSI tables */
case
0xC7
:
dvbpsi_atsc_
DetachMGT
(
p_dvbpsi
,
i_table
,
i_extension
);
break
;
/* ATSC MGT */
case
0xC7
:
dvbpsi_atsc_
mgt_detach
(
p_dvbpsi
,
i_table
,
i_extension
);
break
;
/* ATSC MGT */
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 */
...
...
src/tables/atsc_mgt.c
View file @
9d6928c6
...
...
@@ -79,11 +79,11 @@ static void dvbpsi_atsc_DecodeMGTSections(dvbpsi_atsc_mgt_t* p_mgt,
dvbpsi_psi_section_t
*
p_section
);
/*****************************************************************************
* dvbpsi_atsc_
AttachMGT
* dvbpsi_atsc_
mgt_attach
*****************************************************************************
* Initialize a MGT subtable decoder.
*****************************************************************************/
bool
dvbpsi_atsc_
AttachMGT
(
dvbpsi_t
*
p_dvbpsi
,
uint8_t
i_table_id
,
uint16_t
i_extension
,
bool
dvbpsi_atsc_
mgt_attach
(
dvbpsi_t
*
p_dvbpsi
,
uint8_t
i_table_id
,
uint16_t
i_extension
,
dvbpsi_atsc_mgt_callback
pf_callback
,
void
*
p_cb_data
)
{
assert
(
p_dvbpsi
);
...
...
@@ -121,11 +121,11 @@ bool dvbpsi_atsc_AttachMGT(dvbpsi_t *p_dvbpsi, uint8_t i_table_id, uint16_t i_ex
}
/*****************************************************************************
* dvbpsi_atsc_
DetachMGT
* dvbpsi_atsc_
mgt_detach
*****************************************************************************
* Close a MGT decoder.
*****************************************************************************/
void
dvbpsi_atsc_
DetachMGT
(
dvbpsi_t
*
p_dvbpsi
,
uint8_t
i_table_id
,
uint16_t
i_extension
)
void
dvbpsi_atsc_
mgt_detach
(
dvbpsi_t
*
p_dvbpsi
,
uint8_t
i_table_id
,
uint16_t
i_extension
)
{
assert
(
p_dvbpsi
);
...
...
@@ -151,18 +151,18 @@ void dvbpsi_atsc_DetachMGT(dvbpsi_t *p_dvbpsi, uint8_t i_table_id, uint16_t i_ex
dvbpsi_atsc_mgt_decoder_t
*
p_mgt_decoder
=
(
dvbpsi_atsc_mgt_decoder_t
*
)
p_dec
;
if
(
p_mgt_decoder
->
p_building_mgt
)
dvbpsi_atsc_
DeleteMGT
(
p_mgt_decoder
->
p_building_mgt
);
dvbpsi_atsc_
mgt_delete
(
p_mgt_decoder
->
p_building_mgt
);
p_mgt_decoder
->
p_building_mgt
=
NULL
;
dvbpsi_decoder_delete
(
p_dec
);
p_dec
=
NULL
;
}
/*****************************************************************************
* dvbpsi_atsc_
InitMGT
* dvbpsi_atsc_
mgt_init
*****************************************************************************
* Initialize a pre-allocated dvbpsi_atsc_mgt_t structure.
*****************************************************************************/
void
dvbpsi_atsc_
InitMGT
(
dvbpsi_atsc_mgt_t
*
p_mgt
,
uint8_t
i_table_id
,
uint16_t
i_extension
,
void
dvbpsi_atsc_
mgt_init
(
dvbpsi_atsc_mgt_t
*
p_mgt
,
uint8_t
i_table_id
,
uint16_t
i_extension
,
uint8_t
i_version
,
uint8_t
i_protocol
,
bool
b_current_next
)
{
assert
(
p_mgt
);
...
...
@@ -177,22 +177,22 @@ void dvbpsi_atsc_InitMGT(dvbpsi_atsc_mgt_t* p_mgt, uint8_t i_table_id, uint16_t
p_mgt
->
p_first_descriptor
=
NULL
;
}
dvbpsi_atsc_mgt_t
*
dvbpsi_atsc_
NewMGT
(
uint8_t
i_table_id
,
uint16_t
i_extension
,
dvbpsi_atsc_mgt_t
*
dvbpsi_atsc_
mgt_new
(
uint8_t
i_table_id
,
uint16_t
i_extension
,
uint8_t
i_version
,
uint8_t
i_protocol
,
bool
b_current_next
)
{
dvbpsi_atsc_mgt_t
*
p_mgt
;
p_mgt
=
(
dvbpsi_atsc_mgt_t
*
)
calloc
(
1
,
sizeof
(
dvbpsi_atsc_mgt_t
));
if
(
p_mgt
!=
NULL
)
dvbpsi_atsc_
InitMGT
(
p_mgt
,
i_table_id
,
i_extension
,
i_version
,
i_protocol
,
b_current_next
);
dvbpsi_atsc_
mgt_init
(
p_mgt
,
i_table_id
,
i_extension
,
i_version
,
i_protocol
,
b_current_next
);
return
p_mgt
;
}
/*****************************************************************************
* dvbpsi_atsc_
EmptyMGT
* dvbpsi_atsc_
mgt_empty
*****************************************************************************
* Clean a dvbpsi_atsc_mgt_t structure.
*****************************************************************************/
void
dvbpsi_atsc_
EmptyMGT
(
dvbpsi_atsc_mgt_t
*
p_mgt
)
void
dvbpsi_atsc_
mgt_empty
(
dvbpsi_atsc_mgt_t
*
p_mgt
)
{
dvbpsi_atsc_mgt_table_t
*
p_table
=
p_mgt
->
p_first_table
;
...
...
@@ -208,10 +208,10 @@ void dvbpsi_atsc_EmptyMGT(dvbpsi_atsc_mgt_t* p_mgt)
p_mgt
->
p_first_descriptor
=
NULL
;
}
void
dvbpsi_atsc_
DeleteMGT
(
dvbpsi_atsc_mgt_t
*
p_mgt
)
void
dvbpsi_atsc_
mgt_delete
(
dvbpsi_atsc_mgt_t
*
p_mgt
)
{
if
(
p_mgt
)
dvbpsi_atsc_
EmptyMGT
(
p_mgt
);
dvbpsi_atsc_
mgt_empty
(
p_mgt
);
free
(
p_mgt
);
p_mgt
=
NULL
;
}
...
...
@@ -323,7 +323,7 @@ static void dvbpsi_ReInitMGT(dvbpsi_atsc_mgt_decoder_t *p_decoder, const bool b_
{
/* Free structures */
if
(
p_decoder
->
p_building_mgt
)
dvbpsi_atsc_
DeleteMGT
(
p_decoder
->
p_building_mgt
);
dvbpsi_atsc_
mgt_delete
(
p_decoder
->
p_building_mgt
);
}
p_decoder
->
p_building_mgt
=
NULL
;
}
...
...
@@ -374,7 +374,7 @@ static bool dvbpsi_AddSectionMGT(dvbpsi_t *p_dvbpsi, dvbpsi_atsc_mgt_decoder_t *
/* Initialize the structures if it's the first section received */
if
(
!
p_decoder
->
p_building_mgt
)
{
p_decoder
->
p_building_mgt
=
dvbpsi_atsc_
NewMGT
(
p_section
->
i_table_id
,
p_decoder
->
p_building_mgt
=
dvbpsi_atsc_
mgt_new
(
p_section
->
i_table_id
,
p_section
->
i_extension
,
p_section
->
i_version
,
p_section
->
p_payload_start
[
0
],
...
...
src/tables/atsc_mgt.h
View file @
9d6928c6
...
...
@@ -99,10 +99,10 @@ typedef struct dvbpsi_atsc_mgt_s
typedef
void
(
*
dvbpsi_atsc_mgt_callback
)(
void
*
p_cb_data
,
dvbpsi_atsc_mgt_t
*
p_new_mgt
);
/*****************************************************************************
* dvbpsi_atsc_
AttachMGT
* dvbpsi_atsc_
mgt_attach
*****************************************************************************/
/*!
* \fn bool dvbpsi_atsc_
AttachMGT
(dvbpsi_t *p_dvbpsi, uint8_t i_table_id, uint16_t i_extension,
* \fn bool dvbpsi_atsc_
mgt_attach
(dvbpsi_t *p_dvbpsi, uint8_t i_table_id, uint16_t i_extension,
dvbpsi_atsc_mgt_callback pf_callback, void* p_cb_data)
*
* \brief Creation and initialization of a MGT decoder.
...
...
@@ -113,14 +113,31 @@ typedef void (* dvbpsi_atsc_mgt_callback)(void* p_cb_data, dvbpsi_atsc_mgt_t* p_
* \param p_cb_data private data given in argument to the callback.
* \return true if everything went ok, false otherwise
*/
bool
dvbpsi_atsc_
AttachMGT
(
dvbpsi_t
*
p_dvbpsi
,
uint8_t
i_table_id
,
uint16_t
i_extension
,
bool
dvbpsi_atsc_
mgt_attach
(
dvbpsi_t
*
p_dvbpsi
,
uint8_t
i_table_id
,
uint16_t
i_extension
,
dvbpsi_atsc_mgt_callback
pf_callback
,
void
*
p_cb_data
);
/*!
* \brief dvbpsi_atsc_AttachMGT is deprecated use @see dvbpsi_atsc_mgt_attach() instead.
* \param p_dvbpsi dvbpsi handle to Subtable demultiplexor to which the decoder is attached
* \param i_table_id Table ID, 0xC7.
* \param i_extension Table ID extension, here 0x0000.
* \param pf_callback function to call back on new MGT.
* \param p_cb_data private data given in argument to the callback.
* \return true if everything went ok, false otherwise
*/
__attribute__
((
deprecated
,
unused
))
inline
bool
dvbpsi_atsc_AttachMGT
(
dvbpsi_t
*
p_dvbpsi
,
uint8_t
i_table_id
,
uint16_t
i_extension
,
dvbpsi_atsc_mgt_callback
pf_callback
,
void
*
p_cb_data
)
{
dvbpsi_atsc_mgt_attach
(
p_dvbpsi
,
i_table_id
,
i_extension
,
pf_callback
,
p_cb_data
);
}
/*****************************************************************************
* dvbpsi_
DetachMGT
* dvbpsi_
atsc_mgt_detach
*****************************************************************************/
/*!
* \fn void dvbpsi_atsc_
DetachMGT
(dvbpsi_t *p_dvbpsi, uint8_t i_table_id, uint16_t i_extension)
* \fn void dvbpsi_atsc_
mgt_detach
(dvbpsi_t *p_dvbpsi, uint8_t i_table_id, uint16_t i_extension)
*
* \brief Destroy a MGT decoder.
* \param p_dvbpsi dvbpsi handle to Subtable demultiplexor to which the decoder is attached
...
...
@@ -128,13 +145,27 @@ bool dvbpsi_atsc_AttachMGT(dvbpsi_t *p_dvbpsi, uint8_t i_table_id, uint16_t i_ex
* \param i_extension Table ID extension, here 0x0000.
* \return nothing.
*/
void
dvbpsi_atsc_DetachMGT
(
dvbpsi_t
*
p_dvbpsi
,
uint8_t
i_table_id
,
uint16_t
i_extension
);
void
dvbpsi_atsc_mgt_detach
(
dvbpsi_t
*
p_dvbpsi
,
uint8_t
i_table_id
,
uint16_t
i_extension
);
/*!
* \brief dvbpsi_atsc_DetachMGT is deprecated use @see dvbpsi_atsc_mgt_detach() instead.
* \brief Destroy a MGT decoder.
* \param p_dvbpsi dvbpsi handle to Subtable demultiplexor to which the decoder is attached
* \param i_table_id Table ID, 0xC7.
* \param i_extension Table ID extension, here 0x0000.
* \return nothing.
*/
__attribute__
((
deprecated
,
unused
))
inline
void
dvbpsi_atsc_DetachMGT
(
dvbpsi_t
*
p_dvbpsi
,
uint8_t
i_table_id
,
uint16_t
i_extension
)
{
dvbpsi_atsc_mgt_detach
(
p_dvbpsi
,
i_table_id
,
i_extension
);
}
/*****************************************************************************
* dvbpsi_atsc_
InitMGT/dvbpsi_atsc_NewMGT
* dvbpsi_atsc_
mgt_init
*****************************************************************************/
/*!
* \fn void dvbpsi_atsc_
InitMGT
(dvbpsi_atsc_mgt_t* p_mgt, uint8_t i_table_id, uint16_t i_extension,
* \fn void dvbpsi_atsc_
mgt_init
(dvbpsi_atsc_mgt_t* p_mgt, uint8_t i_table_id, uint16_t i_extension,
uint8_t i_version, uint8_t i_protocol, bool b_current_next);
* \brief Initialize a user-allocated dvbpsi_atsc_mgt_t structure.
* \param p_mgt pointer to the MGT structure
...
...
@@ -145,11 +176,33 @@ void dvbpsi_atsc_DetachMGT(dvbpsi_t * p_dvbpsi, uint8_t i_table_id, uint16_t i_e
* \param b_current_next current next indicator
* \return nothing.
*/
void
dvbpsi_atsc_
InitMGT
(
dvbpsi_atsc_mgt_t
*
p_mgt
,
uint8_t
i_table_id
,
uint16_t
i_extension
,
void
dvbpsi_atsc_
mgt_init
(
dvbpsi_atsc_mgt_t
*
p_mgt
,
uint8_t
i_table_id
,
uint16_t
i_extension
,
uint8_t
i_version
,
uint8_t
i_protocol
,
bool
b_current_next
);
/*!
* \fn dvbpsi_atsc_mgt_t *dvbpsi_atsc_NewMGT(uint8_t i_table_id, uint16_t i_extension,
* \brief dvbpsi_atsc_InitMGT is deprecated use @see dvbpsi_atsc_mgt_init() instead.
* \param p_mgt pointer to the MGT structure
* \param i_table_id Table ID, 0xC7.
* \param i_extension Table ID extension, here 0x0000.
* \param i_version MGT version
* \param i_protocol PSIP Protocol version.
* \param b_current_next current next indicator
* \return nothing.
*/
__attribute__
((
deprecated
,
unused
))
inline
void
dvbpsi_atsc_InitMGT
(
dvbpsi_atsc_mgt_t
*
p_mgt
,
uint8_t
i_table_id
,
uint16_t
i_extension
,
uint8_t
i_version
,
uint8_t
i_protocol
,
bool
b_current_next
)
{
dvbpsi_atsc_mgt_init
(
p_mgt
,
i_table_id
,
i_extension
,
i_version
,
i_protocol
,
b_current_next
);
}
/*****************************************************************************
* dvbpsi_atsc_mgt_new
*****************************************************************************/
/*!
* \fn dvbpsi_atsc_mgt_t *dvbpsi_atsc_mgt_new(uint8_t i_table_id, uint16_t i_extension,
uint8_t i_version, uint8_t i_protocol, bool b_current_next);
* \brief Allocate and initialize a new dvbpsi_mgt_t structure.
* \param i_table_id Table ID, 0xC7.
...
...
@@ -159,27 +212,70 @@ void dvbpsi_atsc_InitMGT(dvbpsi_atsc_mgt_t* p_mgt, uint8_t i_table_id, uint16_t
* \param b_current_next current next indicator
* \return p_mgt pointer to the MGT structure, or NULL on failure
*/
dvbpsi_atsc_mgt_t
*
dvbpsi_atsc_
NewMGT
(
uint8_t
i_table_id
,
uint16_t
i_extension
,
dvbpsi_atsc_mgt_t
*
dvbpsi_atsc_
mgt_new
(
uint8_t
i_table_id
,
uint16_t
i_extension
,
uint8_t
i_version
,
uint8_t
i_protocol
,
bool
b_current_next
);
/*!
* \brief dvbpsi_atsc_NewMGT is deprecated use @see dvbpsi_atsc_mgt_new() instead.
* \param i_table_id Table ID, 0xC7.
* \param i_extension Table ID extension, here 0x0000.
* \param i_version MGT version
* \param i_protocol PSIP Protocol version.
* \param b_current_next current next indicator
* \return p_mgt pointer to the MGT structure, or NULL on failure
*/
__attribute__
((
deprecated
,
unused
))
inline
dvbpsi_atsc_mgt_t
*
dvbpsi_atsc_NewMGT
(
uint8_t
i_table_id
,
uint16_t
i_extension
,
uint8_t
i_version
,
uint8_t
i_protocol
,
bool
b_current_next
)
{
return
dvbpsi_atsc_mgt_new
(
i_table_id
,
i_extension
,
i_version
,
i_protocol
,
b_current_next
);
}
/*****************************************************************************
* dvbpsi_atsc_
EmptyMGT/dvbpsi_atsc_DeleteMGT
* dvbpsi_atsc_
mgt_empty
*****************************************************************************/
/*!
* \fn void dvbpsi_atsc_
EmptyMGT
(dvbpsi_atsc_mgt_t* p_mgt)
* \fn void dvbpsi_atsc_
mgt_empty
(dvbpsi_atsc_mgt_t* p_mgt)
* \brief Clean a dvbpsi_mgt_t structure.
* \param p_mgt pointer to the MGT structure
* \return nothing.
*/
void
dvbpsi_atsc_EmptyMGT
(
dvbpsi_atsc_mgt_t
*
p_mgt
);
void
dvbpsi_atsc_mgt_empty
(
dvbpsi_atsc_mgt_t
*
p_mgt
);
/*!
* \brief dvbpsi_atsc_EmptyMGT is deprecated use @see dvbpsi_atsc_mgt_empty() instead.
* \param p_mgt pointer to the MGT structure
* \return nothing.
*/
__attribute__
((
deprecated
,
unused
))
inline
void
dvbpsi_atsc_EmptyMGT
(
dvbpsi_atsc_mgt_t
*
p_mgt
)
{
dvbpsi_atsc_mgt_empty
(
p_mgt
);
}
/*****************************************************************************
* dvbpsi_atsc_mgt_delete
*****************************************************************************/
/*!
* \fn void dvbpsi_atsc_mgt_delete(dvbpsi_atsc_mgt_t *p_mgt);
* \brief Clean and free a dvbpsi_mgt_t structure.
* \param p_mgt pointer to the MGT structure
* \return nothing.
*/
void
dvbpsi_atsc_mgt_delete
(
dvbpsi_atsc_mgt_t
*
p_mgt
);
/*!
* \
fn void dvbpsi_atsc_DeleteMGT(dvbpsi_atsc_mgt_t *p_mgt);
* \
brief dvbpsi_atsc_DeleteMGT is deprecated use @see dvbpsi_atsc_mgt_delete() instead.
* \brief Clean and free a dvbpsi_mgt_t structure.
* \param p_mgt pointer to the MGT structure
* \return nothing.
*/
void
dvbpsi_atsc_DeleteMGT
(
dvbpsi_atsc_mgt_t
*
p_mgt
);
__attribute__
((
deprecated
,
unused
))
inline
void
dvbpsi_atsc_DeleteMGT
(
dvbpsi_atsc_mgt_t
*
p_mgt
)
{
dvbpsi_atsc_mgt_delete
(
p_mgt
);
}
#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