From 46c5bf59b18fae23b04c009e1e6215dd1227cdc8 Mon Sep 17 00:00:00 2001 From: Francois Cartegnie Date: Sun, 3 Nov 2013 23:16:36 +0900 Subject: [PATCH] vlc_es: add defines for priority levels --- include/vlc_es.h | 4 ++++ modules/access/bd/bd.c | 6 +++--- modules/access/bluray.c | 4 ++-- modules/access/dshow/dshow.cpp | 4 ++-- modules/demux/avformat/demux.c | 2 +- modules/demux/mkv/matroska_segment.cpp | 8 ++++---- modules/demux/mp4/mp4.c | 4 ++-- modules/demux/ts.c | 5 +++-- modules/video_filter/remoteosd.c | 2 +- src/input/es_out.c | 2 +- src/misc/es_format.c | 2 +- 11 files changed, 24 insertions(+), 19 deletions(-) diff --git a/include/vlc_es.h b/include/vlc_es.h index 6babdd8307..3040c3857e 100644 --- a/include/vlc_es.h +++ b/include/vlc_es.h @@ -320,6 +320,10 @@ typedef struct extra_languages_t /** * ES format definition */ +#define ES_PRIORITY_NOT_SELECTABLE -2 +#define ES_PRIORITY_NOT_DEFAULTABLE -1 +#define ES_PRIORITY_SELECTABLE_MIN 0 +#define ES_PRIORITY_MIN ES_PRIORITY_NOT_SELECTABLE struct es_format_t { int i_cat; /**< ES category @see es_format_category_e */ diff --git a/modules/access/bd/bd.c b/modules/access/bd/bd.c index a73c88c399..bf9ccd5f46 100644 --- a/modules/access/bd/bd.c +++ b/modules/access/bd/bd.c @@ -1255,7 +1255,7 @@ static es_out_id_t *EsOutAdd( es_out_t *p_out, const es_format_t *p_fmt ) es_format_t fmt; es_format_Copy( &fmt, p_fmt ); - fmt.i_priority = -2; + fmt.i_priority = ES_PRIORITY_NOT_SELECTABLE; for( int i = 0; i < p_item->i_stream; i++ ) { @@ -1267,7 +1267,7 @@ static es_out_id_t *EsOutAdd( es_out_t *p_out, const es_format_t *p_fmt ) /* TODO improved priority for higher quality stream ? * if so, extending stream attributes parsing might be a good idea */ - fmt.i_priority = 0; + fmt.i_priority = ES_PRIORITY_SELECTABLE_MIN; #if 0 /* Useless, and beside not sure it is the right thing to do */ @@ -1297,7 +1297,7 @@ static es_out_id_t *EsOutAdd( es_out_t *p_out, const es_format_t *p_fmt ) } break; } - if( fmt.i_priority < 0 ) + if( fmt.i_priority < ES_PRIORITY_SELECTABLE_MIN ) msg_Dbg( p_demux, "Hiding one stream (pid=%d)", fmt.i_id ); /* */ diff --git a/modules/access/bluray.c b/modules/access/bluray.c index a0c4eb6830..0b98815314 100644 --- a/modules/access/bluray.c +++ b/modules/access/bluray.c @@ -525,11 +525,11 @@ static es_out_id_t *esOutAdd(es_out_t *p_out, const es_format_t *p_fmt) switch (fmt.i_cat) { case VIDEO_ES: if (p_sys->i_video_stream != -1 && p_sys->i_video_stream != p_fmt->i_id) - fmt.i_priority = -2; + fmt.i_priority = ES_PRIORITY_NOT_SELECTABLE; break ; case AUDIO_ES: if (p_sys->i_audio_stream != -1 && p_sys->i_audio_stream != p_fmt->i_id) - fmt.i_priority = -2; + fmt.i_priority = ES_PRIORITY_NOT_SELECTABLE; break ; case SPU_ES: break ; diff --git a/modules/access/dshow/dshow.cpp b/modules/access/dshow/dshow.cpp index 83a21c3356..82b0917cf2 100644 --- a/modules/access/dshow/dshow.cpp +++ b/modules/access/dshow/dshow.cpp @@ -1400,7 +1400,7 @@ static size_t EnumDeviceCaps( vlc_object_t *p_this, IBaseFilter *p_filter, BYTE *pSCC= (BYTE *)CoTaskMemAlloc(piSize); if( NULL != pSCC ) { - int i_priority = -1; + int i_priority = ES_PRIORITY_NOT_DEFAULTABLE; for( int i=0; iGetStreamCaps(i, &p_mt, pSCC)) ) @@ -1581,7 +1581,7 @@ static size_t EnumDeviceCaps( vlc_object_t *p_this, IBaseFilter *p_filter, } } CoTaskMemFree( (LPVOID)pSCC ); - if( i_priority >= 0 ) + if( i_priority >= ES_PRIORITY_SELECTABLE_MIN ) msg_Dbg( p_this, "EnumDeviceCaps: input pin default format configured"); } } diff --git a/modules/demux/avformat/demux.c b/modules/demux/avformat/demux.c index 51ae99bdd9..e3402817ed 100644 --- a/modules/demux/avformat/demux.c +++ b/modules/demux/avformat/demux.c @@ -427,7 +427,7 @@ int OpenDemux( vlc_object_t *p_this ) fmt.psz_language = strdup( language->value ); if( s->disposition & AV_DISPOSITION_DEFAULT ) - fmt.i_priority = 1000; + fmt.i_priority = ES_PRIORITY_SELECTABLE_MIN + 1000; #ifdef HAVE_AVUTIL_CODEC_ATTACHMENT if( cc->codec_type != AVMEDIA_TYPE_ATTACHMENT ) diff --git a/modules/demux/mkv/matroska_segment.cpp b/modules/demux/mkv/matroska_segment.cpp index 224440061c..756a9c55cd 100644 --- a/modules/demux/mkv/matroska_segment.cpp +++ b/modules/demux/mkv/matroska_segment.cpp @@ -1119,13 +1119,13 @@ void matroska_segment_c::ComputeTrackPriority() b_has_default_audio = true; } if( unlikely( !p_tk->b_enabled ) ) - p_tk->fmt.i_priority = -2; + p_tk->fmt.i_priority = ES_PRIORITY_NOT_SELECTABLE; else if( p_tk->b_forced ) - p_tk->fmt.i_priority = 2; + p_tk->fmt.i_priority = ES_PRIORITY_SELECTABLE_MIN + 2; else if( p_tk->b_default ) - p_tk->fmt.i_priority = 1; + p_tk->fmt.i_priority = ES_PRIORITY_SELECTABLE_MIN + 1; else - p_tk->fmt.i_priority = 0; + p_tk->fmt.i_priority = ES_PRIORITY_SELECTABLE_MIN; /* Avoid multivideo tracks when unnecessary */ if( p_tk->fmt.i_cat == VIDEO_ES ) diff --git a/modules/demux/mp4/mp4.c b/modules/demux/mp4/mp4.c index c30dc77768..78df8112a7 100644 --- a/modules/demux/mp4/mp4.c +++ b/modules/demux/mp4/mp4.c @@ -2505,7 +2505,7 @@ static void MP4_TrackCreate( demux_t *p_demux, mp4_track_t *p_track, p_track->b_enable = ( ( p_tkhd->data.p_tkhd->i_flags&MP4_TRACK_ENABLED ) != 0 ); if( !p_track->b_enable ) - p_track->fmt.i_priority = -1; + p_track->fmt.i_priority = ES_PRIORITY_NOT_DEFAULTABLE; p_track->i_track_ID = p_tkhd->data.p_tkhd->i_track_ID; @@ -2666,7 +2666,7 @@ static void MP4_TrackCreate( demux_t *p_demux, mp4_track_t *p_track, msg_Warn( p_demux, "Enabling track[Id 0x%x] (buggy file without enabled track)", p_track->i_track_ID ); p_track->b_enable = true; - p_track->fmt.i_priority = 0; + p_track->fmt.i_priority = ES_PRIORITY_SELECTABLE_MIN; } p_track->p_es = NULL; diff --git a/modules/demux/ts.c b/modules/demux/ts.c index 2039251244..ade6ab7d8b 100644 --- a/modules/demux/ts.c +++ b/modules/demux/ts.c @@ -3527,7 +3527,8 @@ static void PMTSetupEsTeletext( demux_t *p_demux, ts_pid_t *pid, /* */ const ts_teletext_page_t *p = &p_page[i]; - p_es->fmt.i_priority = (p->i_type == 0x02 || p->i_type == 0x05) ? 0 : -1; + p_es->fmt.i_priority = (p->i_type == 0x02 || p->i_type == 0x05) ? + ES_PRIORITY_SELECTABLE_MIN : ES_PRIORITY_NOT_DEFAULTABLE; p_es->fmt.psz_language = strndup( p->p_iso639, 3 ); p_es->fmt.psz_description = strdup(vlc_gettext(ppsz_teletext_type[p->i_type])); p_es->fmt.subs.teletext.i_magazine = p->i_magazine; @@ -3922,7 +3923,7 @@ static void PMTParseEsIso639( demux_t *p_demux, ts_pid_t *pid, int type = p_decoded->code[0].i_audio_type; pid->es->fmt.psz_description = GetAudioTypeDesc(p_demux, type); if (type == 0) - pid->es->fmt.i_priority = 1; // prioritize normal audio tracks + pid->es->fmt.i_priority = ES_PRIORITY_SELECTABLE_MIN + 1; // prioritize normal audio tracks pid->es->fmt.i_extra_languages = p_decoded->i_code_count-1; if( pid->es->fmt.i_extra_languages > 0 ) diff --git a/modules/video_filter/remoteosd.c b/modules/video_filter/remoteosd.c index 09593c2a66..4b73e21ff1 100644 --- a/modules/video_filter/remoteosd.c +++ b/modules/video_filter/remoteosd.c @@ -308,7 +308,7 @@ static int CreateFilter ( vlc_object_t *p_this ) var_AddCallback( p_filter->p_libvlc, "key-pressed", KeyEvent, p_this ); es_format_Init( &p_filter->fmt_out, SPU_ES, VLC_CODEC_SPU ); - p_filter->fmt_out.i_priority = 0; + p_filter->fmt_out.i_priority = ES_PRIORITY_SELECTABLE_MIN; vlc_gcrypt_init(); diff --git a/src/input/es_out.c b/src/input/es_out.c index d10ab6be74..5da85eafab 100644 --- a/src/input/es_out.c +++ b/src/input/es_out.c @@ -1716,7 +1716,7 @@ static void EsOutSelect( es_out_t *out, es_out_id_t *es, bool b_force ) int i_cat = es->fmt.i_cat; if( !p_sys->b_active || - ( !b_force && es->fmt.i_priority < 0 ) ) + ( !b_force && es->fmt.i_priority < ES_PRIORITY_SELECTABLE_MIN ) ) { return; } diff --git a/src/misc/es_format.c b/src/misc/es_format.c index 352bd5ba3b..cf329cb967 100644 --- a/src/misc/es_format.c +++ b/src/misc/es_format.c @@ -296,7 +296,7 @@ void es_format_Init( es_format_t *fmt, fmt->i_level = -1; fmt->i_id = -1; fmt->i_group = 0; - fmt->i_priority = 0; + fmt->i_priority = ES_PRIORITY_SELECTABLE_MIN; fmt->psz_language = NULL; fmt->psz_description = NULL;