Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Backports:SLE-15-SP6:Update
mediastreamer2
fix-build-ffmpeg5.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File fix-build-ffmpeg5.patch of Package mediastreamer2
diff -ru a/src/utils/ffmpeg-priv.c b/src/utils/ffmpeg-priv.c --- a/src/utils/ffmpeg-priv.c 2023-06-14 09:45:13.000000000 +0200 +++ b/src/utils/ffmpeg-priv.c 2023-06-28 09:33:18.234674791 +0200 @@ -24,31 +24,22 @@ #ifndef HAVE_FUN_avcodec_encode_video2 int avcodec_encode_video2 (AVCodecContext *avctx, AVPacket *avpkt, const AVFrame *frame, int *got_packet_ptr) { - int error=avcodec_encode_video(avctx, avpkt->data, avpkt->size,frame); - if (error<0){ - return error; - }else{ - if (error>0) { - *got_packet_ptr=1; - avpkt->size=error; - }else *got_packet_ptr=0; - } - return 0; -} -#endif + int ret; + *got_packet_ptr = 0; + ret = avcodec_send_frame(avctx, frame); + if (ret < 0) + return ret; -#ifndef HAVE_FUN_avcodec_get_context_defaults3 /**/ -int avcodec_get_context_defaults3 (AVCodecContext *s, AVCodec *codec) { - avcodec_get_context_defaults(s); - return 0; -} + ret = avcodec_receive_packet(avctx, avpkt); + if (!ret) + *got_packet_ptr = 1; + if (ret == AVERROR(EAGAIN)) + return 0; -AVCodecContext *avcodec_alloc_context3(AVCodec *codec){ - return avcodec_alloc_context(); + return ret; } - #endif Only in b/src/utils: ffmpeg-priv.c.orig diff -ru a/src/utils/ffmpeg-priv.h b/src/utils/ffmpeg-priv.h --- a/src/utils/ffmpeg-priv.h 2023-06-14 09:45:13.000000000 +0200 +++ b/src/utils/ffmpeg-priv.h 2023-06-28 09:33:18.238674814 +0200 @@ -80,6 +80,29 @@ AVPacket *avpkt){ return avcodec_decode_video(avctx,picture, got_picture_ptr,avpkt->data,avpkt->size); } +#else +static inline int avcodec_decode_video2(AVCodecContext *avctx, AVFrame *frame, int *got_frame, AVPacket *pkt) +{ + int ret; + + *got_frame = 0; + + if (pkt) { + ret = avcodec_send_packet(avctx, pkt); + // In particular, we don't expect AVERROR(EAGAIN), because we read all + // decoded frames with avcodec_receive_frame() until done. + if (ret < 0) + return ret == AVERROR_EOF ? 0 : ret; + } + + ret = avcodec_receive_frame(avctx, frame); + if (ret < 0 && ret != AVERROR(EAGAIN) && ret != AVERROR_EOF) + return ret; + if (ret >= 0) + *got_frame = 1; + + return 0; +} #endif #if HAVE_AVCODEC_OLD_CODEC_IDS #include <libavcodec/old_codec_ids.h> @@ -120,11 +143,6 @@ int avcodec_encode_video2 (AVCodecContext *avctx, AVPacket *avpkt, const AVFrame *frame, int *got_packet_ptr); #endif -#ifndef HAVE_FUN_avcodec_get_context_defaults3 /**/ -int avcodec_get_context_defaults3 (AVCodecContext *s, AVCodec *codec); -AVCodecContext *avcodec_alloc_context3(AVCodec *codec); -#endif - #ifndef HAVE_FUN_avcodec_open2 /**/ int avcodec_open2 (AVCodecContext *avctx, AVCodec *codec, AVDictionary **options); #endif Only in b/src/utils: ffmpeg-priv.h.orig diff -ru a/src/utils/jpgloader-ffmpeg.c b/src/utils/jpgloader-ffmpeg.c --- a/src/utils/jpgloader-ffmpeg.c 2023-06-14 09:45:13.000000000 +0200 +++ b/src/utils/jpgloader-ffmpeg.c 2023-06-28 09:33:18.238674814 +0200 @@ -76,7 +76,6 @@ return NULL; } - avcodec_get_context_defaults3(&av_context,NULL); if (avcodec_open2(&av_context,codec,NULL)<0){ ms_error("jpeg2yuv: avcodec_open failed"); return NULL; Only in b/src/utils: jpgloader-ffmpeg.c.orig diff -ru a/src/videofilters/ffmpegjpegwriter.c b/src/videofilters/ffmpegjpegwriter.c --- a/src/videofilters/ffmpegjpegwriter.c 2023-06-14 09:45:13.000000000 +0200 +++ b/src/videofilters/ffmpegjpegwriter.c 2023-06-28 09:34:02.362930213 +0200 @@ -192,7 +192,7 @@ sws_freeContext(sws_ctx); av_frame_unref(s->pict); - avpicture_fill((AVPicture *)s->pict, (uint8_t *)jpegm->b_rptr, avctx->pix_fmt, avctx->width, avctx->height); + av_image_fill_arrays(s->pict->data,s->pict->linesize,(uint8_t*)jpegm->b_rptr,avctx->pix_fmt,avctx->width,avctx->height, 1); packet.data = comp_buf; packet.size = (int)comp_buf_sz; packet.pts = frame_ts; diff -ru a/src/videofilters/h264dec.cpp b/src/videofilters/h264dec.cpp --- a/src/videofilters/h264dec.cpp 2023-06-14 09:45:13.000000000 +0200 +++ b/src/videofilters/h264dec.cpp 2023-06-28 09:33:18.238674814 +0200 @@ -67,17 +67,15 @@ static void ffmpeg_init(void){ static bool_t done=FALSE; if (!done){ - avcodec_register_all(); done=TRUE; } } static void dec_open(DecData *d){ - AVCodec *codec; + const AVCodec *codec; int error; codec=avcodec_find_decoder(CODEC_ID_H264); if (codec==NULL) ms_fatal("Could not find H264 decoder in ffmpeg."); - avcodec_get_context_defaults3(&d->av_context, NULL); error=avcodec_open2(&d->av_context,codec, NULL); if (error!=0){ ms_fatal("avcodec_open() failed."); @@ -165,7 +163,7 @@ ms_error("%s: error in sws_scale().",f->desc->name); } #if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(50,43,0) // backward compatibility with Debian Squeeze (6.0) - mblk_set_timestamp_info(yuv_msg, (uint32_t)orig->pkt_pts); + mblk_set_timestamp_info(yuv_msg, (uint32_t)orig->pts); #endif return yuv_msg; } Only in b/src/videofilters: h264dec.cpp.orig diff -ru a/src/videofilters/videodec.c b/src/videofilters/videodec.c --- a/src/videofilters/videodec.c 2023-06-14 09:45:13.000000000 +0200 +++ b/src/videofilters/videodec.c 2023-06-28 09:33:18.238674814 +0200 @@ -70,7 +70,6 @@ DecState *s=(DecState *)ms_new0(DecState,1); ms_ffmpeg_check_init(); - avcodec_get_context_defaults3(&s->av_context, NULL); s->allocator = ms_yuv_buf_allocator_new(); s->av_codec=NULL; s->codec=cid; @@ -662,7 +661,7 @@ #endif ms_error("%s: error in ms_sws_scale().",f->desc->name); } - mblk_set_timestamp_info(yuv_msg, (uint32_t)orig->pkt_pts); + mblk_set_timestamp_info(yuv_msg, (uint32_t)orig->pts); return yuv_msg; } /* Bitmasks to select bits of a byte from low side */ Only in b/src/videofilters: videodec.c.orig diff -ru a/src/videofilters/videoenc.c b/src/videofilters/videoenc.c --- a/src/videofilters/videoenc.c 2023-06-14 09:45:13.000000000 +0200 +++ b/src/videofilters/videoenc.c 2023-06-28 09:33:18.238674814 +0200 @@ -129,7 +129,6 @@ void ms_ffmpeg_check_init(){ if(!avcodec_initialized){ - avcodec_register_all(); avcodec_initialized=TRUE; #ifdef ENABLE_LOG_FFMPEG av_log_set_level(AV_LOG_WARNING); @@ -269,7 +268,6 @@ AVCodecContext *c=&s->av_context; const int max_br_vbv=128000; - avcodec_get_context_defaults3(c, NULL); if (s->codec==CODEC_ID_MJPEG) { ms_message("Codec bitrate set to %i",(int)c->bit_rate); @@ -333,7 +331,6 @@ #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0) c->rtp_mode = 1; #endif - c->rtp_payload_size = s->mtu/2; if (s->profile==0){ s->codec=CODEC_ID_H263; }else{ @@ -816,7 +813,7 @@ ms_yuv_buf_init_from_mblk(&yuv, inm); /* convert image if necessary */ av_frame_unref(s->pict); - avpicture_fill((AVPicture*)s->pict,yuv.planes[0],c->pix_fmt,c->width,c->height); + av_image_fill_arrays(s->pict->data,s->pict->linesize,yuv.planes[0],c->pix_fmt,c->width,c->height,1); /* timestamp used by ffmpeg, unset here */ s->pict->pts=AV_NOPTS_VALUE; Only in b/src/videofilters: videoenc.c.orig
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor