[FFmpeg-cvslog] lavc/tests/bitstream: test bits_*_signed_nz and bits_peek_signed*

Anton Khirnov git at videolan.org
Wed Jan 18 10:46:53 EET 2023


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Sun Jan 15 10:41:21 2023 +0100| [ba36e6ed5213571162c7ef4db6fab3c0c2090212] | committer: Anton Khirnov

lavc/tests/bitstream: test bits_*_signed_nz and bits_peek_signed*

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ba36e6ed5213571162c7ef4db6fab3c0c2090212
---

 libavcodec/tests/bitstream_template.c | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

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;



More information about the ffmpeg-cvslog mailing list