/** The number of output channels */
#define OUTPUT_CHANNELS 2
-/**
- * Convert an error code into a text message.
- * @param error Error code to be converted
- * @return Corresponding error text (not thread-safe)
- */
-static const char *get_error_text(const int error)
-{
- static char error_buffer[255];
- av_strerror(error, error_buffer, sizeof(error_buffer));
- return error_buffer;
-}
-
/** Open an input file and the required decoder. */
static int open_input_file(const char *filename,
AVFormatContext **input_format_context,
if ((error = avformat_open_input(input_format_context, filename, NULL,
NULL)) < 0) {
fprintf(stderr, "Could not open input file '%s' (error '%s')\n",
- filename, get_error_text(error));
+ filename, av_err2str(error));
*input_format_context = NULL;
return error;
}
/** Get information on the input file (number of streams etc.). */
if ((error = avformat_find_stream_info(*input_format_context, NULL)) < 0) {
fprintf(stderr, "Could not open find stream info (error '%s')\n",
- get_error_text(error));
+ av_err2str(error));
avformat_close_input(input_format_context);
return error;
}
/** Open the decoder for the audio stream to use it later. */
if ((error = avcodec_open2(avctx, input_codec, NULL)) < 0) {
fprintf(stderr, "Could not open input codec (error '%s')\n",
- get_error_text(error));
+ av_err2str(error));
avcodec_free_context(&avctx);
avformat_close_input(input_format_context);
return error;
if ((error = avio_open(&output_io_context, filename,
AVIO_FLAG_WRITE)) < 0) {
fprintf(stderr, "Could not open output file '%s' (error '%s')\n",
- filename, get_error_text(error));
+ filename, av_err2str(error));
return error;
}
/** Open the encoder for the audio stream to use it later. */
if ((error = avcodec_open2(avctx, output_codec, NULL)) < 0) {
fprintf(stderr, "Could not open output codec (error '%s')\n",
- get_error_text(error));
+ av_err2str(error));
goto cleanup;
}
int error;
if ((error = avformat_write_header(output_format_context, NULL)) < 0) {
fprintf(stderr, "Could not write output file header (error '%s')\n",
- get_error_text(error));
+ av_err2str(error));
return error;
}
return 0;
*finished = 1;
else {
fprintf(stderr, "Could not read frame (error '%s')\n",
- get_error_text(error));
+ av_err2str(error));
return error;
}
}
if ((error = avcodec_decode_audio4(input_codec_context, frame,
data_present, &input_packet)) < 0) {
fprintf(stderr, "Could not decode frame (error '%s')\n",
- get_error_text(error));
+ av_err2str(error));
av_packet_unref(&input_packet);
return error;
}
output_codec_context->sample_fmt, 0)) < 0) {
fprintf(stderr,
"Could not allocate converted input samples (error '%s')\n",
- get_error_text(error));
+ av_err2str(error));
av_freep(&(*converted_input_samples)[0]);
free(*converted_input_samples);
return error;
converted_data, frame_size,
input_data , frame_size)) < 0) {
fprintf(stderr, "Could not convert input samples (error '%s')\n",
- get_error_text(error));
+ av_err2str(error));
return error;
}
*/
if ((error = av_frame_get_buffer(*frame, 0)) < 0) {
fprintf(stderr, "Could not allocate output frame samples (error '%s')\n",
- get_error_text(error));
+ av_err2str(error));
av_frame_free(frame);
return error;
}
if ((error = avcodec_encode_audio2(output_codec_context, &output_packet,
frame, data_present)) < 0) {
fprintf(stderr, "Could not encode frame (error '%s')\n",
- get_error_text(error));
+ av_err2str(error));
av_packet_unref(&output_packet);
return error;
}
if (*data_present) {
if ((error = av_write_frame(output_format_context, &output_packet)) < 0) {
fprintf(stderr, "Could not write frame (error '%s')\n",
- get_error_text(error));
+ av_err2str(error));
av_packet_unref(&output_packet);
return error;
}
int error;
if ((error = av_write_trailer(output_format_context)) < 0) {
fprintf(stderr, "Could not write output file trailer (error '%s')\n",
- get_error_text(error));
+ av_err2str(error));
return error;
}
return 0;