Message ID | 20220912234956.2879286-1-chemag@gmail.com |
---|---|
State | Accepted |
Commit | 7adf7502b8c5f7d47bef7474de25f6328fd9bb9a |
Headers | show |
Series | [FFmpeg-devel] doc/examples/extract_mvs: add motion information | expand |
Context | Check | Description |
---|---|---|
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
ping -Chema On Mon, Sep 12, 2022 at 4:50 PM Chema Gonzalez <chemag@gmail.com> wrote: > > Note that the motion information includes subpel motion information > > This was likely forgotten in 56bdf61baa04c4fd8d165f34499115ce0aa97c43. > > Tested: > ``` > $ make examples -j > ... > $ doc/examples/extract_mvs in.264 | head -40 | \ > csvcut -C framenum,source,flags |csvlook > | blockw | blockh | srcx | srcy | dstx | dsty | motion_x | motion_y | motion_scale | > | ------ | ------ | ----- | ---- | ----- | ---- | -------- | -------- | ------------ | > | 16 | 16 | 20 | 26 | 8 | 8 | 49 | 72 | 4 | > | 16 | 16 | 152 | 15 | 136 | 8 | 65 | 28 | 4 | > | 16 | 8 | 360 | 3 | 360 | 4 | 1 | -6 | 4 | > | 16 | 8 | 360 | 13 | 360 | 12 | -1 | 4 | 4 | > | 16 | 16 | 440 | 10 | 440 | 8 | 3 | 10 | 4 | > | 8 | 16 | 829 | 7 | 836 | 8 | -31 | -6 | 4 | > | 8 | 16 | 844 | 7 | 844 | 8 | -1 | -4 | 4 | > | 16 | 16 | 1,004 | 14 | 1,048 | 8 | -177 | 24 | 4 | > | 16 | 16 | 1,096 | 8 | 1,096 | 8 | -1 | 0 | 4 | > | 16 | 8 | 1,417 | 24 | 1,416 | 4 | 7 | 82 | 4 | > | 16 | 8 | 1,416 | 13 | 1,416 | 12 | 0 | 6 | 4 | > | 16 | 8 | 87 | 20 | 88 | 20 | -7 | 0 | 4 | > | 16 | 8 | 99 | 44 | 88 | 28 | 45 | 66 | 4 | > ... > ``` > > Also: > ``` > $ make fate -j > ... > ``` > --- > doc/examples/extract_mvs.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/doc/examples/extract_mvs.c b/doc/examples/extract_mvs.c > index cc1311da91..b80ba26bb7 100644 > --- a/doc/examples/extract_mvs.c > +++ b/doc/examples/extract_mvs.c > @@ -61,10 +61,11 @@ static int decode_packet(const AVPacket *pkt) > const AVMotionVector *mvs = (const AVMotionVector *)sd->data; > for (i = 0; i < sd->size / sizeof(*mvs); i++) { > const AVMotionVector *mv = &mvs[i]; > - printf("%d,%2d,%2d,%2d,%4d,%4d,%4d,%4d,0x%"PRIx64"\n", > + printf("%d,%2d,%2d,%2d,%4d,%4d,%4d,%4d,0x%"PRIx64",%4d,%4d,%4d\n", > video_frame_count, mv->source, > mv->w, mv->h, mv->src_x, mv->src_y, > - mv->dst_x, mv->dst_y, mv->flags); > + mv->dst_x, mv->dst_y, mv->flags, > + mv->motion_x, mv->motion_y, mv->motion_scale); > } > } > av_frame_unref(frame); > @@ -166,7 +167,7 @@ int main(int argc, char **argv) > goto end; > } > > - printf("framenum,source,blockw,blockh,srcx,srcy,dstx,dsty,flags\n"); > + printf("framenum,source,blockw,blockh,srcx,srcy,dstx,dsty,flags,motion_x,motion_y,motion_scale\n"); > > /* read frames from the file */ > while (av_read_frame(fmt_ctx, pkt) >= 0) { > -- > 2.37.3 >
On Mon, Sep 12, 2022 at 04:49:56PM -0700, Chema Gonzalez wrote: > Note that the motion information includes subpel motion information > > This was likely forgotten in 56bdf61baa04c4fd8d165f34499115ce0aa97c43. > > Tested: > ``` > $ make examples -j > ... > $ doc/examples/extract_mvs in.264 | head -40 | \ > csvcut -C framenum,source,flags |csvlook > | blockw | blockh | srcx | srcy | dstx | dsty | motion_x | motion_y | motion_scale | > | ------ | ------ | ----- | ---- | ----- | ---- | -------- | -------- | ------------ | > | 16 | 16 | 20 | 26 | 8 | 8 | 49 | 72 | 4 | > | 16 | 16 | 152 | 15 | 136 | 8 | 65 | 28 | 4 | > | 16 | 8 | 360 | 3 | 360 | 4 | 1 | -6 | 4 | > | 16 | 8 | 360 | 13 | 360 | 12 | -1 | 4 | 4 | > | 16 | 16 | 440 | 10 | 440 | 8 | 3 | 10 | 4 | > | 8 | 16 | 829 | 7 | 836 | 8 | -31 | -6 | 4 | > | 8 | 16 | 844 | 7 | 844 | 8 | -1 | -4 | 4 | > | 16 | 16 | 1,004 | 14 | 1,048 | 8 | -177 | 24 | 4 | > | 16 | 16 | 1,096 | 8 | 1,096 | 8 | -1 | 0 | 4 | > | 16 | 8 | 1,417 | 24 | 1,416 | 4 | 7 | 82 | 4 | > | 16 | 8 | 1,416 | 13 | 1,416 | 12 | 0 | 6 | 4 | > | 16 | 8 | 87 | 20 | 88 | 20 | -7 | 0 | 4 | > | 16 | 8 | 99 | 44 | 88 | 28 | 45 | 66 | 4 | > ... > ``` > > Also: > ``` > $ make fate -j > ... > ``` > --- > doc/examples/extract_mvs.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) will apply thx [...]
diff --git a/doc/examples/extract_mvs.c b/doc/examples/extract_mvs.c index cc1311da91..b80ba26bb7 100644 --- a/doc/examples/extract_mvs.c +++ b/doc/examples/extract_mvs.c @@ -61,10 +61,11 @@ static int decode_packet(const AVPacket *pkt) const AVMotionVector *mvs = (const AVMotionVector *)sd->data; for (i = 0; i < sd->size / sizeof(*mvs); i++) { const AVMotionVector *mv = &mvs[i]; - printf("%d,%2d,%2d,%2d,%4d,%4d,%4d,%4d,0x%"PRIx64"\n", + printf("%d,%2d,%2d,%2d,%4d,%4d,%4d,%4d,0x%"PRIx64",%4d,%4d,%4d\n", video_frame_count, mv->source, mv->w, mv->h, mv->src_x, mv->src_y, - mv->dst_x, mv->dst_y, mv->flags); + mv->dst_x, mv->dst_y, mv->flags, + mv->motion_x, mv->motion_y, mv->motion_scale); } } av_frame_unref(frame); @@ -166,7 +167,7 @@ int main(int argc, char **argv) goto end; } - printf("framenum,source,blockw,blockh,srcx,srcy,dstx,dsty,flags\n"); + printf("framenum,source,blockw,blockh,srcx,srcy,dstx,dsty,flags,motion_x,motion_y,motion_scale\n"); /* read frames from the file */ while (av_read_frame(fmt_ctx, pkt) >= 0) {