summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2023-01-15 10:41:21 +0100
committerAnton Khirnov <anton@khirnov.net>2023-01-18 09:41:32 +0100
commitba36e6ed5213571162c7ef4db6fab3c0c2090212 (patch)
tree913a33911ded22f86952aade05240c71fb4dd570
parent0b33310cd02aa8e33b2fc1613d13cadb83bb7da8 (diff)
lavc/tests/bitstream: test bits_*_signed_nz and bits_peek_signed*
-rw-r--r--libavcodec/tests/bitstream_template.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/libavcodec/tests/bitstream_template.c b/libavcodec/tests/bitstream_template.c
index 13e92a31c6..ef59845154 100644
--- a/libavcodec/tests/bitstream_template.c
+++ b/libavcodec/tests/bitstream_template.c
@@ -42,6 +42,7 @@ enum Op {
OP_READ_63,
OP_READ_64,
OP_READ_SIGNED,
+ OP_READ_SIGNED_NZ,
OP_APPLY_SIGN,
OP_ALIGN,
OP_NB,
@@ -58,7 +59,7 @@ int main(int argc, char **argv)
uint32_t random_seed;
uint64_t val, val1;
- int32_t sval;
+ int32_t sval, sval1;
unsigned count;
/* generate random input, using a given or random seed */
@@ -130,10 +131,26 @@ int main(int argc, char **argv)
break;
case OP_READ_SIGNED:
count = av_lfg_get(&lfg) % FFMIN(33, bits_left(&bc) + 1);
+ sval1 = bits_peek_signed(&bc, count);
sval = bits_read_signed(&bc, count);
fprintf(stderr, "%d read_signed %u: %"PRId32"\n", bits_tell(&bc) - count, count, sval);
+ av_assert0(sval == sval1);
+
+ if (count == 32) put_bits32(&pb, sval);
+ else put_sbits(&pb, count, sval);
+ break;
+ case OP_READ_SIGNED_NZ:
+ count = av_lfg_get(&lfg) % FFMIN(33, bits_left(&bc) + 1);
+ count = FFMAX(count, 1);
+ sval1 = bits_peek_signed_nz(&bc, count);
+ sval = bits_read_signed_nz(&bc, count);
+
+ fprintf(stderr, "%d read_signed_nz %u: %"PRId32"\n", bits_tell(&bc) - count, count, sval);
+
+ av_assert0(sval == sval1);
+
if (count == 32) put_bits32(&pb, sval);
else put_sbits(&pb, count, sval);
break;