/** number of bits used for VLC lookup - longest Huffman code is 9 */
#define VLC_BITS 9
-
-static const char* sample_message =
- "Please file a bug report following the instructions at "
- "http://libav.org/bugreports.html and include "
- "a sample of this file.";
-
typedef struct SubStream {
/// Set if a valid restart header has been read. Otherwise the substream cannot be decoded.
uint8_t restart_seen;
return AVERROR_INVALIDDATA;
}
if (mh.num_substreams > MAX_SUBSTREAMS) {
- av_log(m->avctx, AV_LOG_ERROR,
+ av_log_ask_for_sample(m->avctx,
"Number of substreams %d is larger than the maximum supported "
- "by the decoder. %s\n", mh.num_substreams, sample_message);
- return AVERROR_INVALIDDATA;
+ "by the decoder.\n", mh.num_substreams);
+ return AVERROR_PATCHWELCOME;
}
m->access_unit_size = mh.access_unit_size;
/* This should happen for TrueHD streams with >6 channels and MLP's noise
* type. It is not yet known if this is allowed. */
if (s->max_channel > MAX_MATRIX_CHANNEL_MLP && !s->noise_type) {
- av_log(m->avctx, AV_LOG_ERROR,
+ av_log_ask_for_sample(m->avctx,
"Number of channels %d is larger than the maximum supported "
- "by the decoder. %s\n", s->max_channel+2, sample_message);
- return AVERROR_INVALIDDATA;
+ "by the decoder.\n", s->max_channel + 2);
+ return AVERROR_PATCHWELCOME;
}
if (s->min_channel > s->max_channel) {
for (ch = 0; ch <= s->max_matrix_channel; ch++) {
int ch_assign = get_bits(gbp, 6);
if (ch_assign > s->max_matrix_channel) {
- av_log(m->avctx, AV_LOG_ERROR,
- "Assignment of matrix channel %d to invalid output channel %d. %s\n",
- ch, ch_assign, sample_message);
- return AVERROR_INVALIDDATA;
+ av_log_ask_for_sample(m->avctx,
+ "Assignment of matrix channel %d to invalid output channel %d.\n",
+ ch, ch_assign);
+ return AVERROR_PATCHWELCOME;
}
s->ch_assign[ch_assign] = ch;
}
if (s->data_check_present) {
expected_stream_pos = get_bits_count(gbp);
expected_stream_pos += get_bits(gbp, 16);
- av_log(m->avctx, AV_LOG_WARNING, "This file contains some features "
- "we have not tested yet. %s\n", sample_message);
+ av_log_ask_for_sample(m->avctx, "This file contains some features "
+ "we have not tested yet.\n");
}
if (s->blockpos + s->blocksize > m->access_unit_size) {