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