mirror of https://git.ffmpeg.org/ffmpeg.git
avcodec/mjpegenc: Simplify by moving assert into ff_mjpeg_encode_huffman_close()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
3e1507a954
commit
ce6e7a2db1
|
@ -444,22 +444,18 @@ static void ff_mjpeg_build_optimal_huffman(MJpegContext *m)
|
||||||
ff_mjpeg_encode_huffman_increment(ctx[table_id], code);
|
ff_mjpeg_encode_huffman_increment(ctx[table_id], code);
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = ff_mjpeg_encode_huffman_close(&dc_luminance_ctx,
|
ff_mjpeg_encode_huffman_close(&dc_luminance_ctx,
|
||||||
m->bits_dc_luminance,
|
m->bits_dc_luminance,
|
||||||
m->val_dc_luminance, 12);
|
m->val_dc_luminance, 12);
|
||||||
av_assert0(!ret);
|
ff_mjpeg_encode_huffman_close(&dc_chrominance_ctx,
|
||||||
ret = ff_mjpeg_encode_huffman_close(&dc_chrominance_ctx,
|
m->bits_dc_chrominance,
|
||||||
m->bits_dc_chrominance,
|
m->val_dc_chrominance, 12);
|
||||||
m->val_dc_chrominance, 12);
|
ff_mjpeg_encode_huffman_close(&ac_luminance_ctx,
|
||||||
av_assert0(!ret);
|
m->bits_ac_luminance,
|
||||||
ret = ff_mjpeg_encode_huffman_close(&ac_luminance_ctx,
|
m->val_ac_luminance, 256);
|
||||||
m->bits_ac_luminance,
|
ff_mjpeg_encode_huffman_close(&ac_chrominance_ctx,
|
||||||
m->val_ac_luminance, 256);
|
m->bits_ac_chrominance,
|
||||||
av_assert0(!ret);
|
m->val_ac_chrominance, 256);
|
||||||
ret = ff_mjpeg_encode_huffman_close(&ac_chrominance_ctx,
|
|
||||||
m->bits_ac_chrominance,
|
|
||||||
m->val_ac_chrominance, 256);
|
|
||||||
av_assert0(!ret);
|
|
||||||
|
|
||||||
ff_mjpeg_build_huffman_codes(m->huff_size_dc_luminance,
|
ff_mjpeg_build_huffman_codes(m->huff_size_dc_luminance,
|
||||||
m->huff_code_dc_luminance,
|
m->huff_code_dc_luminance,
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include "libavutil/avassert.h"
|
||||||
#include "libavutil/common.h"
|
#include "libavutil/common.h"
|
||||||
#include "libavutil/error.h"
|
#include "libavutil/error.h"
|
||||||
#include "libavutil/qsort.h"
|
#include "libavutil/qsort.h"
|
||||||
|
@ -154,10 +155,9 @@ void ff_mjpeg_encode_huffman_init(MJpegEncHuffmanContext *s)
|
||||||
* @param bits output array where the ith character represents how many input values have i length encoding
|
* @param bits output array where the ith character represents how many input values have i length encoding
|
||||||
* @param val output array of input values sorted by their encoded length
|
* @param val output array of input values sorted by their encoded length
|
||||||
* @param max_nval maximum number of distinct input values
|
* @param max_nval maximum number of distinct input values
|
||||||
* @return int Return code, 0 if succeeded.
|
|
||||||
*/
|
*/
|
||||||
int ff_mjpeg_encode_huffman_close(MJpegEncHuffmanContext *s, uint8_t bits[17],
|
void ff_mjpeg_encode_huffman_close(MJpegEncHuffmanContext *s, uint8_t bits[17],
|
||||||
uint8_t val[], int max_nval)
|
uint8_t val[], int max_nval)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
int nval = 0;
|
int nval = 0;
|
||||||
|
@ -167,9 +167,7 @@ int ff_mjpeg_encode_huffman_close(MJpegEncHuffmanContext *s, uint8_t bits[17],
|
||||||
for (i = 0; i < 256; i++) {
|
for (i = 0; i < 256; i++) {
|
||||||
if (s->val_count[i]) nval++;
|
if (s->val_count[i]) nval++;
|
||||||
}
|
}
|
||||||
if (nval > max_nval) {
|
av_assert0 (nval <= max_nval);
|
||||||
return AVERROR(EINVAL);
|
|
||||||
}
|
|
||||||
|
|
||||||
j = 0;
|
j = 0;
|
||||||
for (i = 0; i < 256; i++) {
|
for (i = 0; i < 256; i++) {
|
||||||
|
@ -189,6 +187,4 @@ int ff_mjpeg_encode_huffman_close(MJpegEncHuffmanContext *s, uint8_t bits[17],
|
||||||
val[i] = distincts[i].code;
|
val[i] = distincts[i].code;
|
||||||
bits[distincts[i].length]++;
|
bits[distincts[i].length]++;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,9 +38,9 @@ static inline void ff_mjpeg_encode_huffman_increment(MJpegEncHuffmanContext *s,
|
||||||
{
|
{
|
||||||
s->val_count[val]++;
|
s->val_count[val]++;
|
||||||
}
|
}
|
||||||
int ff_mjpeg_encode_huffman_close(MJpegEncHuffmanContext *s,
|
void ff_mjpeg_encode_huffman_close(MJpegEncHuffmanContext *s,
|
||||||
uint8_t bits[17], uint8_t val[],
|
uint8_t bits[17], uint8_t val[],
|
||||||
int max_nval);
|
int max_nval);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue