Fix build for ffmpeg-3.0. Based on a patch by Andreas Cadhalpun for ffmpeg-2.9, found at and later modified by Mark H Weaver for ffmpeg-3.0. --- libextractor-1.3/src/plugins/thumbnailffmpeg_extractor.c.orig 2013-12-21 11:04:41.000000000 -0500 +++ libextractor-1.3/src/plugins/thumbnailffmpeg_extractor.c 2016-04-04 22:42:17.859001669 -0400 @@ -153,7 +153,7 @@ static size_t create_thumbnail (int src_width, int src_height, int src_stride[], - enum PixelFormat src_pixfmt, + enum AVPixelFormat src_pixfmt, const uint8_t * const src_data[], int dst_width, int dst_height, uint8_t **output_data, @@ -189,7 +189,7 @@ if (NULL == (scaler_ctx = sws_getContext (src_width, src_height, src_pixfmt, - dst_width, dst_height, PIX_FMT_RGB24, + dst_width, dst_height, AV_PIX_FMT_RGB24, SWS_BILINEAR, NULL, NULL, NULL))) { #if DEBUG @@ -199,7 +199,7 @@ return 0; } - if (NULL == (dst_frame = avcodec_alloc_frame ())) + if (NULL == (dst_frame = av_frame_alloc ())) { #if DEBUG fprintf (stderr, @@ -209,7 +209,7 @@ return 0; } if (NULL == (dst_buffer = - av_malloc (avpicture_get_size (PIX_FMT_RGB24, dst_width, dst_height)))) + av_malloc (avpicture_get_size (AV_PIX_FMT_RGB24, dst_width, dst_height)))) { #if DEBUG fprintf (stderr, @@ -220,7 +220,7 @@ return 0; } avpicture_fill ((AVPicture *) dst_frame, dst_buffer, - PIX_FMT_RGB24, dst_width, dst_height); + AV_PIX_FMT_RGB24, dst_width, dst_height); sws_scale (scaler_ctx, src_data, src_stride, @@ -255,7 +255,7 @@ } encoder_codec_ctx->width = dst_width; encoder_codec_ctx->height = dst_height; - encoder_codec_ctx->pix_fmt = PIX_FMT_RGB24; + encoder_codec_ctx->pix_fmt = AV_PIX_FMT_RGB24; opts = NULL; if (avcodec_open2 (encoder_codec_ctx, encoder_codec, &opts) < 0) { @@ -410,7 +410,7 @@ return; } av_dict_free (&opts); - if (NULL == (frame = avcodec_alloc_frame ())) + if (NULL == (frame = av_frame_alloc ())) { #if DEBUG fprintf (stderr, @@ -563,7 +563,7 @@ return; } - if (NULL == (frame = avcodec_alloc_frame ())) + if (NULL == (frame = av_frame_alloc ())) { #if DEBUG fprintf (stderr, --- libextractor-1.3/src/plugins/previewopus_extractor.c.orig 2013-12-22 17:44:18.000000000 -0500 +++ libextractor-1.3/src/plugins/previewopus_extractor.c 2016-04-04 22:49:05.168105265 -0400 @@ -296,7 +296,7 @@ /** Initialize one audio frame for reading from the input file */ static int init_input_frame(AVFrame **frame) { - if (!(*frame = avcodec_alloc_frame())) { + if (!(*frame = av_frame_alloc())) { #if DEBUG fprintf(stderr, "Could not allocate input frame\n"); #endif @@ -655,7 +655,7 @@ av_freep(&converted_input_samples[0]); free(converted_input_samples); } - avcodec_free_frame(&input_frame); + av_frame_free(&input_frame); return ret; } @@ -671,7 +671,7 @@ int error; /** Create a new frame to store the audio samples. */ - if (!(*frame = avcodec_alloc_frame())) { + if (!(*frame = av_frame_alloc())) { #if DEBUG fprintf(stderr, "Could not allocate output frame\n"); #endif @@ -702,7 +702,7 @@ #if DEBUG fprintf(stderr, "Could allocate output frame samples (error '%s')\n", get_error_text(error)); #endif - avcodec_free_frame(frame); + av_frame_free(frame); return error; } @@ -783,17 +783,17 @@ #if DEBUG fprintf(stderr, "Could not read data from FIFO\n"); #endif - avcodec_free_frame(&output_frame); + av_frame_free(&output_frame); return AVERROR_EXIT; } /** Encode one frame worth of audio samples. */ if (encode_audio_frame(output_frame, output_format_context, output_codec_context, &data_written)) { - avcodec_free_frame(&output_frame); + av_frame_free(&output_frame); return AVERROR_EXIT; } - avcodec_free_frame(&output_frame); + av_frame_free(&output_frame); return 0; } /** Write the trailer of the output file container. */ @@ -907,7 +907,7 @@ return; } - if (NULL == (frame = avcodec_alloc_frame ())) + if (NULL == (frame = av_frame_alloc ())) { #if DEBUG fprintf (stderr,