[vlc-commits] [Git][videolan/vlc][master] 2 commits: avformat: demux: fix incompatible-pointer-types warning

Felix Paul Kühne (@fkuehne) gitlab at videolan.org
Fri Mar 3 19:37:57 UTC 2023



Felix Paul Kühne pushed to branch master at VideoLAN / VLC


Commits:
d7b792f7 by Thomas Guillem at 2023-03-03T17:19:32+00:00
avformat: demux: fix incompatible-pointer-types warning

Warning treated as error on some configuration.

Too bad av_stream_get_side_data() is not returning a void *...

- - - - -
c45fd72c by Thomas Guillem at 2023-03-03T17:19:32+00:00
contrib: ffmpeg update to 5.1.2 release

Remove 3 patches that were upstreamed.
Remove `--disable-avresample` since the library is gone now.

- - - - -


6 changed files:

- − contrib/src/ffmpeg/0001-avcodec-vp9-Do-not-destroy-uninitialized-mutexes-con.patch
- − contrib/src/ffmpeg/0001-dxva2_hevc-don-t-use-frames-as-reference-if-they-are.patch
- − contrib/src/ffmpeg/0001-lavc-aarch64-fix-relocation-out-of-range-error.patch
- contrib/src/ffmpeg/SHA512SUMS
- contrib/src/ffmpeg/rules.mak
- modules/demux/avformat/demux.c


Changes:

=====================================
contrib/src/ffmpeg/0001-avcodec-vp9-Do-not-destroy-uninitialized-mutexes-con.patch deleted
=====================================
@@ -1,74 +0,0 @@
-From e337ba0bce7595366e417b4eed8c2c321726bd87 Mon Sep 17 00:00:00 2001
-From: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
-Date: Thu, 2 Sep 2021 17:34:35 +0200
-Subject: [PATCH] avcodec/vp9: Do not destroy uninitialized mutexes/conditions
-
-Also do not destroy and reinitialize mutexes and conditions when
-certain input parameters change. Given that the decoder did not
-create these variables at all during init, uninitialized mutexes
-and conditions are destroyed before the very first initialization.
-This is undefined behaviour and certain threading implementations
-like pthreadGC2 crash when it is attempted.
-
-Fix this by initializing these objects once during init and freeing
-them in close.
-
-Reported-by: Steve Lhomme <robux4 at ycbcr.xyz>
-Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
----
- libavcodec/vp9.c | 18 +++++++++++++-----
- 1 file changed, 13 insertions(+), 5 deletions(-)
-
-diff --git a/libavcodec/vp9.c b/libavcodec/vp9.c
-index 4659f94ee8..1bdaba0aef 100644
---- a/libavcodec/vp9.c
-+++ b/libavcodec/vp9.c
-@@ -43,8 +43,6 @@ static void vp9_free_entries(AVCodecContext *avctx) {
-     VP9Context *s = avctx->priv_data;
- 
-     if (avctx->active_thread_type & FF_THREAD_SLICE)  {
--        pthread_mutex_destroy(&s->progress_mutex);
--        pthread_cond_destroy(&s->progress_cond);
-         av_freep(&s->entries);
-     }
- }
-@@ -66,9 +64,6 @@ static int vp9_alloc_entries(AVCodecContext *avctx, int n) {
- 
-         for (i  = 0; i < n; i++)
-             atomic_init(&s->entries[i], 0);
--
--        pthread_mutex_init(&s->progress_mutex, NULL);
--        pthread_cond_init(&s->progress_cond, NULL);
-     }
-     return 0;
- }
-@@ -1252,6 +1247,12 @@ static av_cold int vp9_decode_free(AVCodecContext *avctx)
- 
-     free_buffers(s);
-     vp9_free_entries(avctx);
-+#if HAVE_THREADS
-+    if (avctx->active_thread_type & FF_THREAD_SLICE) {
-+        pthread_mutex_destroy(&s->progress_mutex);
-+        pthread_cond_destroy(&s->progress_cond);
-+    }
-+#endif
-     av_freep(&s->td);
-     return 0;
- }
-@@ -1800,6 +1801,13 @@ static int init_frames(AVCodecContext *avctx)
-     VP9Context *s = avctx->priv_data;
-     int i;
- 
-+#if HAVE_THREADS
-+    if (avctx->active_thread_type & FF_THREAD_SLICE) {
-+        pthread_mutex_init(&s->progress_mutex, NULL);
-+        pthread_cond_init(&s->progress_cond, NULL);
-+    }
-+#endif
-+
-     for (i = 0; i < 3; i++) {
-         s->s.frames[i].tf.f = av_frame_alloc();
-         if (!s->s.frames[i].tf.f) {
--- 
-2.27.0.windows.1
-


=====================================
contrib/src/ffmpeg/0001-dxva2_hevc-don-t-use-frames-as-reference-if-they-are.patch deleted
=====================================
@@ -1,34 +0,0 @@
-From b2e89bd9c548d899ec2fecfc1aa550e9ddfe9777 Mon Sep 17 00:00:00 2001
-From: Steve Lhomme <robux4 at ycbcr.xyz>
-Date: Wed, 23 Mar 2022 14:52:31 +0100
-Subject: [PATCH] dxva2_hevc: don't use frames as reference if they are not
- marked as such
-
-Similar to how a frame is considered for referencing for the RefPicList array.
-This will do the same for RefPicSetStCurrBefore, RefPicSetStCurrAfter and
-RefPicSetLtCurr.
-
-Fixes playback of http://www.gbbsoft.pl/!download/!/Film1.mp4
-Ref. VLC issue https://code.videolan.org/videolan/vlc/-/issues/26738
-
-Signed-off-by: Steve Lhomme <robux4 at ycbcr.xyz>
----
- libavcodec/dxva2_hevc.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/libavcodec/dxva2_hevc.c b/libavcodec/dxva2_hevc.c
-index 98b3e74bd7..28c0b26733 100644
---- a/libavcodec/dxva2_hevc.c
-+++ b/libavcodec/dxva2_hevc.c
-@@ -249,7 +249,7 @@ static void fill_picture_parameters(const AVCodecContext *avctx, AVDXVAContext *
-             const HEVCFrame *frame = NULL; \
-             while (!frame && j < rpl->nb_refs) \
-                 frame = rpl->ref[j++]; \
--            if (frame) \
-+            if (frame && frame->flags & (HEVC_FRAME_FLAG_LONG_REF | HEVC_FRAME_FLAG_SHORT_REF)) \
-                 pp->ref_list[i] = get_refpic_index(pp, ff_dxva2_get_surface_index(avctx, ctx, frame->frame)); \
-             else \
-                 pp->ref_list[i] = 0xff; \
--- 
-2.27.0.windows.1
-


=====================================
contrib/src/ffmpeg/0001-lavc-aarch64-fix-relocation-out-of-range-error.patch deleted
=====================================
@@ -1,35 +0,0 @@
-From 378ad2f8fd7c5b5d9d1b3170282ce6b8a289ba07 Mon Sep 17 00:00:00 2001
-From: Zhao Zhili <zhilizhao at tencent.com>
-Date: Mon, 13 Sep 2021 15:24:09 +0800
-Subject: [PATCH] lavc/aarch64: fix relocation out of range error
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Use a temporary label instead of global function symbol for b.gt.
-
-Signed-off-by: Martin Storsjö <martin at martin.st>
----
- libavcodec/aarch64/videodsp.S | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/libavcodec/aarch64/videodsp.S b/libavcodec/aarch64/videodsp.S
-index 24067cc2af..fe2da0658e 100644
---- a/libavcodec/aarch64/videodsp.S
-+++ b/libavcodec/aarch64/videodsp.S
-@@ -19,10 +19,11 @@
- #include "libavutil/aarch64/asm.S"
- 
- function ff_prefetch_aarch64, export=1
-+1:
-         subs            w2,  w2,  #2
-         prfm            pldl1strm, [x0]
-         prfm            pldl1strm, [x0,  x1]
-         add             x0,  x0,  x1,  lsl #1
--        b.gt            X(ff_prefetch_aarch64)
-+        b.gt            1b
-         ret
- endfunc
--- 
-2.35.1
-


=====================================
contrib/src/ffmpeg/SHA512SUMS
=====================================
@@ -1 +1 @@
-0b232b66555237ed1a061807f88dbc5e6cd156e604c5d611bb6ac0c32b9006414cc4f30d632b482d9cb95f526df98b36efa3af9c863c52e7b7aa1a183545d915  ffmpeg-4.4.3.tar.xz
+04d9ae2a0e9238c469941d2bb9929d59b58f4be3830846cf91b02a440da17803a04b147a4e0168c9ffd6f62ca82187508bc7b53255de9787a97168278e903b9b  ffmpeg-5.1.2.tar.xz


=====================================
contrib/src/ffmpeg/rules.mak
=====================================
@@ -1,8 +1,8 @@
 # FFmpeg
 
 FFMPEG_HASH=ec47a3b95f88fc3f820b900038ac439e4eb3fede
-FFMPEG_MAJVERSION := 4.4
-FFMPEG_REVISION := 3
+FFMPEG_MAJVERSION := 5.1
+FFMPEG_REVISION := 2
 FFMPEG_VERSION := $(FFMPEG_MAJVERSION).$(FFMPEG_REVISION)
 FFMPEG_BRANCH=release/$(FFMPEG_MAJVERSION)
 FFMPEG_URL := https://ffmpeg.org/releases/ffmpeg-$(FFMPEG_VERSION).tar.xz
@@ -29,7 +29,6 @@ FFMPEGCONF = \
 	--disable-bsfs \
 	--disable-bzlib \
 	--disable-libvpx \
-	--disable-avresample \
 	--enable-bsf=vp9_superframe \
 	--disable-swresample \
 	--disable-iconv \
@@ -226,10 +225,7 @@ ffmpeg: ffmpeg-$(FFMPEG_VERSION).tar.xz .sum-ffmpeg
 	$(APPLY) $(SRC)/ffmpeg/0001-avcodec-mpeg12dec-don-t-call-hw-end_frame-when-start.patch
 	$(APPLY) $(SRC)/ffmpeg/0002-avcodec-mpeg12dec-don-t-end-a-slice-without-first_sl.patch
 	$(APPLY) $(SRC)/ffmpeg/0001-fix-mf_utils-compilation-with-mingw64.patch
-	$(APPLY) $(SRC)/ffmpeg/0001-avcodec-vp9-Do-not-destroy-uninitialized-mutexes-con.patch
 	$(APPLY) $(SRC)/ffmpeg/0001-ffmpeg-add-target_os-support-for-emscripten.patch
-	$(APPLY) $(SRC)/ffmpeg/0001-dxva2_hevc-don-t-use-frames-as-reference-if-they-are.patch
-	$(APPLY) $(SRC)/ffmpeg/0001-lavc-aarch64-fix-relocation-out-of-range-error.patch
 	$(MOVE)
 
 .ffmpeg: ffmpeg


=====================================
modules/demux/avformat/demux.c
=====================================
@@ -188,8 +188,9 @@ static void get_rotation(es_format_t *fmt, AVStream *s)
 static void get_dovi_config(es_format_t *fmt, AVStream *s)
 {
 #if LIBAVUTIL_VERSION_CHECK( 57, 16, 100 )
-    AVDOVIDecoderConfigurationRecord *cfg;
-    cfg = av_stream_get_side_data(s, AV_PKT_DATA_DOVI_CONF, NULL);
+    AVDOVIDecoderConfigurationRecord *cfg =
+    (AVDOVIDecoderConfigurationRecord *)
+        av_stream_get_side_data(s, AV_PKT_DATA_DOVI_CONF, NULL);
     if (!cfg)
         return;
 



View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/63357faa16f84eecbdb4a3dcf0ef4a7557de5257...c45fd72c96689d53187f8c06c6f2a8d3bea17b45

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/63357faa16f84eecbdb4a3dcf0ef4a7557de5257...c45fd72c96689d53187f8c06c6f2a8d3bea17b45
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance


More information about the vlc-commits mailing list