diff options
-rw-r--r-- | DOCS/man/en/input.rst | 6 | ||||
-rwxr-xr-x | TOOLS/mpv_identify.sh | 2 | ||||
-rw-r--r-- | core/command.c | 24 |
3 files changed, 30 insertions, 2 deletions
diff --git a/DOCS/man/en/input.rst b/DOCS/man/en/input.rst index 221d6cbfba..9dda58adbd 100644 --- a/DOCS/man/en/input.rst +++ b/DOCS/man/en/input.rst @@ -309,9 +309,11 @@ vsync x see ``--vsync`` video-format video format (string) video-codec video codec selected for decoding video-bitrate video bitrate -width video width +width video width (container or decoded size) height video height -fps FPS (may contain bogus values) +fps container FPS (may contain bogus values) +dwidth video width (after filters and aspect scaling) +dheight video height aspect x video aspect video x current video track (similar to ``--vid``) program x switch TS program (write-only) diff --git a/TOOLS/mpv_identify.sh b/TOOLS/mpv_identify.sh index b3bc0481ef..cd006c5db5 100755 --- a/TOOLS/mpv_identify.sh +++ b/TOOLS/mpv_identify.sh @@ -86,6 +86,8 @@ __midentify__allprops=" fps width height + dwidth + dheight sub " diff --git a/core/command.c b/core/command.c index 1d6e0c976d..58079d63f1 100644 --- a/core/command.c +++ b/core/command.c @@ -1143,6 +1143,28 @@ static int mp_property_height(m_option_t *prop, int action, void *arg, return m_property_int_ro(prop, action, arg, mpctx->sh_video->disp_h); } +static int property_vo_wh(m_option_t *prop, int action, void *arg, + MPContext *mpctx, bool get_w) +{ + struct vo *vo = mpctx->video_out; + if (!mpctx->sh_video && !vo || !vo->hasframe) + return M_PROPERTY_UNAVAILABLE; + return m_property_int_ro(prop, action, arg, + get_w ? vo->aspdat.prew : vo->aspdat.preh); +} + +static int mp_property_dwidth(m_option_t *prop, int action, void *arg, + MPContext *mpctx) +{ + return property_vo_wh(prop, action, arg, mpctx, true); +} + +static int mp_property_dheight(m_option_t *prop, int action, void *arg, + MPContext *mpctx) +{ + return property_vo_wh(prop, action, arg, mpctx, false); +} + /// Video fps (RO) static int mp_property_fps(m_option_t *prop, int action, void *arg, MPContext *mpctx) @@ -1408,6 +1430,8 @@ static const m_option_t mp_properties[] = { 0, 0, 0, NULL }, { "height", mp_property_height, CONF_TYPE_INT, 0, 0, 0, NULL }, + { "dwidth", mp_property_dwidth, CONF_TYPE_INT }, + { "dheight", mp_property_dheight, CONF_TYPE_INT }, { "fps", mp_property_fps, CONF_TYPE_FLOAT, 0, 0, 0, NULL }, { "aspect", mp_property_aspect, CONF_TYPE_FLOAT, |