Originally committed as revision 19294 to svn://svn.ffmpeg.org/ffmpeg/trunktags/v0.6
| @@ -320,7 +320,7 @@ static int decode_ga_specific_config(AACContext * ac, GetBitContext * gb, int ch | |||
| int extension_flag, ret; | |||
| if(get_bits1(gb)) { // frameLengthFlag | |||
| ff_log_missing_feature(ac->avccontext, "960/120 MDCT window is", 1); | |||
| av_log_missing_feature(ac->avccontext, "960/120 MDCT window is", 1); | |||
| return -1; | |||
| } | |||
| @@ -588,7 +588,7 @@ static int decode_ics_info(AACContext * ac, IndividualChannelStream * ics, GetBi | |||
| memset(ics, 0, sizeof(IndividualChannelStream)); | |||
| return -1; | |||
| } else { | |||
| ff_log_missing_feature(ac->avccontext, "Predictor bit set but LTP is", 1); | |||
| av_log_missing_feature(ac->avccontext, "Predictor bit set but LTP is", 1); | |||
| memset(ics, 0, sizeof(IndividualChannelStream)); | |||
| return -1; | |||
| } | |||
| @@ -1040,7 +1040,7 @@ static int decode_ics(AACContext * ac, SingleChannelElement * sce, GetBitContext | |||
| if ((tns->present = get_bits1(gb)) && decode_tns(ac, tns, gb, ics)) | |||
| return -1; | |||
| if (get_bits1(gb)) { | |||
| ff_log_missing_feature(ac->avccontext, "SSR", 1); | |||
| av_log_missing_feature(ac->avccontext, "SSR", 1); | |||
| return -1; | |||
| } | |||
| } | |||
| @@ -1245,7 +1245,7 @@ static int decode_cce(AACContext * ac, GetBitContext * gb, ChannelElement * che) | |||
| */ | |||
| static int decode_sbr_extension(AACContext * ac, GetBitContext * gb, int crc, int cnt) { | |||
| // TODO : sbr_extension implementation | |||
| ff_log_missing_feature(ac->avccontext, "SBR", 0); | |||
| av_log_missing_feature(ac->avccontext, "SBR", 0); | |||
| skip_bits_long(gb, 8*cnt - 4); // -4 due to reading extension type | |||
| return cnt; | |||
| } | |||
| @@ -1588,7 +1588,7 @@ static int parse_adts_frame_header(AACContext * ac, GetBitContext * gb) { | |||
| if (!hdr_info.crc_absent) | |||
| skip_bits(gb, 16); | |||
| } else { | |||
| ff_log_missing_feature(ac->avccontext, "More than one AAC RDB per ADTS frame is", 0); | |||
| av_log_missing_feature(ac->avccontext, "More than one AAC RDB per ADTS frame is", 0); | |||
| return -1; | |||
| } | |||
| } | |||
| @@ -61,7 +61,7 @@ static int aac_adtstoasc_filter(AVBitStreamFilterContext *bsfc, | |||
| } | |||
| if (!hdr.crc_absent && hdr.num_aac_frames > 1) { | |||
| ff_log_missing_feature(avctx, "Multiple RDBs per frame with CRC is", 0); | |||
| av_log_missing_feature(avctx, "Multiple RDBs per frame with CRC is", 0); | |||
| return -1; | |||
| } | |||
| @@ -74,7 +74,7 @@ static int aac_adtstoasc_filter(AVBitStreamFilterContext *bsfc, | |||
| if (!hdr.chan_config) { | |||
| init_get_bits(&gb, buf, buf_size); | |||
| if (get_bits(&gb, 3) != 5) { | |||
| ff_log_missing_feature(avctx, "PCE based channel configuration, where the PCE is not the first syntax element is", 0); | |||
| av_log_missing_feature(avctx, "PCE based channel configuration, where the PCE is not the first syntax element is", 0); | |||
| return -1; | |||
| } | |||
| init_put_bits(&pb, pce_data, MAX_PCE_SIZE); | |||
| @@ -820,7 +820,7 @@ static int decode_audio_block(AC3DecodeContext *s, int blk) | |||
| /* spectral extension strategy */ | |||
| if (s->eac3 && (!blk || get_bits1(gbc))) { | |||
| if (get_bits1(gbc)) { | |||
| ff_log_missing_feature(s->avctx, "Spectral extension", 1); | |||
| av_log_missing_feature(s->avctx, "Spectral extension", 1); | |||
| return -1; | |||
| } | |||
| /* TODO: parse spectral extension strategy info */ | |||
| @@ -845,7 +845,7 @@ static int decode_audio_block(AC3DecodeContext *s, int blk) | |||
| /* check for enhanced coupling */ | |||
| if (s->eac3 && get_bits1(gbc)) { | |||
| /* TODO: parse enhanced coupling strategy info */ | |||
| ff_log_missing_feature(s->avctx, "Enhanced coupling", 1); | |||
| av_log_missing_feature(s->avctx, "Enhanced coupling", 1); | |||
| return -1; | |||
| } | |||
| @@ -214,7 +214,7 @@ int ff_eac3_parse_header(AC3DecodeContext *s) | |||
| application can select from. each independent stream can also contain | |||
| dependent streams which are used to add or replace channels. */ | |||
| if (s->frame_type == EAC3_FRAME_TYPE_DEPENDENT) { | |||
| ff_log_missing_feature(s->avctx, "Dependent substream decoding", 1); | |||
| av_log_missing_feature(s->avctx, "Dependent substream decoding", 1); | |||
| return AAC_AC3_PARSE_ERROR_FRAME_TYPE; | |||
| } else if (s->frame_type == EAC3_FRAME_TYPE_RESERVED) { | |||
| av_log(s->avctx, AV_LOG_ERROR, "Reserved frame type\n"); | |||
| @@ -226,7 +226,7 @@ int ff_eac3_parse_header(AC3DecodeContext *s) | |||
| associated to an independent stream have matching substream id's. */ | |||
| if (s->substreamid) { | |||
| /* only decode substream with id=0. skip any additional substreams. */ | |||
| ff_log_missing_feature(s->avctx, "Additional substreams", 1); | |||
| av_log_missing_feature(s->avctx, "Additional substreams", 1); | |||
| return AAC_AC3_PARSE_ERROR_FRAME_TYPE; | |||
| } | |||
| @@ -235,7 +235,7 @@ int ff_eac3_parse_header(AC3DecodeContext *s) | |||
| rates in bit allocation. The best assumption would be that it is | |||
| handled like AC-3 DolbyNet, but we cannot be sure until we have a | |||
| sample which utilizes this feature. */ | |||
| ff_log_missing_feature(s->avctx, "Reduced sampling rates", 1); | |||
| av_log_missing_feature(s->avctx, "Reduced sampling rates", 1); | |||
| return -1; | |||
| } | |||
| skip_bits(gbc, 5); // skip bitstream id | |||
| @@ -492,7 +492,7 @@ int ff_eac3_parse_header(AC3DecodeContext *s) | |||
| /* spectral extension attenuation data */ | |||
| if (parse_spx_atten_data) { | |||
| ff_log_missing_feature(s->avctx, "Spectral extension attenuation", 1); | |||
| av_log_missing_feature(s->avctx, "Spectral extension attenuation", 1); | |||
| for (ch = 1; ch <= s->fbw_channels; ch++) { | |||
| if (get_bits1(gbc)) { // channel has spx attenuation | |||
| skip_bits(gbc, 5); // skip spx attenuation code | |||
| @@ -508,7 +508,7 @@ int ff_eac3_parse_header(AC3DecodeContext *s) | |||
| It is likely the offset of each block within the frame. */ | |||
| int block_start_bits = (s->num_blocks-1) * (4 + av_log2(s->frame_size-2)); | |||
| skip_bits_long(gbc, block_start_bits); | |||
| ff_log_missing_feature(s->avctx, "Block start info", 1); | |||
| av_log_missing_feature(s->avctx, "Block start info", 1); | |||
| } | |||
| /* syntax state initialization */ | |||
| @@ -448,7 +448,7 @@ static inline int decode_subframe(FLACContext *s, int channel) | |||
| s->curr_bps -= wasted; | |||
| } | |||
| if (s->curr_bps > 32) { | |||
| ff_log_missing_feature(s->avctx, "decorrelated bit depth > 32", 0); | |||
| av_log_missing_feature(s->avctx, "decorrelated bit depth > 32", 0); | |||
| return -1; | |||
| } | |||
| @@ -37,7 +37,7 @@ | |||
| * message which tells the user how to report samples to the development | |||
| * mailing list. | |||
| */ | |||
| void ff_log_missing_feature(void *avc, const char *feature, int want_sample); | |||
| void av_log_missing_feature(void *avc, const char *feature, int want_sample); | |||
| /** | |||
| * Logs a generic warning message asking for a sample. | |||
| @@ -45,7 +45,7 @@ void ff_log_missing_feature(void *avc, const char *feature, int want_sample); | |||
| * a pointer to an AVClass struct | |||
| * @param[in] msg string containing an optional message, or NULL if no message | |||
| */ | |||
| void ff_log_ask_for_sample(void *avc, const char *msg); | |||
| void av_log_ask_for_sample(void *avc, const char *msg); | |||
| /** | |||
| * Determines whether pix_fmt is a hardware accelerated format. | |||
| @@ -432,7 +432,7 @@ static float compute_gain_ctrl(const float *v_ref, const float *v_in, const int | |||
| if(scalefactor) | |||
| scalefactor = sqrt(ff_dot_productf(v_ref, v_ref, len) / scalefactor); | |||
| else | |||
| ff_log_missing_feature(NULL, "Zero energy for gain control", 1); | |||
| av_log_missing_feature(NULL, "Zero energy for gain control", 1); | |||
| return scalefactor; | |||
| } | |||
| @@ -716,7 +716,7 @@ static qcelp_packet_rate determine_bitrate(AVCodecContext *avctx, const int buf_ | |||
| if(bitrate == SILENCE) | |||
| { | |||
| //FIXME: Remove experimental warning when tested with samples. | |||
| ff_log_ask_for_sample(avctx, "'Blank frame handling is experimental."); | |||
| av_log_ask_for_sample(avctx, "'Blank frame handling is experimental."); | |||
| } | |||
| return bitrate; | |||
| } | |||
| @@ -1191,19 +1191,19 @@ int av_parse_video_frame_rate(AVRational *frame_rate, const char *arg) | |||
| return 0; | |||
| } | |||
| void ff_log_missing_feature(void *avc, const char *feature, int want_sample) | |||
| void av_log_missing_feature(void *avc, const char *feature, int want_sample) | |||
| { | |||
| av_log(avc, AV_LOG_WARNING, "%s not implemented. Update your FFmpeg " | |||
| "version to the newest one from SVN. If the problem still " | |||
| "occurs, it means that your file has a feature which has not " | |||
| "been implemented.", feature); | |||
| if(want_sample) | |||
| ff_log_ask_for_sample(avc, NULL); | |||
| av_log_ask_for_sample(avc, NULL); | |||
| else | |||
| av_log(avc, AV_LOG_WARNING, "\n"); | |||
| } | |||
| void ff_log_ask_for_sample(void *avc, const char *msg) | |||
| void av_log_ask_for_sample(void *avc, const char *msg) | |||
| { | |||
| if (msg) | |||
| av_log(avc, AV_LOG_WARNING, "%s ", msg); | |||