Date: Wednesday, April 6, 2022 @ 19:47:32 Author: arojas Revision: 1181636
archrelease: copy trunk to community-x86_64 Added: mediastreamer/repos/community-x86_64/PKGBUILD (from rev 1181635, mediastreamer/trunk/PKGBUILD) mediastreamer/repos/community-x86_64/ffmpeg5.patch (from rev 1181635, mediastreamer/trunk/ffmpeg5.patch) Deleted: mediastreamer/repos/community-x86_64/PKGBUILD mediastreamer/repos/community-x86_64/ffmpeg5.patch ---------------+ PKGBUILD | 74 ++++----- ffmpeg5.patch | 416 ++++++++++++++++++++++++++++---------------------------- 2 files changed, 245 insertions(+), 245 deletions(-) Deleted: PKGBUILD =================================================================== --- PKGBUILD 2022-04-06 19:47:20 UTC (rev 1181635) +++ PKGBUILD 2022-04-06 19:47:32 UTC (rev 1181636) @@ -1,37 +0,0 @@ -# Maintainer: -# Contributor: Andrea Scarpino <and...@archlinux.org> -# Contributor: Sergej Pupykin <pupykin.s+a...@gmail.com> -# Contributor: AdriĆ Arrufat <swiftscy...@gmail.com> -# Contributor: Mark Lee <m...@markelee.com> - -pkgname=mediastreamer -pkgver=5.1.10 -pkgrel=1 -pkgdesc='A library written in C that allows you to create and run audio and video streams' -arch=(x86_64) -url='https://gitlab.linphone.org/' -license=(GPL) -depends=(ortp ffmpeg bzrtp glew libsrtp) -makedepends=(cmake python bcunit doxygen) -source=(https://gitlab.linphone.org/BC/public/${pkgname}2/-/archive/$pkgver/${pkgname}2-$pkgver.tar.bz2 - ffmpeg5.patch) -sha256sums=('8dfb9db5326cc4e279f3775a5079fbce86f8f5caf05f52679ceb304800e0a5df' - 'e97e029cbbafe5245eaa6f92664224e4381eea5f45e403d5bfa6b0e5c2be0341') -validpgpkeys=('9774BC1725758EB16D639F8B3ECD52DEE2F56985') - -prepare() { - patch -d ${pkgname}2-$pkgver -p1 < ffmpeg5.patch -} - -build() { - cmake -B build -S ${pkgname}2-$pkgver \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DENABLE_STATIC=OFF \ - -DENABLE_STRICT=OFF - cmake --build build -} - -package() { - DESTDIR="$pkgdir" cmake --install build - rm -r "$pkgdir"/usr/include/OpenGL -} Copied: mediastreamer/repos/community-x86_64/PKGBUILD (from rev 1181635, mediastreamer/trunk/PKGBUILD) =================================================================== --- PKGBUILD (rev 0) +++ PKGBUILD 2022-04-06 19:47:32 UTC (rev 1181636) @@ -0,0 +1,37 @@ +# Maintainer: +# Contributor: Andrea Scarpino <and...@archlinux.org> +# Contributor: Sergej Pupykin <pupykin.s+a...@gmail.com> +# Contributor: AdriĆ Arrufat <swiftscy...@gmail.com> +# Contributor: Mark Lee <m...@markelee.com> + +pkgname=mediastreamer +pkgver=5.1.20 +pkgrel=1 +pkgdesc='A library written in C that allows you to create and run audio and video streams' +arch=(x86_64) +url='https://gitlab.linphone.org/' +license=(GPL) +depends=(ortp ffmpeg bzrtp glew libsrtp) +makedepends=(cmake python bcunit doxygen) +source=(https://gitlab.linphone.org/BC/public/${pkgname}2/-/archive/$pkgver/${pkgname}2-$pkgver.tar.bz2 + ffmpeg5.patch) +sha256sums=('d5d9c2436ab21eae99b0620435ede7c142ab9f6c3870eda4c88bd8402cd8a75e' + 'e97e029cbbafe5245eaa6f92664224e4381eea5f45e403d5bfa6b0e5c2be0341') +validpgpkeys=('9774BC1725758EB16D639F8B3ECD52DEE2F56985') + +prepare() { + patch -d ${pkgname}2-$pkgver -p1 < ffmpeg5.patch +} + +build() { + cmake -B build -S ${pkgname}2-$pkgver \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DENABLE_STATIC=OFF \ + -DENABLE_STRICT=OFF + cmake --build build +} + +package() { + DESTDIR="$pkgdir" cmake --install build + rm -r "$pkgdir"/usr/include/OpenGL +} Deleted: ffmpeg5.patch =================================================================== --- ffmpeg5.patch 2022-04-06 19:47:20 UTC (rev 1181635) +++ ffmpeg5.patch 2022-04-06 19:47:32 UTC (rev 1181636) @@ -1,208 +0,0 @@ -diff --git a/src/utils/ffmpeg-priv.c b/src/utils/ffmpeg-priv.c -index a3a801a9..9d696f17 100644 ---- a/src/utils/ffmpeg-priv.c -+++ b/src/utils/ffmpeg-priv.c -@@ -23,31 +23,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 - - -diff --git a/src/utils/ffmpeg-priv.h b/src/utils/ffmpeg-priv.h -index 18338201..3ffeb088 100644 ---- a/src/utils/ffmpeg-priv.h -+++ b/src/utils/ffmpeg-priv.h -@@ -79,6 +79,29 @@ static inline int avcodec_decode_video2(AVCodecContext *avctx, AVFrame *picture, - 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> -@@ -119,11 +142,6 @@ extern "C" { - 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 -diff --git a/src/utils/jpgloader-ffmpeg.c b/src/utils/jpgloader-ffmpeg.c -index 62cf41db..9952fab7 100644 ---- a/src/utils/jpgloader-ffmpeg.c -+++ b/src/utils/jpgloader-ffmpeg.c -@@ -75,7 +75,6 @@ mblk_t *jpeg2yuv(uint8_t *jpgbuf, int bufsize, MSVideoSize *reqsize){ - 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; -diff --git a/src/videofilters/ffmpegjpegwriter.c b/src/videofilters/ffmpegjpegwriter.c -index 5ee16b8d..8d1638f6 100644 ---- a/src/videofilters/ffmpegjpegwriter.c -+++ b/src/videofilters/ffmpegjpegwriter.c -@@ -174,7 +174,7 @@ static void jpg_process(MSFilter *f){ - 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 --git a/src/videofilters/h264dec.cpp b/src/videofilters/h264dec.cpp -index e3cd82cc..bed94bb0 100644 ---- a/src/videofilters/h264dec.cpp -+++ b/src/videofilters/h264dec.cpp -@@ -66,17 +66,15 @@ typedef struct _DecData{ - 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."); -@@ -164,7 +162,7 @@ static mblk_t *get_as_yuvmsg(MSFilter *f, DecData *s, AVFrame *orig){ - 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; - } -diff --git a/src/videofilters/videodec.c b/src/videofilters/videodec.c -index d5dbcaa2..2b223349 100644 ---- a/src/videofilters/videodec.c -+++ b/src/videofilters/videodec.c -@@ -69,7 +69,6 @@ static void dec_init(MSFilter *f, enum CodecID cid){ - 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; -@@ -661,7 +660,7 @@ static mblk_t *get_as_yuvmsg(MSFilter *f, DecState *s, AVFrame *orig){ - #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 */ -diff --git a/src/videofilters/videoenc.c b/src/videofilters/videoenc.c -index 42d3a05e..7e3575d4 100644 ---- a/src/videofilters/videoenc.c -+++ b/src/videofilters/videoenc.c -@@ -128,7 +128,6 @@ void ms_ffmpeg_log_callback(void* ptr, int level, const char* fmt, va_list vl) - - 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); -@@ -268,7 +267,6 @@ static void prepare(EncState *s){ - 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); -@@ -332,7 +330,6 @@ static void prepare_h263(EncState *s){ - #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{ -@@ -815,7 +812,7 @@ static void process_frame(MSFilter *f, mblk_t *inm){ - 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; Copied: mediastreamer/repos/community-x86_64/ffmpeg5.patch (from rev 1181635, mediastreamer/trunk/ffmpeg5.patch) =================================================================== --- ffmpeg5.patch (rev 0) +++ ffmpeg5.patch 2022-04-06 19:47:32 UTC (rev 1181636) @@ -0,0 +1,208 @@ +diff --git a/src/utils/ffmpeg-priv.c b/src/utils/ffmpeg-priv.c +index a3a801a9..9d696f17 100644 +--- a/src/utils/ffmpeg-priv.c ++++ b/src/utils/ffmpeg-priv.c +@@ -23,31 +23,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 + + +diff --git a/src/utils/ffmpeg-priv.h b/src/utils/ffmpeg-priv.h +index 18338201..3ffeb088 100644 +--- a/src/utils/ffmpeg-priv.h ++++ b/src/utils/ffmpeg-priv.h +@@ -79,6 +79,29 @@ static inline int avcodec_decode_video2(AVCodecContext *avctx, AVFrame *picture, + 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> +@@ -119,11 +142,6 @@ extern "C" { + 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 +diff --git a/src/utils/jpgloader-ffmpeg.c b/src/utils/jpgloader-ffmpeg.c +index 62cf41db..9952fab7 100644 +--- a/src/utils/jpgloader-ffmpeg.c ++++ b/src/utils/jpgloader-ffmpeg.c +@@ -75,7 +75,6 @@ mblk_t *jpeg2yuv(uint8_t *jpgbuf, int bufsize, MSVideoSize *reqsize){ + 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; +diff --git a/src/videofilters/ffmpegjpegwriter.c b/src/videofilters/ffmpegjpegwriter.c +index 5ee16b8d..8d1638f6 100644 +--- a/src/videofilters/ffmpegjpegwriter.c ++++ b/src/videofilters/ffmpegjpegwriter.c +@@ -174,7 +174,7 @@ static void jpg_process(MSFilter *f){ + 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 --git a/src/videofilters/h264dec.cpp b/src/videofilters/h264dec.cpp +index e3cd82cc..bed94bb0 100644 +--- a/src/videofilters/h264dec.cpp ++++ b/src/videofilters/h264dec.cpp +@@ -66,17 +66,15 @@ typedef struct _DecData{ + 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."); +@@ -164,7 +162,7 @@ static mblk_t *get_as_yuvmsg(MSFilter *f, DecData *s, AVFrame *orig){ + 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; + } +diff --git a/src/videofilters/videodec.c b/src/videofilters/videodec.c +index d5dbcaa2..2b223349 100644 +--- a/src/videofilters/videodec.c ++++ b/src/videofilters/videodec.c +@@ -69,7 +69,6 @@ static void dec_init(MSFilter *f, enum CodecID cid){ + 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; +@@ -661,7 +660,7 @@ static mblk_t *get_as_yuvmsg(MSFilter *f, DecState *s, AVFrame *orig){ + #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 */ +diff --git a/src/videofilters/videoenc.c b/src/videofilters/videoenc.c +index 42d3a05e..7e3575d4 100644 +--- a/src/videofilters/videoenc.c ++++ b/src/videofilters/videoenc.c +@@ -128,7 +128,6 @@ void ms_ffmpeg_log_callback(void* ptr, int level, const char* fmt, va_list vl) + + 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); +@@ -268,7 +267,6 @@ static void prepare(EncState *s){ + 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); +@@ -332,7 +330,6 @@ static void prepare_h263(EncState *s){ + #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{ +@@ -815,7 +812,7 @@ static void process_frame(MSFilter *f, mblk_t *inm){ + 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;