diff options
-rw-r--r-- | DOCS/interface-changes.rst | 3 | ||||
-rw-r--r-- | DOCS/man/input.rst | 36 | ||||
-rw-r--r-- | player/command.c | 24 |
3 files changed, 55 insertions, 8 deletions
diff --git a/DOCS/interface-changes.rst b/DOCS/interface-changes.rst index 4217de86fc..1298c24d6d 100644 --- a/DOCS/interface-changes.rst +++ b/DOCS/interface-changes.rst @@ -19,6 +19,9 @@ Interface changes :: + --- mpv 0.17.0 --- + - deprecate "track-list/N/audio-channels" property (use + "track-list/N/demux-channel-count" instead) --- mpv 0.16.0 --- - change --audio-channels default to stereo (use --audio-channels=auto to get the old default) diff --git a/DOCS/man/input.rst b/DOCS/man/input.rst index 11a8f0021f..9918f7384f 100644 --- a/DOCS/man/input.rst +++ b/DOCS/man/input.rst @@ -1707,10 +1707,6 @@ Property list ``track-list/N/lang`` 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`` ``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 @@ -1746,6 +1742,29 @@ Property list match even if the default (builtin) demuxer is used, but there is no hard guarantee. + ``track-list/N/decoder-desc`` + If this track is being decoded, the human-readable decoder name, + + ``track-list/N/demux-w``, ``track-list/N/demux-h`` + Video size hint as indicated by the container. (Not always accurate.) + + ``track-list/N/demux-channel-count`` + Number of audio channels as indicated by the container. (Not always + accurate - in particular, the track could be decoded as a different + number of channels.) + + ``track-list/N/demux-channels`` + Channel layout as indicated by the container. (Not always accurate.) + + ``track-list/N/demux-samplerate`` + Audio sample rate as indicated by the container. (Not always accurate.) + + ``track-list/N/demux-fps`` + Video FPS as indicated by the container. (Not always accurate.) + + ``track-list/N/audio-channels`` (deprecated) + Deprecated alias for ``track-list/N/demux-channel-count``. + When querying the property with the client API using ``MPV_FORMAT_NODE``, or with Lua ``mp.get_property_native``, this will return a mpv_node with the following contents: @@ -1759,13 +1778,20 @@ Property list "src-id" MPV_FORMAT_INT64 "title" MPV_FORMAT_STRING "lang" MPV_FORMAT_STRING - "audio-channels" MPV_FORMAT_INT64 "albumart" MPV_FORMAT_FLAG "default" MPV_FORMAT_FLAG "forced" MPV_FORMAT_FLAG "external" MPV_FORMAT_FLAG "external-filename" MPV_FORMAT_STRING "codec" MPV_FORMAT_STRING + "decoder-desc" MPV_FORMAT_STRING + "demux-w" MPV_FORMAT_INT64 + "demux-h" MPV_FORMAT_INT64 + "demux-channel-count" MPV_FORMAT_INT64 + "demux-channels" MPV_FORMAT_STRING + "demux-samplerate" MPV_FORMAT_INT64 + "demux-fps" MPV_FORMAT_DOUBLE + "audio-channels" MPV_FORMAT_INT64 ``chapter-list`` List of chapters, current entry marked. Currently, the raw property value diff --git a/player/command.c b/player/command.c index 642330e34f..421f001573 100644 --- a/player/command.c +++ b/player/command.c @@ -1944,7 +1944,14 @@ static int get_track_entry(int item, int action, void *arg, void *ctx) struct MPContext *mpctx = ctx; struct track *track = mpctx->tracks[item]; - const char *codec = track->stream ? track->stream->codec->codec : NULL; + struct mp_codec_params p = + track->stream ? *track->stream->codec : (struct mp_codec_params){0}; + + const char *decoder_desc = NULL; + if (track->d_video) + decoder_desc = track->d_video->decoder_desc; + if (track->d_audio) + decoder_desc = track->d_audio->decoder_desc; struct m_sub_property props[] = { {"id", SUB_PROP_INT(track->user_tid)}, @@ -1965,9 +1972,20 @@ static int get_track_entry(int item, int action, void *arg, void *ctx) {"selected", SUB_PROP_FLAG(track->selected)}, {"external-filename", SUB_PROP_STR(track->external_filename), .unavailable = !track->external_filename}, - {"codec", SUB_PROP_STR(codec), - .unavailable = !codec}, {"ff-index", SUB_PROP_INT(track->ff_index)}, + {"decoder-desc", SUB_PROP_STR(decoder_desc), + .unavailable = !decoder_desc}, + {"codec", SUB_PROP_STR(p.codec), + .unavailable = !p.codec}, + {"demux-w", SUB_PROP_INT(p.disp_w), .unavailable = !p.disp_w}, + {"demux-h", SUB_PROP_INT(p.disp_h), .unavailable = !p.disp_h}, + {"demux-channel-count", SUB_PROP_INT(p.channels.num), + .unavailable = !p.channels.num}, + {"demux-channels", SUB_PROP_STR(mp_chmap_to_str(&p.channels)), + .unavailable = !p.channels.num}, + {"demux-samplerate", SUB_PROP_INT(p.samplerate), + .unavailable = !p.samplerate}, + {"demux-fps", SUB_PROP_DOUBLE(p.fps), .unavailable = p.fps <= 0}, {0} }; |