Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
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
vlc
Commits
9f9d8982
Commit
9f9d8982
authored
Jul 06, 2008
by
Pierre d'Herbemont
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
libvlc: Add a --verbose-objects option to select which objects should print their msg.
Sample usage: --verbose-objects=+input,-all
parent
dfa0e1e9
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
83 additions
and
0 deletions
+83
-0
include/vlc_messages.h
include/vlc_messages.h
+6
-0
src/libvlc-module.c
src/libvlc-module.c
+10
-0
src/libvlc.c
src/libvlc.c
+22
-0
src/libvlc.h
src/libvlc.h
+2
-0
src/misc/messages.c
src/misc/messages.c
+43
-0
No files found.
include/vlc_messages.h
View file @
9f9d8982
...
...
@@ -108,6 +108,12 @@ VLC_EXPORT( void, __msg_Dbg, ( vlc_object_t *, const char *, ... ) LIBVLC_FOR
VLC_EXPORT
(
msg_subscription_t
*
,
__msg_Subscribe
,
(
vlc_object_t
*
)
);
VLC_EXPORT
(
void
,
__msg_Unsubscribe
,
(
vlc_object_t
*
,
msg_subscription_t
*
)
);
/* Enable or disable a certain object debug messages */
#define msg_EnableObjectPrinting(a,b) __msg_EnableObjectPrinting(VLC_OBJECT(a),b)
#define msg_DisableObjectPrinting(a,b) __msg_DisableObjectPrinting(VLC_OBJECT(a),b)
VLC_EXPORT
(
void
,
__msg_EnableObjectPrinting
,
(
vlc_object_t
*
,
char
*
psz_object
)
);
VLC_EXPORT
(
void
,
__msg_DisableObjectPrinting
,
(
vlc_object_t
*
,
char
*
psz_object
)
);
/**
* @}
*/
...
...
src/libvlc-module.c
View file @
9f9d8982
...
...
@@ -166,6 +166,14 @@ static const char *const ppsz_snap_formats[] =
"This is the verbosity level (0=only errors and " \
"standard messages, 1=warnings, 2=debug).")
#define VERBOSE_OBJECTS_TEXT N_("Choose which objects should print debug " \
"message")
#define VERBOSE_OBJECTS_LONGTEXT N_( \
"This is a ',' separated string, each objects should be prefixed by " \
"a '+' or a '-' to respectively enable or disable it. The keyword " \
"'all' refers to all objects. Note, you still need to use -vvv " \
"to actually display debug message.")
#define QUIET_TEXT N_("Be quiet")
#define QUIET_LONGTEXT N_( \
"Turn off all warning and information messages.")
...
...
@@ -1958,6 +1966,8 @@ vlc_module_begin();
add_integer
(
"verbose"
,
0
,
NULL
,
VERBOSE_TEXT
,
VERBOSE_LONGTEXT
,
false
);
change_short
(
'v'
);
add_string
(
"verbose-objects"
,
0
,
NULL
,
VERBOSE_OBJECTS_TEXT
,
VERBOSE_OBJECTS_LONGTEXT
,
false
);
add_bool
(
"quiet"
,
0
,
NULL
,
QUIET_TEXT
,
QUIET_LONGTEXT
,
true
);
change_short
(
'q'
);
...
...
src/libvlc.c
View file @
9f9d8982
...
...
@@ -666,6 +666,28 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc,
/*
* Message queue options
*/
char
*
psz_verbose_objects
=
config_GetPsz
(
p_libvlc
,
"verbose-objects"
);
if
(
psz_verbose_objects
)
{
char
*
psz_object
,
*
iter
=
psz_verbose_objects
;
while
(
(
psz_object
=
strsep
(
&
iter
,
","
))
)
{
switch
(
psz_object
[
0
]
)
{
printf
(
"%s
\n
"
,
psz_object
+
1
);
case
'+'
:
msg_EnableObjectPrinting
(
p_libvlc
,
psz_object
+
1
);
break
;
case
'-'
:
msg_DisableObjectPrinting
(
p_libvlc
,
psz_object
+
1
);
break
;
default:
msg_Err
(
p_libvlc
,
"verbose-objects usage:
\n
"
"--verbose-objects=+printthatobject,"
"-dontprintthatone
\n
"
"(keyword 'all' to applies to all objects)
\n
"
);
free
(
psz_verbose_objects
);
return
VLC_EGENERIC
;
}
}
free
(
psz_verbose_objects
);
}
var_Create
(
p_libvlc
,
"verbose"
,
VLC_VAR_INTEGER
|
VLC_VAR_DOINHERIT
);
if
(
config_GetInt
(
p_libvlc
,
"quiet"
)
>
0
)
...
...
src/libvlc.h
View file @
9f9d8982
...
...
@@ -209,6 +209,8 @@ typedef struct libvlc_priv_t
msg_bank_t
msg_bank
;
///< The message bank
int
i_verbose
;
///< info messages
bool
b_color
;
///< color messages?
vlc_dictionary_t
msg_enabled_objects
;
///< Enabled objects
bool
msg_all_objects_enabled
;
///< Should we print all objects?
/* Timer stats */
vlc_mutex_t
timer_lock
;
///< Lock to protect timers
...
...
src/misc/messages.c
View file @
9f9d8982
...
...
@@ -96,6 +96,9 @@ void msg_Create (libvlc_int_t *p_libvlc)
libvlc_priv_t
*
priv
=
libvlc_priv
(
p_libvlc
);
vlc_mutex_init
(
&
priv
->
msg_bank
.
lock
);
vlc_mutex_init
(
&
QUEUE
.
lock
);
vlc_dictionary_init
(
&
priv
->
msg_enabled_objects
,
0
);
priv
->
msg_all_objects_enabled
=
true
;
QUEUE
.
b_overflow
=
false
;
QUEUE
.
i_start
=
0
;
QUEUE
.
i_stop
=
0
;
...
...
@@ -127,6 +130,35 @@ void msg_Flush (libvlc_int_t *p_libvlc)
vlc_mutex_unlock
(
&
QUEUE
.
lock
);
}
/**
* Object Printing selection
*/
static
void
const
*
kObjectPrintingEnabled
=
(
void
*
)
1
;
static
void
const
*
kObjectPrintingDisabled
=
(
void
*
)
-
1
;
void
__msg_EnableObjectPrinting
(
vlc_object_t
*
p_this
,
char
*
psz_object
)
{
libvlc_priv_t
*
priv
=
libvlc_priv
(
p_this
->
p_libvlc
);
vlc_mutex_lock
(
&
QUEUE
.
lock
);
if
(
!
strcmp
(
psz_object
,
"all"
)
)
priv
->
msg_all_objects_enabled
=
true
;
else
vlc_dictionary_insert
(
&
priv
->
msg_enabled_objects
,
psz_object
,
kObjectPrintingEnabled
);
vlc_mutex_unlock
(
&
QUEUE
.
lock
);
}
void
__msg_DisableObjectPrinting
(
vlc_object_t
*
p_this
,
char
*
psz_object
)
{
libvlc_priv_t
*
priv
=
libvlc_priv
(
p_this
->
p_libvlc
);
vlc_mutex_lock
(
&
QUEUE
.
lock
);
if
(
!
strcmp
(
psz_object
,
"all"
)
)
priv
->
msg_all_objects_enabled
=
false
;
else
vlc_dictionary_insert
(
&
priv
->
msg_enabled_objects
,
psz_object
,
kObjectPrintingDisabled
);
vlc_mutex_unlock
(
&
QUEUE
.
lock
);
}
/**
* Destroy the message queues
*
...
...
@@ -151,6 +183,9 @@ void msg_Destroy (libvlc_int_t *p_libvlc)
#ifdef UNDER_CE
CloseHandle
(
QUEUE
.
logfile
);
#endif
vlc_dictionary_clear
(
&
priv
->
msg_enabled_objects
);
/* Destroy lock */
vlc_mutex_destroy
(
&
QUEUE
.
lock
);
vlc_mutex_destroy
(
&
priv
->
msg_bank
.
lock
);
...
...
@@ -567,6 +602,14 @@ static void PrintMsg ( vlc_object_t * p_this, msg_item_t * p_item )
}
psz_object
=
p_item
->
psz_object_type
;
void
*
val
=
vlc_dictionary_value_for_key
(
&
priv
->
msg_enabled_objects
,
psz_object
);
if
(
val
==
kObjectPrintingDisabled
)
return
;
if
(
val
==
kObjectPrintingEnabled
)
/* Allowed */
;
else
if
(
!
priv
->
msg_all_objects_enabled
)
return
;
int
canc
=
vlc_savecancel
();
#ifdef UNDER_CE
...
...
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