Commit 18884f15 authored by Michael Niedermayer's avatar Michael Niedermayer

Merge commit '0a7005be'

* commit '0a7005be':
  rtpdec_xiph: fix function return type
  smjpeg: fix type of 'ret' variable in smjpeg_read_packet()
  mpegvideo: remove write-only variable
  Use proper return values in case of missing features
  fate: add avstring test
  rangecoder-test: Set error message log level to error, instead of debug

Conflicts:
	libavcodec/aacdec.c
	libavcodec/amrnbdec.c
	libavcodec/mpegvideo.c
Merged-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parents c55bebe2 0a7005be
...@@ -62,7 +62,7 @@ static int aac_adtstoasc_filter(AVBitStreamFilterContext *bsfc, ...@@ -62,7 +62,7 @@ static int aac_adtstoasc_filter(AVBitStreamFilterContext *bsfc,
if (!hdr.crc_absent && hdr.num_aac_frames > 1) { if (!hdr.crc_absent && hdr.num_aac_frames > 1) {
av_log_missing_feature(avctx, "Multiple RDBs per frame with CRC", 0); av_log_missing_feature(avctx, "Multiple RDBs per frame with CRC", 0);
return -1; return AVERROR_PATCHWELCOME;
} }
buf += AAC_ADTS_HEADER_SIZE + 2*!hdr.crc_absent; buf += AAC_ADTS_HEADER_SIZE + 2*!hdr.crc_absent;
...@@ -75,7 +75,7 @@ static int aac_adtstoasc_filter(AVBitStreamFilterContext *bsfc, ...@@ -75,7 +75,7 @@ static int aac_adtstoasc_filter(AVBitStreamFilterContext *bsfc,
init_get_bits(&gb, buf, buf_size * 8); init_get_bits(&gb, buf, buf_size * 8);
if (get_bits(&gb, 3) != 5) { if (get_bits(&gb, 3) != 5) {
av_log_missing_feature(avctx, "PCE based channel configuration, where the PCE is not the first syntax element", 0); av_log_missing_feature(avctx, "PCE based channel configuration, where the PCE is not the first syntax element", 0);
return -1; return AVERROR_PATCHWELCOME;
} }
init_put_bits(&pb, pce_data, MAX_PCE_SIZE); init_put_bits(&pb, pce_data, MAX_PCE_SIZE);
pce_size = avpriv_copy_pce_data(&pb, &gb)/8; pce_size = avpriv_copy_pce_data(&pb, &gb)/8;
......
...@@ -666,7 +666,7 @@ static int decode_ga_specific_config(AACContext *ac, AVCodecContext *avctx, ...@@ -666,7 +666,7 @@ static int decode_ga_specific_config(AACContext *ac, AVCodecContext *avctx,
if (get_bits1(gb)) { // frameLengthFlag if (get_bits1(gb)) { // frameLengthFlag
av_log_missing_feature(avctx, "960/120 MDCT window", 1); av_log_missing_feature(avctx, "960/120 MDCT window", 1);
return -1; return AVERROR_PATCHWELCOME;
} }
if (get_bits1(gb)) // dependsOnCoreCoder if (get_bits1(gb)) // dependsOnCoreCoder
...@@ -1670,7 +1670,7 @@ static int decode_ics(AACContext *ac, SingleChannelElement *sce, ...@@ -1670,7 +1670,7 @@ static int decode_ics(AACContext *ac, SingleChannelElement *sce,
return -1; return -1;
if (get_bits1(gb)) { if (get_bits1(gb)) {
av_log_missing_feature(ac->avctx, "SSR", 1); av_log_missing_feature(ac->avctx, "SSR", 1);
return -1; return AVERROR_PATCHWELCOME;
} }
} }
...@@ -2730,7 +2730,7 @@ static int latm_decode_audio_specific_config(struct LATMContext *latmctx, ...@@ -2730,7 +2730,7 @@ static int latm_decode_audio_specific_config(struct LATMContext *latmctx,
if (config_start_bit % 8) { if (config_start_bit % 8) {
av_log_missing_feature(latmctx->aac_ctx.avctx, av_log_missing_feature(latmctx->aac_ctx.avctx,
"Non-byte-aligned audio-specific config", 1); "Non-byte-aligned audio-specific config", 1);
return AVERROR_INVALIDDATA; return AVERROR_PATCHWELCOME;
} }
if (asclen <= 0) if (asclen <= 0)
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;
......
...@@ -876,7 +876,7 @@ static int decode_audio_block(AC3DecodeContext *s, int blk) ...@@ -876,7 +876,7 @@ static int decode_audio_block(AC3DecodeContext *s, int blk)
if (s->eac3 && get_bits1(gbc)) { if (s->eac3 && get_bits1(gbc)) {
/* TODO: parse enhanced coupling strategy info */ /* TODO: parse enhanced coupling strategy info */
av_log_missing_feature(s->avctx, "Enhanced coupling", 1); av_log_missing_feature(s->avctx, "Enhanced coupling", 1);
return -1; return AVERROR_PATCHWELCOME;
} }
/* determine which channels are coupled */ /* determine which channels are coupled */
......
...@@ -427,9 +427,9 @@ static int check_specific_config(ALSDecContext *ctx) ...@@ -427,9 +427,9 @@ static int check_specific_config(ALSDecContext *ctx)
} \ } \
} }
MISSING_ERR(sconf->floating, "Floating point decoding", -1); MISSING_ERR(sconf->floating, "Floating point decoding", AVERROR_PATCHWELCOME);
MISSING_ERR(sconf->rlslms, "Adaptive RLS-LMS prediction", -1); MISSING_ERR(sconf->rlslms, "Adaptive RLS-LMS prediction", AVERROR_PATCHWELCOME);
MISSING_ERR(sconf->chan_sort, "Channel sorting", 0); MISSING_ERR(sconf->chan_sort, "Channel sorting", 0);
return error; return error;
} }
......
...@@ -969,7 +969,7 @@ static int amrnb_decode_frame(AVCodecContext *avctx, void *data, ...@@ -969,7 +969,7 @@ static int amrnb_decode_frame(AVCodecContext *avctx, void *data,
if (p->cur_frame_mode == MODE_DTX) { if (p->cur_frame_mode == MODE_DTX) {
av_log_missing_feature(avctx, "dtx mode", 0); av_log_missing_feature(avctx, "dtx mode", 0);
av_log(avctx, AV_LOG_INFO, "Note: libopencore_amrnb supports dtx\n"); av_log(avctx, AV_LOG_INFO, "Note: libopencore_amrnb supports dtx\n");
return -1; return AVERROR_PATCHWELCOME;
} }
if (p->cur_frame_mode == MODE_12k2) { if (p->cur_frame_mode == MODE_12k2) {
......
...@@ -1130,7 +1130,7 @@ static int amrwb_decode_frame(AVCodecContext *avctx, void *data, ...@@ -1130,7 +1130,7 @@ static int amrwb_decode_frame(AVCodecContext *avctx, void *data,
if (ctx->fr_cur_mode == MODE_SID) { /* Comfort noise frame */ if (ctx->fr_cur_mode == MODE_SID) { /* Comfort noise frame */
av_log_missing_feature(avctx, "SID mode", 1); av_log_missing_feature(avctx, "SID mode", 1);
return -1; return AVERROR_PATCHWELCOME;
} }
ff_amr_bit_reorder((uint16_t *) &ctx->frame, sizeof(AMRWBFrame), ff_amr_bit_reorder((uint16_t *) &ctx->frame, sizeof(AMRWBFrame),
......
...@@ -322,7 +322,7 @@ int ff_eac3_parse_header(AC3DecodeContext *s) ...@@ -322,7 +322,7 @@ int ff_eac3_parse_header(AC3DecodeContext *s)
handled like AC-3 DolbyNet, but we cannot be sure until we have a handled like AC-3 DolbyNet, but we cannot be sure until we have a
sample which utilizes this feature. */ sample which utilizes this feature. */
av_log_missing_feature(s->avctx, "Reduced sampling rates", 1); av_log_missing_feature(s->avctx, "Reduced sampling rates", 1);
return -1; return AVERROR_PATCHWELCOME;
} }
skip_bits(gbc, 5); // skip bitstream id skip_bits(gbc, 5); // skip bitstream id
......
...@@ -370,7 +370,7 @@ static inline int decode_subframe(FLACContext *s, int channel) ...@@ -370,7 +370,7 @@ static inline int decode_subframe(FLACContext *s, int channel)
} }
if (bps > 32) { if (bps > 32) {
av_log_missing_feature(s->avctx, "decorrelated bit depth > 32", 0); av_log_missing_feature(s->avctx, "decorrelated bit depth > 32", 0);
return -1; return AVERROR_PATCHWELCOME;
} }
//FIXME use av_log2 for types //FIXME use av_log2 for types
......
...@@ -134,7 +134,7 @@ static av_cold int mpc8_decode_init(AVCodecContext * avctx) ...@@ -134,7 +134,7 @@ static av_cold int mpc8_decode_init(AVCodecContext * avctx)
channels = get_bits(&gb, 4) + 1; channels = get_bits(&gb, 4) + 1;
if (channels > 2) { if (channels > 2) {
av_log_missing_feature(avctx, "Multichannel MPC SV8", 1); av_log_missing_feature(avctx, "Multichannel MPC SV8", 1);
return -1; return AVERROR_PATCHWELCOME;
} }
c->MSS = get_bits1(&gb); c->MSS = get_bits1(&gb);
c->frames = 1 << (get_bits(&gb, 3) * 2); c->frames = 1 << (get_bits(&gb, 3) * 2);
......
...@@ -799,7 +799,7 @@ fail: ...@@ -799,7 +799,7 @@ fail:
*/ */
av_cold int ff_MPV_common_init(MpegEncContext *s) av_cold int ff_MPV_common_init(MpegEncContext *s)
{ {
int i, err; int i;
int nb_slices = (HAVE_THREADS && int nb_slices = (HAVE_THREADS &&
s->avctx->active_thread_type & FF_THREAD_SLICE) ? s->avctx->active_thread_type & FF_THREAD_SLICE) ?
s->avctx->thread_count : 1; s->avctx->thread_count : 1;
...@@ -877,7 +877,7 @@ av_cold int ff_MPV_common_init(MpegEncContext *s) ...@@ -877,7 +877,7 @@ av_cold int ff_MPV_common_init(MpegEncContext *s)
avcodec_get_frame_defaults(&s->picture[i].f); avcodec_get_frame_defaults(&s->picture[i].f);
} }
if ((err = init_context_frame(s))) if (init_context_frame(s))
goto fail; goto fail;
s->parse_context.state = -1; s->parse_context.state = -1;
......
...@@ -116,6 +116,7 @@ int ff_rac_terminate(RangeCoder *c) ...@@ -116,6 +116,7 @@ int ff_rac_terminate(RangeCoder *c)
#define SIZE 10240 #define SIZE 10240
#include "libavutil/lfg.h" #include "libavutil/lfg.h"
#include "libavutil/log.h"
int main(void) int main(void)
{ {
......
...@@ -200,7 +200,7 @@ static av_cold int tta_decode_init(AVCodecContext * avctx) ...@@ -200,7 +200,7 @@ static av_cold int tta_decode_init(AVCodecContext * avctx)
} }
if (s->format == FORMAT_ENCRYPTED) { if (s->format == FORMAT_ENCRYPTED) {
av_log_missing_feature(s->avctx, "Encrypted TTA", 0); av_log_missing_feature(s->avctx, "Encrypted TTA", 0);
return AVERROR(EINVAL); return AVERROR_PATCHWELCOME;
} }
avctx->channels = s->channels = get_bits(&s->gb, 16); avctx->channels = s->channels = get_bits(&s->gb, 16);
if (s->channels > 1 && s->channels < 9) if (s->channels > 1 && s->channels < 9)
......
...@@ -314,7 +314,7 @@ static av_cold int decode_init(AVCodecContext *avctx) ...@@ -314,7 +314,7 @@ static av_cold int decode_init(AVCodecContext *avctx)
bits = ff_wma_get_frame_len_bits(avctx->sample_rate, 3, s->decode_flags); bits = ff_wma_get_frame_len_bits(avctx->sample_rate, 3, s->decode_flags);
if (bits > WMAPRO_BLOCK_MAX_BITS) { if (bits > WMAPRO_BLOCK_MAX_BITS) {
av_log_missing_feature(avctx, "14-bits block sizes", 1); av_log_missing_feature(avctx, "14-bits block sizes", 1);
return AVERROR_INVALIDDATA; return AVERROR_PATCHWELCOME;
} }
s->samples_per_frame = 1 << bits; s->samples_per_frame = 1 << bits;
......
...@@ -1763,7 +1763,7 @@ static int synth_superframe(AVCodecContext *ctx, int *got_frame_ptr) ...@@ -1763,7 +1763,7 @@ static int synth_superframe(AVCodecContext *ctx, int *got_frame_ptr)
* the wild yet. */ * the wild yet. */
if (!get_bits1(gb)) { if (!get_bits1(gb)) {
av_log_missing_feature(ctx, "WMAPro-in-WMAVoice support", 1); av_log_missing_feature(ctx, "WMAPro-in-WMAVoice support", 1);
return -1; return AVERROR_PATCHWELCOME;
} }
/* (optional) nr. of samples in superframe; always <= 480 and >= 0 */ /* (optional) nr. of samples in superframe; always <= 480 and >= 0 */
......
...@@ -99,7 +99,7 @@ static int qt_rtp_parse_packet(AVFormatContext *s, PayloadContext *qt, ...@@ -99,7 +99,7 @@ static int qt_rtp_parse_packet(AVFormatContext *s, PayloadContext *qt,
if (!is_start || !is_finish) { if (!is_start || !is_finish) {
av_log_missing_feature(s, "RTP-X-QT with payload description " av_log_missing_feature(s, "RTP-X-QT with payload description "
"split over several packets", 1); "split over several packets", 1);
return AVERROR(ENOSYS); return AVERROR_PATCHWELCOME;
} }
skip_bits(&gb, 12); // reserved skip_bits(&gb, 12); // reserved
data_len = get_bits(&gb, 16); data_len = get_bits(&gb, 16);
...@@ -162,7 +162,7 @@ static int qt_rtp_parse_packet(AVFormatContext *s, PayloadContext *qt, ...@@ -162,7 +162,7 @@ static int qt_rtp_parse_packet(AVFormatContext *s, PayloadContext *qt,
if (has_packet_info) { if (has_packet_info) {
av_log_missing_feature(s, "RTP-X-QT with packet specific info", 1); av_log_missing_feature(s, "RTP-X-QT with packet specific info", 1);
return AVERROR(ENOSYS); return AVERROR_PATCHWELCOME;
} }
alen = len - avio_tell(&pb); alen = len - avio_tell(&pb);
...@@ -225,7 +225,7 @@ static int qt_rtp_parse_packet(AVFormatContext *s, PayloadContext *qt, ...@@ -225,7 +225,7 @@ static int qt_rtp_parse_packet(AVFormatContext *s, PayloadContext *qt,
default: /* unimplemented */ default: /* unimplemented */
av_log_missing_feature(NULL, "RTP-X-QT with packing scheme 2", 1); av_log_missing_feature(NULL, "RTP-X-QT with packing scheme 2", 1);
return AVERROR(ENOSYS); return AVERROR_PATCHWELCOME;
} }
} }
......
...@@ -242,7 +242,7 @@ static int get_base128(const uint8_t ** buf, const uint8_t * buf_end) ...@@ -242,7 +242,7 @@ static int get_base128(const uint8_t ** buf, const uint8_t * buf_end)
/** /**
* Based off parse_packed_headers in Vorbis RTP * Based off parse_packed_headers in Vorbis RTP
*/ */
static unsigned int static int
parse_packed_headers(const uint8_t * packed_headers, parse_packed_headers(const uint8_t * packed_headers,
const uint8_t * packed_headers_end, const uint8_t * packed_headers_end,
AVCodecContext * codec, PayloadContext * xiph_data) AVCodecContext * codec, PayloadContext * xiph_data)
......
...@@ -135,8 +135,9 @@ static int smjpeg_read_header(AVFormatContext *s) ...@@ -135,8 +135,9 @@ static int smjpeg_read_header(AVFormatContext *s)
static int smjpeg_read_packet(AVFormatContext *s, AVPacket *pkt) static int smjpeg_read_packet(AVFormatContext *s, AVPacket *pkt)
{ {
SMJPEGContext *sc = s->priv_data; SMJPEGContext *sc = s->priv_data;
uint32_t dtype, ret, size, timestamp; uint32_t dtype, size, timestamp;
int64_t pos; int64_t pos;
int ret;
if (s->pb->eof_reached) if (s->pb->eof_reached)
return AVERROR_EOF; return AVERROR_EOF;
......
...@@ -8,6 +8,10 @@ fate-aes: libavutil/aes-test$(EXESUF) ...@@ -8,6 +8,10 @@ fate-aes: libavutil/aes-test$(EXESUF)
fate-aes: CMD = run libavutil/aes-test fate-aes: CMD = run libavutil/aes-test
fate-aes: REF = /dev/null fate-aes: REF = /dev/null
FATE_LIBAVUTIL += fate-avstring
fate-avstring: libavutil/avstring-test$(EXESUF)
fate-avstring: CMD = run libavutil/avstring-test
FATE_LIBAVUTIL += fate-base64 FATE_LIBAVUTIL += fate-base64
fate-base64: libavutil/base64-test$(EXESUF) fate-base64: libavutil/base64-test$(EXESUF)
fate-base64: CMD = run libavutil/base64-test fate-base64: CMD = run libavutil/base64-test
......
Testing av_get_token()
|''| -> || + ||
|| -> || + ||
|:| -> || + |:|
|\| -> |\| + ||
|'| -> || + ||
| '' :| -> || + |:|
| '' '' :| -> | | + |:|
|foo '' :| -> |foo | + |:|
|'foo'| -> |foo| + ||
|foo | -> |foo| + ||
| ' foo ' | -> | foo | + ||
|foo\| -> |foo\| + ||
|foo': blah:blah| -> |foo: blah:blah| + ||
|foo\: blah:blah| -> |foo: blah| + |:blah|
|foo'| -> |foo| + ||
|'foo : ' :blahblah| -> |foo : | + |:blahblah|
|\ :blah| -> | | + |:blah|
| foo| -> |foo| + ||
| foo | -> |foo| + ||
| foo \ | -> |foo | + ||
|foo ':blah| -> |foo :blah| + ||
| foo bar : blahblah| -> |foo bar| + |: blahblah|
|\f\o\o| -> |foo| + ||
|'foo : \ \ ' : blahblah| -> |foo : \ \ | + |: blahblah|
|'\fo\o:': blahblah| -> |\fo\o:| + |: blahblah|
|\'fo\o\:': foo ' :blahblah| -> |'foo:: foo | + |:blahblah|
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment