On 3/12/2017 5:06 PM, Michael Niedermayer wrote: > Using the same type across platforms is more robust and avoids platform > specific issues from differences in range. > Also fixed point integers are on a semantical level not size_t
LGTM. You could even use uint32_t as it's more than enough for these fields, which are all explicitly 0.32 fixed point values as mentioned in the doxy. Maybe a minor/micro bump? Even if doesn't really affect anything since it's barely a five days old addition, it's still an API/ABI break and it would be nice to signal it in some way. > > Signed-off-by: Michael Niedermayer <mich...@niedermayer.cc> > --- > ffprobe.c | 2 +- > libavformat/dump.c | 6 +++--- > libavutil/spherical.c | 10 +++++----- > libavutil/spherical.h | 16 ++++++++-------- > 4 files changed, 17 insertions(+), 17 deletions(-) > > diff --git a/ffprobe.c b/ffprobe.c > index b104390990..a73566b7a3 100644 > --- a/ffprobe.c > +++ b/ffprobe.c > @@ -1793,7 +1793,7 @@ static void print_pkt_side_data(WriterContext *w, > print_str("projection", "cubemap"); > print_int("padding", spherical->padding); > } else if (spherical->projection == > AV_SPHERICAL_EQUIRECTANGULAR_TILE) { > - size_t l, t, r, b; > + uint64_t l, t, r, b; > av_spherical_tile_bounds(spherical, par->width, par->height, > &l, &t, &r, &b); > print_str("projection", "tiled equirectangular"); > diff --git a/libavformat/dump.c b/libavformat/dump.c > index 505d572301..0a1208a375 100644 > --- a/libavformat/dump.c > +++ b/libavformat/dump.c > @@ -370,12 +370,12 @@ static void dump_spherical(void *ctx, AVCodecParameters > *par, AVPacketSideData * > av_log(ctx, AV_LOG_INFO, "(%f/%f/%f) ", yaw, pitch, roll); > > if (spherical->projection == AV_SPHERICAL_EQUIRECTANGULAR_TILE) { > - size_t l, t, r, b; > + uint64_t l, t, r, b; > av_spherical_tile_bounds(spherical, par->width, par->height, > &l, &t, &r, &b); > - av_log(ctx, AV_LOG_INFO, "[%zu, %zu, %zu, %zu] ", l, t, r, b); > + av_log(ctx, AV_LOG_INFO, "[%"PRIu64", %"PRIu64", %"PRIu64", > %"PRIu64"] ", l, t, r, b); > } else if (spherical->projection == AV_SPHERICAL_CUBEMAP) { > - av_log(ctx, AV_LOG_INFO, "[pad %zu] ", spherical->padding); > + av_log(ctx, AV_LOG_INFO, "[pad %"PRIu64"] ", spherical->padding); > } > } > > diff --git a/libavutil/spherical.c b/libavutil/spherical.c > index 0ca2dd367a..1e9805c2a5 100644 > --- a/libavutil/spherical.c > +++ b/libavutil/spherical.c > @@ -34,14 +34,14 @@ AVSphericalMapping *av_spherical_alloc(size_t *size) > } > > void av_spherical_tile_bounds(AVSphericalMapping *map, > - size_t width, size_t height, > - size_t *left, size_t *top, > - size_t *right, size_t *bottom) > + uint64_t width, uint64_t height, > + uint64_t *left, uint64_t*top, > + uint64_t *right, uint64_t *bottom) > { > /* conversion from 0.32 coordinates to pixels */ > - uint64_t orig_width = (uint64_t) width * UINT32_MAX / > + uint64_t orig_width = width * UINT32_MAX / > (UINT32_MAX - map->bound_right - > map->bound_left); > - uint64_t orig_height = (uint64_t) height * UINT32_MAX / > + uint64_t orig_height = height * UINT32_MAX / > (UINT32_MAX - map->bound_bottom - map->bound_top); > > /* add a (UINT32_MAX - 1) to round up integer division */ > diff --git a/libavutil/spherical.h b/libavutil/spherical.h > index db9bdc0be5..92a82199b2 100644 > --- a/libavutil/spherical.h > +++ b/libavutil/spherical.h > @@ -164,10 +164,10 @@ typedef struct AVSphericalMapping { > * projection type (@ref AV_SPHERICAL_EQUIRECTANGULAR_TILE), > * and should be ignored in all other cases. > */ > - size_t bound_left; ///< Distance from the left edge > - size_t bound_top; ///< Distance from the top edge > - size_t bound_right; ///< Distance from the right edge > - size_t bound_bottom; ///< Distance from the bottom edge > + uint64_t bound_left; ///< Distance from the left edge > + uint64_t bound_top; ///< Distance from the top edge > + uint64_t bound_right; ///< Distance from the right edge > + uint64_t bound_bottom; ///< Distance from the bottom edge uint32_t is imo more than enough > /** > * @} > */ > @@ -179,7 +179,7 @@ typedef struct AVSphericalMapping { > * (@ref AV_SPHERICAL_CUBEMAP), and should be ignored in all other > * cases. > */ > - size_t padding; > + uint64_t padding; > } AVSphericalMapping; > > /** > @@ -203,9 +203,9 @@ AVSphericalMapping *av_spherical_alloc(size_t *size); > * @param bottom Pixels from the bottom edge. > */ > void av_spherical_tile_bounds(AVSphericalMapping *map, > - size_t width, size_t height, > - size_t *left, size_t *top, > - size_t *right, size_t *bottom); > + uint64_t width, uint64_t height, > + uint64_t *left, uint64_t *top, > + uint64_t *right, uint64_t *bottom); > /** > * @} > * @} > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel