graphics/php5-ffmpeg: unbreak with ffmpeg 4.0

ffmpeg_movie.c:978:29: error: no member named 'codec_name' in 'struct AVCodecContext'; did you mean 'coded_frame'?
    } else if (decoder_ctx->codec_name[0] != '\0') {
                            ^~~~~~~~~~
                            coded_frame
/usr/local/include/libavcodec/avcodec.h:2760:35: note: 'coded_frame' declared here
    attribute_deprecated AVFrame *coded_frame;
                                  ^
ffmpeg_movie.c:978:43: error: invalid operands to binary expression ('AVFrame' (aka 'struct AVFrame') and 'int')
    } else if (decoder_ctx->codec_name[0] != '\0') {
               ~~~~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~~
ffmpeg_movie.c:979:35: error: no member named 'codec_name' in 'struct AVCodecContext'
        codec_name = decoder_ctx->codec_name;
                     ~~~~~~~~~~~  ^

PR:		227726
Reported by:	antoine (via exp-run)
This commit is contained in:
Jan Beich 2018-05-04 11:40:44 +00:00
parent b312b19581
commit f1bbcd1a5b
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=469018
2 changed files with 14 additions and 10 deletions

View file

@ -15,8 +15,6 @@ COMMENT= FFmpeg shared extension for php
LICENSE= GPLv2
LICENSE_FILE= ${WRKSRC}/LICENSE
BROKEN= fails to build with ffmpeg 4.0
LIB_DEPENDS= libgd.so:graphics/gd \
libavutil.so:multimedia/ffmpeg

View file

@ -1,6 +1,6 @@
--- ffmpeg_movie.c.orig 2014-07-23 17:57:31 UTC
+++ ffmpeg_movie.c
@@ -315,7 +315,7 @@ FFMPEG_PHP_CONSTRUCTOR(ffmpeg_movie, __c
@@ -315,7 +315,7 @@ FFMPEG_PHP_CONSTRUCTOR(ffmpeg_movie, __construct)
}
if (persistent) {
@ -9,7 +9,7 @@
/* resolve the fully-qualified path name to use as the hash key */
fullpath = expand_filepath(filename, NULL TSRMLS_CC);
@@ -350,7 +350,7 @@ FFMPEG_PHP_CONSTRUCTOR(ffmpeg_movie, __c
@@ -350,7 +350,7 @@ FFMPEG_PHP_CONSTRUCTOR(ffmpeg_movie, __construct)
}
} else { /* no existing persistant movie, create one */
@ -18,7 +18,7 @@
ffmovie_ctx = _php_alloc_ffmovie_ctx(1);
if (_php_open_movie_file(ffmovie_ctx, filename)) {
@@ -364,7 +364,7 @@ FFMPEG_PHP_CONSTRUCTOR(ffmpeg_movie, __c
@@ -364,7 +364,7 @@ FFMPEG_PHP_CONSTRUCTOR(ffmpeg_movie, __construct)
new_le.ptr = ffmovie_ctx;
if (FAILURE == zend_hash_update(&EG(persistent_list), hashkey,
@ -27,7 +27,7 @@
NULL)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING,
"Failed to register persistent resource");
@@ -508,7 +508,7 @@ static AVCodecContext* _php_get_decoder_
@@ -508,7 +508,7 @@ static AVCodecContext* _php_get_decoder_context(ff_mov
codec_id));
if (!decoder) {
@ -36,7 +36,7 @@
_php_get_filename(ffmovie_ctx));
return NULL;
}
@@ -964,13 +964,15 @@ static const char* _php_get_codec_name(f
@@ -964,17 +964,19 @@ static const char* _php_get_codec_name(ff_movie_contex
/* Copied from libavcodec/utils.c::avcodec_string */
if (p) {
codec_name = p->name;
@ -52,8 +52,14 @@
+ } else if (decoder_ctx->codec_id == AV_CODEC_ID_MPEG2TS) {
/* fake mpeg2 transport stream codec (currently not registered) */
codec_name = "mpeg2ts";
} else if (decoder_ctx->codec_name[0] != '\0') {
@@ -1223,7 +1225,7 @@ static AVFrame* _php_read_av_frame(ff_mo
- } else if (decoder_ctx->codec_name[0] != '\0') {
- codec_name = decoder_ctx->codec_name;
+ } else if (avcodec_get_name(decoder_ctx->codec_id)[0] != '\0') {
+ codec_name = avcodec_get_name(decoder_ctx->codec_id);
} else {
/* output avi tags */
if (decoder_ctx->codec_type == AVMEDIA_TYPE_VIDEO) {
@@ -1223,7 +1225,7 @@ static AVFrame* _php_read_av_frame(ff_movie_context *f
return NULL;
}
@ -62,7 +68,7 @@
/* read next frame */
while (av_read_frame(ffmovie_ctx->fmt_ctx, &packet) >= 0) {
@@ -1353,7 +1355,7 @@ static int _php_get_ff_frame(ff_movie_co
@@ -1353,7 +1355,7 @@ static int _php_get_ff_frame(ff_movie_context *ffmovie
ff_frame->keyframe = is_keyframe;
ff_frame->pts = pts;