command: export VO video width/height as properties

Add new properties "dwidth" and "dheight", which contain the video
size as known by the VO (not necessarily what the VO makes out of them,
i.e. without window scaling and panscan).
This commit is contained in:
wm4 2013-03-25 21:25:11 +01:00
parent 05e918be02
commit d080d1d39a
3 changed files with 30 additions and 2 deletions

View File

@ -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)

View File

@ -86,6 +86,8 @@ __midentify__allprops="
fps
width
height
dwidth
dheight
sub
"

View File

@ -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,