Message ID | 20231007162503.1057-3-jamrial@gmail.com |
---|---|
State | New |
Headers | show |
Series | Container level frame cropping parameters | expand |
Quoting James Almer (2023-10-07 18:24:58) > Signed-off-by: James Almer <jamrial@gmail.com> > --- > libavformat/dump.c | 21 +++++++++++++++++++++ > 1 file changed, 21 insertions(+) > > diff --git a/libavformat/dump.c b/libavformat/dump.c > index c0868a1bb3..8986e7c32a 100644 > --- a/libavformat/dump.c > +++ b/libavformat/dump.c > @@ -427,6 +427,23 @@ static void dump_s12m_timecode(void *ctx, const AVStream *st, const AVPacketSide > } > } > > +static void dump_cropping(void *ctx, const AVPacketSideData *sd) > +{ > + uint32_t top, bottom, left, right; > + > + if (sd->size != sizeof(uint32_t) * 4) { > + av_log(ctx, AV_LOG_ERROR, "invalid data\n"); > + return; > + } > + > + top = AV_RL32(sd->data + 0); > + bottom = AV_RL32(sd->data + 4); > + left = AV_RL32(sd->data + 8); > + right = AV_RL32(sd->data + 12); > + > + av_log(ctx, AV_LOG_INFO, "%d/%d/%d/%d", left, right, top, bottom); %PRIu32? Also, some user indication of which is which would be nice, like l:5/r:1/...
diff --git a/libavformat/dump.c b/libavformat/dump.c index c0868a1bb3..8986e7c32a 100644 --- a/libavformat/dump.c +++ b/libavformat/dump.c @@ -427,6 +427,23 @@ static void dump_s12m_timecode(void *ctx, const AVStream *st, const AVPacketSide } } +static void dump_cropping(void *ctx, const AVPacketSideData *sd) +{ + uint32_t top, bottom, left, right; + + if (sd->size != sizeof(uint32_t) * 4) { + av_log(ctx, AV_LOG_ERROR, "invalid data\n"); + return; + } + + top = AV_RL32(sd->data + 0); + bottom = AV_RL32(sd->data + 4); + left = AV_RL32(sd->data + 8); + right = AV_RL32(sd->data + 12); + + av_log(ctx, AV_LOG_INFO, "%d/%d/%d/%d", left, right, top, bottom); +} + static void dump_sidedata(void *ctx, const AVStream *st, const char *indent) { int i; @@ -497,6 +514,10 @@ static void dump_sidedata(void *ctx, const AVStream *st, const char *indent) av_log(ctx, AV_LOG_INFO, "SMPTE ST 12-1:2014: "); dump_s12m_timecode(ctx, st, sd); break; + case AV_PKT_DATA_FRAME_CROPPING: + av_log(ctx, AV_LOG_INFO, "Frame cropping: "); + dump_cropping(ctx, sd); + break; default: av_log(ctx, AV_LOG_INFO, "unknown side data type %d " "(%"SIZE_SPECIFIER" bytes)", sd->type, sd->size);
Signed-off-by: James Almer <jamrial@gmail.com> --- libavformat/dump.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+)