On 27/04/14 20:54, [email protected] wrote:
I've had a look at your code, thanks. It seems you are using av_read_frame which for me crashes with mp3 files as previously described.

I have just quickly written some code which has the crashes in when I run it - I hope this can help somebody to point me in the right direction. It crashes on av_read_frame or (find_stream_info - if i uncomment it out)

What are inputAudioFormat and inputAudioContextz? Also did you call av_register_all() before?
int ret= avformat_open_input(&inputAudioFormat, filename, NULL, NULL);
//yyy = avformat_find_stream_info(inputAudioFormat, NULL);
//qDebug() << " crashes above line if not commented out ...after find stream info inputAudioFormat res=" << yyy;


inputAudioContextz = inputAudioFormat->streams[0]->codec;
inputAudioContextz->strict_std_compliance = -2;
inputAudioContextz->bit_rate = 64000;//inputAudioFormat->streams[0]->codec->bit_rate;
inputAudioContextz->channels = 2;
inputAudioContextz->request_channel_layout = AV_CH_LAYOUT_STEREO;
inputAudioContextz->sample_rate = 44100;//inputAudioFormat->streams[0]->codec->sample_rate; inputAudioContextz->codec = avcodec_find_decoder(inputAudioContextz->codec_id);
You shouldn't need to initialize the audio context when demuxing. Leave all values at their default.

inputAudioCodec = (AVCodec*)inputAudioContextz->codec;
This definitively looks wrong.


if (!inputAudioCodec) {
fprintf(stderr, "no codec not found\n");
exit(1);
}
if (avcodec_open2(inputAudioContextz, inputAudioContextz->codec, NULL) < 0) {
fprintf(stderr, "could not open codec\n");
exit(1);
}

Here you would start with av_read_frame()

_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user

Reply via email to