avcodec/huffman: Use logcontext instead of AVCodecContext

Said AVCodecContext is only used for logging; it furthermore avoids
an avcodec.h inclusion.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
pull/364/head
Andreas Rheinhardt 3 years ago
parent a449fb35ca
commit b75dc8bd70
  1. 7
      libavcodec/huffman.c
  2. 5
      libavcodec/huffman.h

@ -29,7 +29,6 @@
#include "libavutil/qsort.h"
#include "libavutil/common.h"
#include "avcodec.h"
#include "huffman.h"
#include "vlc.h"
@ -154,7 +153,7 @@ static int build_huff_tree(VLC *vlc, Node *nodes, int head, int flags, int nb_bi
* nodes size must be 2*nb_codes
* first nb_codes nodes.count must be set
*/
int ff_huff_build_tree(AVCodecContext *avctx, VLC *vlc, int nb_codes, int nb_bits,
int ff_huff_build_tree(void *logctx, VLC *vlc, int nb_codes, int nb_bits,
Node *nodes, HuffCmp cmp, int flags)
{
int i, j;
@ -168,7 +167,7 @@ int ff_huff_build_tree(AVCodecContext *avctx, VLC *vlc, int nb_codes, int nb_bit
}
if (sum >> 31) {
av_log(avctx, AV_LOG_ERROR,
av_log(logctx, AV_LOG_ERROR,
"Too high symbol frequencies. "
"Tree construction is not possible\n");
return -1;
@ -193,7 +192,7 @@ int ff_huff_build_tree(AVCodecContext *avctx, VLC *vlc, int nb_codes, int nb_bit
cur_node++;
}
if (build_huff_tree(vlc, nodes, nb_codes * 2 - 2, flags, nb_bits) < 0) {
av_log(avctx, AV_LOG_ERROR, "Error building tree\n");
av_log(logctx, AV_LOG_ERROR, "Error building tree\n");
return -1;
}
return 0;

@ -26,7 +26,8 @@
#ifndef AVCODEC_HUFFMAN_H
#define AVCODEC_HUFFMAN_H
#include "avcodec.h"
#include <stdint.h>
#include "vlc.h"
typedef struct Node {
@ -40,7 +41,7 @@ typedef struct Node {
#define FF_HUFFMAN_BITS 10
typedef int (*HuffCmp)(const void *va, const void *vb);
int ff_huff_build_tree(AVCodecContext *avctx, VLC *vlc, int nb_codes, int nb_bits,
int ff_huff_build_tree(void *logctx, VLC *vlc, int nb_codes, int nb_bits,
Node *nodes, HuffCmp cmp, int flags);
int ff_huff_gen_len_table(uint8_t *dst, const uint64_t *stats, int n, int skip0);

Loading…
Cancel
Save