command: add track-list/N/audio-channels property

Signed-off-by: wm4 <wm4@nowhere>

(With some heavy modifications from the original patch.)
This commit is contained in:
deuiore
2015-07-03 02:33:54 +02:00
committed by wm4
parent fb8d158366
commit 7984fde8de
3 changed files with 14 additions and 0 deletions

View File

@@ -20,6 +20,7 @@ Interface changes
:: ::
--- mpv 0.10.0 will be released --- --- mpv 0.10.0 will be released ---
- add ``track-list/N/audio-channels`` property
- change --screenshot-tag-colorspace default value - change --screenshot-tag-colorspace default value
- add --stretch-image-subs-to-screen - add --stretch-image-subs-to-screen
- add "playlist/N/title" property - add "playlist/N/title" property

View File

@@ -1574,6 +1574,10 @@ Property list
``track-list/N/lang`` ``track-list/N/lang``
Track language as identified by the file. Not always available. Track language as identified by the file. Not always available.
``track-list/N/audio-channels``
For audio tracks, the number of audio channels in the audio stream.
Not always accurate (depends on container hints). Not always available.
``track-list/N/albumart`` ``track-list/N/albumart``
``yes`` if this is a video track that consists of a single picture, ``yes`` if this is a video track that consists of a single picture,
``no`` or unavailable otherwise. This is used for video tracks that are ``no`` or unavailable otherwise. This is used for video tracks that are
@@ -1622,6 +1626,7 @@ Property list
"src-id" MPV_FORMAT_INT64 "src-id" MPV_FORMAT_INT64
"title" MPV_FORMAT_STRING "title" MPV_FORMAT_STRING
"lang" MPV_FORMAT_STRING "lang" MPV_FORMAT_STRING
"audio-channels" MPV_FORMAT_INT64
"albumart" MPV_FORMAT_FLAG "albumart" MPV_FORMAT_FLAG
"default" MPV_FORMAT_FLAG "default" MPV_FORMAT_FLAG
"forced" MPV_FORMAT_FLAG "forced" MPV_FORMAT_FLAG

View File

@@ -1861,6 +1861,12 @@ static int property_switch_track_ff(void *ctx, struct m_property *prop,
return mp_property_generic_option(mpctx, prop, action, arg); return mp_property_generic_option(mpctx, prop, action, arg);
} }
static int track_channels(struct track *track)
{
return track->stream && track->stream->audio
? track->stream->audio->channels.num : 0;
}
static int get_track_entry(int item, int action, void *arg, void *ctx) static int get_track_entry(int item, int action, void *arg, void *ctx)
{ {
struct MPContext *mpctx = ctx; struct MPContext *mpctx = ctx;
@@ -1878,6 +1884,8 @@ static int get_track_entry(int item, int action, void *arg, void *ctx)
.unavailable = !track->title}, .unavailable = !track->title},
{"lang", SUB_PROP_STR(track->lang), {"lang", SUB_PROP_STR(track->lang),
.unavailable = !track->lang}, .unavailable = !track->lang},
{"audio-channels", SUB_PROP_INT(track_channels(track)),
.unavailable = track_channels(track) <= 0},
{"albumart", SUB_PROP_FLAG(track->attached_picture)}, {"albumart", SUB_PROP_FLAG(track->attached_picture)},
{"default", SUB_PROP_FLAG(track->default_track)}, {"default", SUB_PROP_FLAG(track->default_track)},
{"forced", SUB_PROP_FLAG(track->forced_track)}, {"forced", SUB_PROP_FLAG(track->forced_track)},