summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwnoun <wnoun@outlook.com>2019-08-01 18:51:13 +0800
committerwm4 <1387750+wm4@users.noreply.github.com>2019-09-21 16:55:59 +0200
commit6111f57ef9269b46e19ca6f1f20c8b61f2ea7a6b (patch)
tree7861c79817b0d0f460a78ed275b0bf81ea702ad8
parentdc7bd2ca29633a818da79088f13d2da1fe58c673 (diff)
downloadmpv-6111f57ef9269b46e19ca6f1f20c8b61f2ea7a6b.tar.bz2
mpv-6111f57ef9269b46e19ca6f1f20c8b61f2ea7a6b.tar.xz
player: expose pixel aspect ratio, bitrate and rotation value on tracks
-rw-r--r--DOCS/interface-changes.rst2
-rw-r--r--DOCS/man/input.rst12
-rw-r--r--player/command.c7
3 files changed, 21 insertions, 0 deletions
diff --git a/DOCS/interface-changes.rst b/DOCS/interface-changes.rst
index ff714f081c..55e8d910a2 100644
--- a/DOCS/interface-changes.rst
+++ b/DOCS/interface-changes.rst
@@ -91,6 +91,8 @@ Interface changes
- remove deprecated --chapter option
- deprecate --record-file
- add `--demuxer-cue-codepage`
+ - add ``track-list/N/demux-bitrate``, ``track-list/N/demux-rotation`` and
+ ``track-list/N/demux-par`` property
--- mpv 0.29.0 ---
- drop --opensles-sample-rate, as --audio-samplerate should be used if desired
- drop deprecated --videotoolbox-format, --ff-aid, --ff-vid, --ff-sid,
diff --git a/DOCS/man/input.rst b/DOCS/man/input.rst
index c187f791ad..224032cac3 100644
--- a/DOCS/man/input.rst
+++ b/DOCS/man/input.rst
@@ -2038,6 +2038,15 @@ Property list
``track-list/N/demux-fps``
Video FPS as indicated by the container. (Not always accurate.)
+ ``track-list/N/demux-bitrate``
+ Audio average bitrate, in bits per second. (Not always accurate.)
+
+ ``track-list/N/demux-rotation``
+ Video clockwise rotation metadata, in degrees.
+
+ ``track-list/N/demux-par``
+ Pixel aspect ratio.
+
``track-list/N/audio-channels`` (deprecated)
Deprecated alias for ``track-list/N/demux-channel-count``.
@@ -2079,6 +2088,9 @@ Property list
"demux-channels" MPV_FORMAT_STRING
"demux-samplerate" MPV_FORMAT_INT64
"demux-fps" MPV_FORMAT_DOUBLE
+ "demux-bitrate" MPV_FORMAT_INT64
+ "demux-rotation" MPV_FORMAT_INT64
+ "demux-par" MPV_FORMAT_DOUBLE
"audio-channels" MPV_FORMAT_INT64
"replaygain-track-peak" MPV_FORMAT_DOUBLE
"replaygain-track-gain" MPV_FORMAT_DOUBLE
diff --git a/player/command.c b/player/command.c
index dce810a077..79b3c1c8b4 100644
--- a/player/command.c
+++ b/player/command.c
@@ -2024,6 +2024,10 @@ static int get_track_entry(int item, int action, void *arg, void *ctx)
struct replaygain_data rg = has_rg ? *track->stream->codec->replaygain_data
: (struct replaygain_data){0};
+ double par = 0.0;
+ if (p.par_h)
+ par = p.par_w / (double) p.par_h;
+
struct m_sub_property props[] = {
{"id", SUB_PROP_INT(track->user_tid)},
{"type", SUB_PROP_STR(stream_type_name(track->type)),
@@ -2060,6 +2064,9 @@ static int get_track_entry(int item, int action, void *arg, void *ctx)
{"demux-samplerate", SUB_PROP_INT(p.samplerate),
.unavailable = !p.samplerate},
{"demux-fps", SUB_PROP_DOUBLE(p.fps), .unavailable = p.fps <= 0},
+ {"demux-bitrate", SUB_PROP_INT(p.bitrate), .unavailable = p.bitrate <= 0},
+ {"demux-rotation", SUB_PROP_INT(p.rotate), .unavailable = p.rotate <= 0},
+ {"demux-par", SUB_PROP_DOUBLE(par), .unavailable = par <= 0},
{"replaygain-track-peak", SUB_PROP_FLOAT(rg.track_peak),
.unavailable = !has_rg},
{"replaygain-track-gain", SUB_PROP_FLOAT(rg.track_gain),