diff options
author | James Almer <jamrial@gmail.com> | 2019-04-15 17:48:55 -0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2019-04-16 20:32:12 -0300 |
commit | 3dc6adf326c8cd6c7fc830ccb8def8772835c676 (patch) | |
tree | 06e79866f1edcdb124a8e163c9b1a1d57ab60b33 /libavcodec/cbs_h2645.c | |
parent | 5006dcdf9af177444e3e0185640d7d84629e4215 (diff) | |
download | ffmpeg-3dc6adf326c8cd6c7fc830ccb8def8772835c676.tar.gz |
avcodec/cbs_h2645: add helper macros for signed values
Reviewed-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavcodec/cbs_h2645.c')
-rw-r--r-- | libavcodec/cbs_h2645.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/libavcodec/cbs_h2645.c b/libavcodec/cbs_h2645.c index e74f8dce81..a205293b3c 100644 --- a/libavcodec/cbs_h2645.c +++ b/libavcodec/cbs_h2645.c @@ -255,6 +255,8 @@ static int cbs_write_se_golomb(CodedBitstreamContext *ctx, PutBitContext *pbc, #define flag(name) u(1, name, 0, 1) #define ue(name, range_min, range_max) \ xue(name, current->name, range_min, range_max, 0) +#define i(width, name, range_min, range_max) \ + xi(width, name, current->name, range_min, range_max, 0) #define se(name, range_min, range_max) \ xse(name, current->name, range_min, range_max, 0) @@ -264,6 +266,8 @@ static int cbs_write_se_golomb(CodedBitstreamContext *ctx, PutBitContext *pbc, xu(1, name, current->name, 0, 1, subs, __VA_ARGS__) #define ues(name, range_min, range_max, subs, ...) \ xue(name, current->name, range_min, range_max, subs, __VA_ARGS__) +#define is(width, name, range_min, range_max, subs, ...) \ + xi(width, name, current->name, range_min, range_max, subs, __VA_ARGS__) #define ses(name, range_min, range_max, subs, ...) \ xse(name, current->name, range_min, range_max, subs, __VA_ARGS__) @@ -291,6 +295,13 @@ static int cbs_write_se_golomb(CodedBitstreamContext *ctx, PutBitContext *pbc, &value, range_min, range_max)); \ var = value; \ } while (0) +#define xi(width, name, var, range_min, range_max, subs, ...) do { \ + int32_t value = range_min; \ + CHECK(ff_cbs_read_signed(ctx, rw, width, #name, \ + SUBSCRIPTS(subs, __VA_ARGS__), \ + &value, range_min, range_max)); \ + var = value; \ + } while (0) #define xse(name, var, range_min, range_max, subs, ...) do { \ int32_t value = range_min; \ CHECK(cbs_read_se_golomb(ctx, rw, #name, \ @@ -338,6 +349,7 @@ static int cbs_h2645_read_more_rbsp_data(GetBitContext *gbc) #undef READWRITE #undef RWContext #undef xu +#undef xi #undef xue #undef xse #undef infer @@ -362,6 +374,12 @@ static int cbs_h2645_read_more_rbsp_data(GetBitContext *gbc) SUBSCRIPTS(subs, __VA_ARGS__), \ value, range_min, range_max)); \ } while (0) +#define xi(width, name, var, range_min, range_max, subs, ...) do { \ + int32_t value = var; \ + CHECK(ff_cbs_write_signed(ctx, rw, width, #name, \ + SUBSCRIPTS(subs, __VA_ARGS__), \ + value, range_min, range_max)); \ + } while (0) #define xse(name, var, range_min, range_max, subs, ...) do { \ int32_t value = var; \ CHECK(cbs_write_se_golomb(ctx, rw, #name, \ @@ -402,9 +420,11 @@ static int cbs_h2645_read_more_rbsp_data(GetBitContext *gbc) #undef READWRITE #undef RWContext #undef xu +#undef xi #undef xue #undef xse #undef u +#undef i #undef flag #undef ue #undef se |