mirror of https://git.ffmpeg.org/ffmpeg.git
doc/examples/extract_mvs: add motion information
Note that the motion information includes subpel motion information
This was likely forgotten in 56bdf61baa
.
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
...
```
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
793282adc2
commit
7adf7502b8
|
@ -61,10 +61,11 @@ static int decode_packet(const AVPacket *pkt)
|
||||||
const AVMotionVector *mvs = (const AVMotionVector *)sd->data;
|
const AVMotionVector *mvs = (const AVMotionVector *)sd->data;
|
||||||
for (i = 0; i < sd->size / sizeof(*mvs); i++) {
|
for (i = 0; i < sd->size / sizeof(*mvs); i++) {
|
||||||
const AVMotionVector *mv = &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,
|
video_frame_count, mv->source,
|
||||||
mv->w, mv->h, mv->src_x, mv->src_y,
|
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);
|
av_frame_unref(frame);
|
||||||
|
@ -166,7 +167,7 @@ int main(int argc, char **argv)
|
||||||
goto end;
|
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 */
|
/* read frames from the file */
|
||||||
while (av_read_frame(fmt_ctx, pkt) >= 0) {
|
while (av_read_frame(fmt_ctx, pkt) >= 0) {
|
||||||
|
|
Loading…
Reference in New Issue