X-Git-Url: https://git.ao2.it/libam7xxx.git/blobdiff_plain/d57e41130a416372145184a8a495ba225a2825d8..18978589ed6ae1ddef52ae892b2c224b545ec29a:/examples/am7xxx-play.c?ds=inline diff --git a/examples/am7xxx-play.c b/examples/am7xxx-play.c index 91c7663..82954fc 100644 --- a/examples/am7xxx-play.c +++ b/examples/am7xxx-play.c @@ -31,17 +31,11 @@ #include #include +#include #include #include -/* On some systems ENOTSUP is not defined, fallback to its value on - * linux which is equal to EOPNOTSUPP which is 95 - */ -#ifndef ENOTSUP -#define ENOTSUP 95 -#endif - static unsigned int run = 1; struct video_input_ctx { @@ -113,7 +107,7 @@ static int video_input_init(struct video_input_ctx *input_ctx, } if (video_index == -1) { fprintf(stderr, "cannot find any video streams\n"); - ret = -ENOTSUP; + ret = -EINVAL; goto cleanup; } @@ -121,7 +115,7 @@ static int video_input_init(struct video_input_ctx *input_ctx, input_codec_ctx = input_format_ctx->streams[video_index]->codec; if (input_codec_ctx == NULL) { fprintf(stderr, "input codec context is not valid\n"); - ret = -ENOTSUP; + ret = -EINVAL; goto cleanup; } @@ -129,7 +123,7 @@ static int video_input_init(struct video_input_ctx *input_ctx, input_codec = avcodec_find_decoder(input_codec_ctx->codec_id); if (input_codec == NULL) { fprintf(stderr, "input_codec is NULL!\n"); - ret = -ENOTSUP; + ret = -EINVAL; goto cleanup; } @@ -137,7 +131,7 @@ static int video_input_init(struct video_input_ctx *input_ctx, ret = avcodec_open2(input_codec_ctx, input_codec, NULL); if (ret < 0) { fprintf(stderr, "cannot open input codec\n"); - ret = -ENOTSUP; + ret = -EINVAL; goto cleanup; } @@ -237,14 +231,14 @@ static int video_output_init(struct video_output_ctx *output_ctx, output_codec_ctx->qmin = output_codec_ctx->qmax = ((100 - (quality - 1)) * FF_QUALITY_SCALE) / 100; output_codec_ctx->mb_lmin = output_codec_ctx->qmin * FF_QP2LAMBDA; output_codec_ctx->mb_lmax = output_codec_ctx->qmax * FF_QP2LAMBDA; - output_codec_ctx->flags |= CODEC_FLAG_QSCALE; + output_codec_ctx->flags |= AV_CODEC_FLAG_QSCALE; output_codec_ctx->global_quality = output_codec_ctx->qmin * FF_QP2LAMBDA; /* find the encoder */ output_codec = avcodec_find_encoder(output_codec_ctx->codec_id); if (output_codec == NULL) { fprintf(stderr, "cannot find output codec!\n"); - ret = -ENOTSUP; + ret = -EINVAL; goto cleanup; } @@ -326,9 +320,10 @@ static int am7xxx_play(const char *input_format_string, picture_scaled->height = (output_ctx.codec_ctx)->height; /* calculate the bytes needed for the output image and create buffer for the output image */ - out_buf_size = avpicture_get_size((output_ctx.codec_ctx)->pix_fmt, - (output_ctx.codec_ctx)->width, - (output_ctx.codec_ctx)->height); + out_buf_size = av_image_get_buffer_size((output_ctx.codec_ctx)->pix_fmt, + (output_ctx.codec_ctx)->width, + (output_ctx.codec_ctx)->height, + 1); out_buf = av_malloc(out_buf_size * sizeof(uint8_t)); if (out_buf == NULL) { fprintf(stderr, "cannot allocate output data buffer!\n"); @@ -337,11 +332,13 @@ static int am7xxx_play(const char *input_format_string, } /* assign appropriate parts of buffer to image planes in picture_scaled */ - avpicture_fill((AVPicture *)picture_scaled, - out_buf, - (output_ctx.codec_ctx)->pix_fmt, - (output_ctx.codec_ctx)->width, - (output_ctx.codec_ctx)->height); + av_image_fill_arrays(picture_scaled->data, + picture_scaled->linesize, + out_buf, + (output_ctx.codec_ctx)->pix_fmt, + (output_ctx.codec_ctx)->width, + (output_ctx.codec_ctx)->height, + 1); sw_scale_ctx = sws_getCachedContext(NULL, (input_ctx.codec_ctx)->width, @@ -454,8 +451,8 @@ static int am7xxx_play(const char *input_format_string, } end_while: if (!output_ctx.raw_output && got_packet) - av_free_packet(&out_packet); - av_free_packet(&in_packet); + av_packet_unref(&out_packet); + av_packet_unref(&in_packet); } sws_freeContext(sw_scale_ctx);