avcodec/jpeglsenc: Remove redundant implicit checks

Now that the proper buffer size is calculated (and checked) before
allocating the buffer, it is known that the buffer always suffices.
So use the unchecked PutBit-API; and also use an unchecked bitstream
reader as we check ourselves.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
Andreas Rheinhardt 2021-04-29 15:31:46 +02:00
parent f249c32eff
commit 83cb9be1d2

View File

@ -25,6 +25,7 @@
* JPEG-LS encoder.
*/
#define UNCHECKED_BITSTREAM_READER 1
#include "avcodec.h"
#include "bytestream.h"
#include "encode.h"
@ -53,12 +54,6 @@ static inline void put_marker_byteu(PutByteContext *pb, enum JpegMarker code)
bytestream2_put_byteu(pb, code);
}
static inline void put_marker_byte(PutByteContext *pb, enum JpegMarker code)
{
bytestream2_put_byte(pb, 0xff);
bytestream2_put_byte(pb, code);
}
/**
* Encode error from regular symbol
*/
@ -408,15 +403,15 @@ static int encode_picture_ls(AVCodecContext *avctx, AVPacket *pkt,
while (get_bits_count(&gb) < size_in_bits) {
int v;
v = get_bits(&gb, 8);
bytestream2_put_byte(&pb, v);
bytestream2_put_byteu(&pb, v);
if (v == 0xFF) {
v = get_bits(&gb, 7);
bytestream2_put_byte(&pb, v);
bytestream2_put_byteu(&pb, v);
}
}
/* End of image */
put_marker_byte(&pb, EOI);
put_marker_byteu(&pb, EOI);
emms_c();