The code can now compile with -Werror=deprecated-declarations
int out_buf_size;
uint8_t *out_buf;
int out_picture_size;
int out_buf_size;
uint8_t *out_buf;
int out_picture_size;
struct SwsContext *sw_scale_ctx;
AVPacket in_packet;
struct SwsContext *sw_scale_ctx;
AVPacket in_packet;
int ret = 0;
ret = video_input_init(&input_ctx, input_format_string, input_path, input_options);
int ret = 0;
ret = video_input_init(&input_ctx, input_format_string, input_path, input_options);
picture_scaled->linesize);
if (output_ctx.raw_output) {
picture_scaled->linesize);
if (output_ctx.raw_output) {
out_picture_size = out_buf_size;
} else {
picture_scaled->quality = (output_ctx.codec_ctx)->global_quality;
out_picture_size = out_buf_size;
} else {
picture_scaled->quality = (output_ctx.codec_ctx)->global_quality;
- /* TODO: switch to avcodec_encode_video2() eventually */
- out_picture_size = avcodec_encode_video(output_ctx.codec_ctx,
- out_buf,
- out_buf_size,
- picture_scaled);
- if (out_picture_size < 0) {
+ av_init_packet(&out_packet);
+ out_packet.data = NULL;
+ out_packet.size = 0;
+ got_packet = 0;
+ ret = avcodec_encode_video2(output_ctx.codec_ctx,
+ &out_packet,
+ picture_scaled,
+ &got_packet);
+ if (ret < 0 || !got_packet) {
fprintf(stderr, "cannot encode video\n");
fprintf(stderr, "cannot encode video\n");
- ret = out_picture_size;
run = 0;
goto end_while;
}
run = 0;
goto end_while;
}
+
+ out_picture = out_packet.data;
+ out_picture_size = out_packet.size;
else
snprintf(filename, NAME_MAX, "out.raw");
file = fopen(filename, "wb");
else
snprintf(filename, NAME_MAX, "out.raw");
file = fopen(filename, "wb");
- fwrite(out_buf, 1, out_picture_size, file);
+ fwrite(out_picture, 1, out_picture_size, file);
image_format,
(output_ctx.codec_ctx)->width,
(output_ctx.codec_ctx)->height,
image_format,
(output_ctx.codec_ctx)->width,
(output_ctx.codec_ctx)->height,
out_picture_size);
if (ret < 0) {
perror("am7xxx_send_image");
out_picture_size);
if (ret < 0) {
perror("am7xxx_send_image");
+ if (!output_ctx.raw_output)
+ av_free_packet(&out_packet);
av_free_packet(&in_packet);
}
av_free_packet(&in_packet);
}