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
c810f7d7
Commit
c810f7d7
authored
Mar 20, 2013
by
Jean-Paul Saman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dvbinfo: add descriptor 0x54 Content decoding
parent
3f3705e3
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
163 additions
and
0 deletions
+163
-0
examples/dvbinfo/libdvbpsi.c
examples/dvbinfo/libdvbpsi.c
+161
-0
examples/dvbinfo/libdvbpsi.h
examples/dvbinfo/libdvbpsi.h
+2
-0
No files found.
examples/dvbinfo/libdvbpsi.c
View file @
c810f7d7
...
...
@@ -904,6 +904,164 @@ static void DumpStreamIdentifierDescriptor(dvbpsi_stream_identifier_dr_t* p_si_d
printf
(
"Component tag: %d
\n
"
,
p_si_descriptor
->
i_component_tag
);
}
/*****************************************************************************
* DumpContentDescriptor
*****************************************************************************/
typedef
struct
{
const
int
i_category
;
const
char
*
p_category
;
}
dr_content_category_t
;
static
const
char
*
GetContentSubCategory
(
const
int
i_type
)
{
dr_content_category_t
content_subcategory
[]
=
{
/* Movie/Drama */
{
DVBPSI_CONTENT_MOVIE_GENERAL
,
"General"
},
{
DVBPSI_CONTENT_MOVIE_DETECTIVE
,
"Detective"
},
{
DVBPSI_CONTENT_MOVIE_ADVENTURE
,
"Adventure"
},
{
DVBPSI_CONTENT_MOVIE_SF
,
"Science Fiction"
},
{
DVBPSI_CONTENT_MOVIE_COMEDY
,
"Comedy"
},
{
DVBPSI_CONTENT_MOVIE_SOAP
,
"Soap"
},
{
DVBPSI_CONTENT_MOVIE_ROMANCE
,
"Romance"
},
{
DVBPSI_CONTENT_MOVIE_CLASSICAL
,
"Classical"
},
{
DVBPSI_CONTENT_MOVIE_ADULT
,
"Adult"
},
{
DVBPSI_CONTENT_MOVIE_USERDEFINED
,
"User defined"
},
/* News/Current affairs */
{
DVBPSI_CONTENT_NEWS_GENERAL
,
"General"
},
{
DVBPSI_CONTENT_NEWS_WEATHER
,
"Weather"
},
{
DVBPSI_CONTENT_NEWS_MAGAZINE
,
"Magazine"
},
{
DVBPSI_CONTENT_NEWS_DOCUMENTARY
,
"Documentary"
},
{
DVBPSI_CONTENT_NEWS_DISCUSSION
,
"Discussion"
},
{
DVBPSI_CONTENT_NEWS_USERDEFINED
,
"User Defined"
},
/* Show/Game show */
{
DVBPSI_CONTENT_SHOW_GENERAL
,
"General"
},
{
DVBPSI_CONTENT_SHOW_QUIZ
,
"Quiz"
},
{
DVBPSI_CONTENT_SHOW_VARIETY
,
"Variety"
},
{
DVBPSI_CONTENT_SHOW_TALK
,
"Talk"
},
{
DVBPSI_CONTENT_SHOW_USERDEFINED
,
"User Defined"
},
/* Sports */
{
DVBPSI_CONTENT_SPORTS_GENERAL
,
"General"
},
{
DVBPSI_CONTENT_SPORTS_EVENTS
,
"Events"
},
{
DVBPSI_CONTENT_SPORTS_MAGAZINE
,
"Magazine"
},
{
DVBPSI_CONTENT_SPORTS_FOOTBALL
,
"Football"
},
{
DVBPSI_CONTENT_SPORTS_TENNIS
,
"Tennis"
},
{
DVBPSI_CONTENT_SPORTS_TEAM
,
"Team"
},
{
DVBPSI_CONTENT_SPORTS_ATHLETICS
,
"Athletics"
},
{
DVBPSI_CONTENT_SPORTS_MOTOR
,
"Motor"
},
{
DVBPSI_CONTENT_SPORTS_WATER
,
"Water"
},
{
DVBPSI_CONTENT_SPORTS_WINTER
,
"Winter"
},
{
DVBPSI_CONTENT_SPORTS_EQUESTRIAN
,
"Equestrian"
},
{
DVBPSI_CONTENT_SPORTS_MARTIAL
,
"Martial"
},
{
DVBPSI_CONTENT_SPORTS_USERDEFINED
,
"User Defined"
},
/* Children's/Youth */
{
DVBPSI_CONTENT_CHILDREN_GENERAL
,
"General"
},
{
DVBPSI_CONTENT_CHILDREN_PRESCHOOL
,
"Preschool"
},
{
DVBPSI_CONTENT_CHILDREN_06TO14ENT
,
"06 to 14"
},
{
DVBPSI_CONTENT_CHILDREN_10TO16ENT
,
"10 to 16"
},
{
DVBPSI_CONTENT_CHILDREN_EDUCATIONAL
,
"Educational"
},
{
DVBPSI_CONTENT_CHILDREN_CARTOONS
,
"Cartoons"
},
{
DVBPSI_CONTENT_CHILDREN_USERDEFINED
,
"User Defined"
},
/* Music/Ballet/Dance */
{
DVBPSI_CONTENT_MUSIC_GENERAL
,
"General"
},
{
DVBPSI_CONTENT_MUSIC_POPROCK
,
"Poprock"
},
{
DVBPSI_CONTENT_MUSIC_CLASSICAL
,
"Classical"
},
{
DVBPSI_CONTENT_MUSIC_FOLK
,
"Folk"
},
{
DVBPSI_CONTENT_MUSIC_JAZZ
,
"Jazz"
},
{
DVBPSI_CONTENT_MUSIC_OPERA
,
"Opera"
},
{
DVBPSI_CONTENT_MUSIC_BALLET
,
"Ballet"
},
{
DVBPSI_CONTENT_MUSIC_USERDEFINED
,
"User Defined"
},
/* Arts/Culture */
{
DVBPSI_CONTENT_CULTURE_GENERAL
,
"General"
},
{
DVBPSI_CONTENT_CULTURE_PERFORMANCE
,
"Performance"
},
{
DVBPSI_CONTENT_CULTURE_FINEARTS
,
"Fine Arts"
},
{
DVBPSI_CONTENT_CULTURE_RELIGION
,
"Religion"
},
{
DVBPSI_CONTENT_CULTURE_TRADITIONAL
,
"Traditional"
},
{
DVBPSI_CONTENT_CULTURE_LITERATURE
,
"Literature"
},
{
DVBPSI_CONTENT_CULTURE_CINEMA
,
"Cinema"
},
{
DVBPSI_CONTENT_CULTURE_EXPERIMENTAL
,
"Experimental"
},
{
DVBPSI_CONTENT_CULTURE_PRESS
,
"Press"
},
{
DVBPSI_CONTENT_CULTURE_NEWMEDIA
,
"New Media"
},
{
DVBPSI_CONTENT_CULTURE_MAGAZINE
,
"Magazine"
},
{
DVBPSI_CONTENT_CULTURE_FASHION
,
"Fashion"
},
{
DVBPSI_CONTENT_CULTURE_USERDEFINED
,
"User Defined"
},
/* Socal/Political/Economics */
{
DVBPSI_CONTENT_SOCIAL_GENERAL
,
"General"
},
{
DVBPSI_CONTENT_SOCIAL_MAGAZINE
,
"Magazine"
},
{
DVBPSI_CONTENT_SOCIAL_ADVISORY
,
"Advisory"
},
{
DVBPSI_CONTENT_SOCIAL_PEOPLE
,
"People"
},
{
DVBPSI_CONTENT_SOCIAL_USERDEFINED
,
"User Defined"
},
/* Eduction/Science/Factual */
{
DVBPSI_CONTENT_EDUCATION_GENERAL
,
"General"
},
{
DVBPSI_CONTENT_EDUCATION_NATURE
,
"Nature"
},
{
DVBPSI_CONTENT_EDUCATION_TECHNOLOGY
,
"Technology"
},
{
DVBPSI_CONTENT_EDUCATION_MEDICINE
,
"Medicine"
},
{
DVBPSI_CONTENT_EDUCATION_FOREIGN
,
"Foreign"
},
{
DVBPSI_CONTENT_EDUCATION_SOCIAL
,
"Social"
},
{
DVBPSI_CONTENT_EDUCATION_FURTHER
,
"Further"
},
{
DVBPSI_CONTENT_EDUCATION_LANGUAGE
,
"Language"
},
{
DVBPSI_CONTENT_EDUCATION_USERDEFINED
,
"User Defined"
},
/* Leisure/Hobbies */
{
DVBPSI_CONTENT_LEISURE_GENERAL
,
"General"
},
{
DVBPSI_CONTENT_LEISURE_TRAVEL
,
"Travel"
},
{
DVBPSI_CONTENT_LEISURE_HANDICRAFT
,
"Handicraft"
},
{
DVBPSI_CONTENT_LEISURE_MOTORING
,
"Motoring"
},
{
DVBPSI_CONTENT_LEISURE_FITNESS
,
"Fitness"
},
{
DVBPSI_CONTENT_LEISURE_COOKING
,
"Cooking"
},
{
DVBPSI_CONTENT_LEISURE_SHOPPING
,
"Shopping"
},
{
DVBPSI_CONTENT_LEISURE_GARDENING
,
"Gardening"
},
{
DVBPSI_CONTENT_LEISURE_USERDEFINED
,
"User Defined"
},
/* Special characteristics */
{
DVBPSI_CONTENT_SPECIAL_ORIGINALLANGUAGE
,
"Original Language"
},
{
DVBPSI_CONTENT_SPECIAL_BLACKANDWHITE
,
"Black and White "
},
{
DVBPSI_CONTENT_SPECIAL_UNPUBLISHED
,
"Unpublished"
},
{
DVBPSI_CONTENT_SPECIAL_LIVE
,
"Live"
},
{
DVBPSI_CONTENT_SPECIAL_PLANOSTEREOSCOPIC
,
"Planostereoscopic"
},
{
DVBPSI_CONTENT_SPECIAL_USERDEFINED
,
"User Defined"
},
{
DVBPSI_CONTENT_SPECIAL_USERDEFINED1
,
"User Defined 1"
},
{
DVBPSI_CONTENT_SPECIAL_USERDEFINED2
,
"User Defined 2"
},
{
DVBPSI_CONTENT_SPECIAL_USERDEFINED3
,
"User Defined 3"
},
{
DVBPSI_CONTENT_SPECIAL_USERDEFINED4
,
"User Defined 4"
}
};
for
(
unsigned
int
i
=
0
;
i
<
ARRAY_SIZE
(
content_subcategory
);
i
++
)
{
if
(
i_type
==
content_subcategory
[
i
].
i_category
)
return
content_subcategory
[
i
].
p_category
;
}
return
"Unknown"
;
}
static
void
DumpContentDescriptor
(
dvbpsi_content_dr_t
*
p_content_descriptor
)
{
dr_content_category_t
content_category
[]
=
{
{
DVBPSI_CONTENT_CAT_UNDEFINED
,
"Undefined"
},
{
DVBPSI_CONTENT_CAT_MOVIE
,
"Movie"
},
{
DVBPSI_CONTENT_CAT_NEWS
,
"News"
},
{
DVBPSI_CONTENT_CAT_SHOW
,
"Show"
},
{
DVBPSI_CONTENT_CAT_SPORTS
,
"Sports"
},
{
DVBPSI_CONTENT_CAT_CHILDREN
,
"Children"
},
{
DVBPSI_CONTENT_CAT_MUSIC
,
"Music"
},
{
DVBPSI_CONTENT_CAT_CULTURE
,
"Culture"
},
{
DVBPSI_CONTENT_CAT_SOCIAL
,
"Social"
},
{
DVBPSI_CONTENT_CAT_EDUCATION
,
"Education"
},
{
DVBPSI_CONTENT_CAT_LEISURE
,
"Leisur"
},
{
DVBPSI_CONTENT_CAT_SPECIAL
,
"Special"
},
{
DVBPSI_CONTENT_CAT_USERDEFINED
,
"User defined"
},
{
0
,
NULL
}
};
printf
(
"Content
\n
"
);
for
(
int
i
=
0
;
i
<
p_content_descriptor
->
i_contents_number
;
i
++
)
{
int
i_type
=
p_content_descriptor
->
p_content
[
i
].
i_type
;
int
i_category
=
DVDPSI_GetContentCategoryFromType
(
i_type
);
printf
(
"
\t\t
category: %s
\n
"
,
content_category
[
i_category
].
p_category
);
printf
(
"
\t\t
sub category: %s
\n
"
,
GetContentSubCategory
(
i_type
));
printf
(
"
\t\t
user byte: 0x%x
\n
"
,
p_content_descriptor
->
p_content
[
i
].
i_user_byte
);
}
}
/*****************************************************************************
* DumpSubtitleDescriptor
*****************************************************************************/
...
...
@@ -1255,6 +1413,9 @@ static void DumpDescriptors(const char* str, dvbpsi_descriptor_t* p_descriptor)
case
0x52
:
DumpStreamIdentifierDescriptor
(
dvbpsi_DecodeStreamIdentifierDr
(
p_descriptor
));
break
;
case
0x54
:
DumpContentDescriptor
(
dvbpsi_DecodeContentDr
(
p_descriptor
));
break
;
case
0x59
:
DumpSubtitleDescriptor
(
dvbpsi_DecodeSubtitlingDr
(
p_descriptor
));
break
;
...
...
examples/dvbinfo/libdvbpsi.h
View file @
c810f7d7
...
...
@@ -23,6 +23,8 @@
#ifndef DVBINFO_DVBPSI_H_
#define DVBINFO_DVBPSI_H_
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
/* Date and time */
typedef
int64_t
mtime_t
;
mtime_t
mdate
(
void
);
...
...
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