[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