From 9e3b26e31fd3c9c5a69bec6a034057e199fa8cb3 Mon Sep 17 00:00:00 2001 From: phunkyfish Date: Fri, 9 Apr 2021 11:32:50 +0100 Subject: [PATCH 1/4] Update ffmmpeg to 4.4 --- .../01-ffmpeg-detect-openssl-windows.patch | 9 +- ...-ffmpeg-zlib-config-conflict-windows.patch | 9 +- .../ffmpeg/03-ffmpeg-static-windows.patch | 11 +- .../common/ffmpeg/04-satip-improvements.patch | 271 ------------------ depends/common/ffmpeg/ffmpeg.sha256 | 2 +- depends/common/ffmpeg/ffmpeg.txt | 2 +- depends/common/ffmpeg/readme | 2 +- 7 files changed, 19 insertions(+), 287 deletions(-) delete mode 100644 depends/common/ffmpeg/04-satip-improvements.patch diff --git a/depends/common/ffmpeg/01-ffmpeg-detect-openssl-windows.patch b/depends/common/ffmpeg/01-ffmpeg-detect-openssl-windows.patch index 1ab50c11..7ebb0160 100644 --- a/depends/common/ffmpeg/01-ffmpeg-detect-openssl-windows.patch +++ b/depends/common/ffmpeg/01-ffmpeg-detect-openssl-windows.patch @@ -1,7 +1,8 @@ -diff -ur FFmpeg-n4.3/configure FFmpeg-n4.3-01/configure ---- FFmpeg-n4.3/configure 2020-06-15 19:41:15.000000000 +0100 -+++ FFmpeg-n4.3-01/configure 2020-06-18 09:00:30.000000000 +0100 -@@ -6468,6 +6468,8 @@ +diff --git a/configure b/configure +index d7a3f507e8..c3ebef869c 100755 +--- a/configure ++++ b/configure +@@ -6529,6 +6529,8 @@ enabled openssl && { check_pkg_config openssl openssl openssl/ssl.h OP check_lib openssl openssl/ssl.h SSL_library_init -lssl -lcrypto || check_lib openssl openssl/ssl.h SSL_library_init -lssl32 -leay32 || check_lib openssl openssl/ssl.h SSL_library_init -lssl -lcrypto -lws2_32 -lgdi32 || diff --git a/depends/common/ffmpeg/02-ffmpeg-zlib-config-conflict-windows.patch b/depends/common/ffmpeg/02-ffmpeg-zlib-config-conflict-windows.patch index a55aa35d..a2c13058 100644 --- a/depends/common/ffmpeg/02-ffmpeg-zlib-config-conflict-windows.patch +++ b/depends/common/ffmpeg/02-ffmpeg-zlib-config-conflict-windows.patch @@ -1,7 +1,8 @@ -diff -ur FFmpeg-n4.3-01/configure FFmpeg-n4.3-02/configure ---- FFmpeg-n4.3-01/configure 2020-06-18 09:00:30.000000000 +0100 -+++ FFmpeg-n4.3-02/configure 2020-06-18 09:05:33.000000000 +0100 -@@ -7555,6 +7555,9 @@ +diff --git a/configure b/configure +index c3ebef869c..56aa5281e1 100755 +--- a/configure ++++ b/configure +@@ -7627,6 +7627,9 @@ print_config CONFIG_ "$config_files" $CONFIG_LIST \ $CONFIG_EXTRA \ $ALL_COMPONENTS \ diff --git a/depends/common/ffmpeg/03-ffmpeg-static-windows.patch b/depends/common/ffmpeg/03-ffmpeg-static-windows.patch index e44ccc32..32e2ea97 100644 --- a/depends/common/ffmpeg/03-ffmpeg-static-windows.patch +++ b/depends/common/ffmpeg/03-ffmpeg-static-windows.patch @@ -1,7 +1,8 @@ -diff -ur FFmpeg-n4.3-02/configure FFmpeg-n4.3-03/configure ---- FFmpeg-n4.3-02/configure 2020-06-18 09:05:33.000000000 +0100 -+++ FFmpeg-n4.3-03/configure 2020-06-18 09:12:22.000000000 +0100 -@@ -5401,6 +5401,8 @@ +diff --git a/configure b/configure +index 56aa5281e1..ff0f47aaa1 100755 +--- a/configure ++++ b/configure +@@ -5439,6 +5439,8 @@ case $target_os in enabled shared && ! enabled small && test_cmd $windres --version && enable gnu_windres enabled x86_32 && check_ldflags -Wl,--large-address-aware shlibdir_default="$bindir_default" @@ -10,7 +11,7 @@ diff -ur FFmpeg-n4.3-02/configure FFmpeg-n4.3-03/configure SLIBPREF="" SLIBSUF=".dll" SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)' -@@ -5450,6 +5452,8 @@ +@@ -5488,6 +5490,8 @@ case $target_os in fi enabled x86_32 && check_ldflags -LARGEADDRESSAWARE shlibdir_default="$bindir_default" diff --git a/depends/common/ffmpeg/04-satip-improvements.patch b/depends/common/ffmpeg/04-satip-improvements.patch deleted file mode 100644 index 36c8e51d..00000000 --- a/depends/common/ffmpeg/04-satip-improvements.patch +++ /dev/null @@ -1,271 +0,0 @@ -From ed08d884ed019c32c88823667991ea0de168a85c Mon Sep 17 00:00:00 2001 -From: Aman Karmani -Date: Wed, 16 Dec 2020 12:40:16 -0800 -Subject: [PATCH 1/2] avformat/rtsp: add support for satip:// - -The SAT>IP protocol[1] is similar to RTSP. However SAT>IP servers -are assumed to speak only MP2T, so DESCRIBE is not used in the same -way. When no streams are active, DESCRIBE will return 404 according -to the spec (see section 3.5.7). When streams are active, DESCRIBE -will return a list of all current streams along with information -about their signal strengths. - -Previously, attemping to use ffmpeg with a rtsp:// url that points -to a SAT>IP server would work with some devices, but fail due to 404 -response on others. Further, if the SAT>IP server was already -streaming, ffmpeg would incorrectly consume the DESCRIBE SDP response -and join an existing tuner instead of requesting a new session with -the URL provided by the user. These issues have been noted by many -users across the internet[2][3][4]. - -This commit adds proper spec-compliant support for SAT>IP, including: - -- support for the satip:// psuedo-protocol[5] -- avoiding the use of DESCRIBE -- parsing and consuming the com.ses.streamID response header -- using "Transport: RTP/AVP;unicast" because the optional "/UDP" - suffix confuses some servers - -This patch has been validated against multiple SAT>IP vendor devices: - -- Telestar Digibit R2 - (https://telestar.de/en/produkt/digibit-r1-2/) -- Kathrein EXIP 418 - (https://www.kathrein-ds.com/en/produkte/sat-zf-verteiltechnik/sat-ip/227/exip-418) -- Kathrein EXIP 4124 - (https://www.kathrein-ds.com/en/products/sat-if-signal-distribution/sat-ip/226/exip-4124) -- Megasat MEG-8000 - (https://www.megasat.tv/produkt/sat-ip-server-3/) -- Megasat Twin - (https://www.megasat.tv/en/produkt/sat-ip-server-twin/) -- Triax TSS 400 - (https://www.conrad.com/p/triax-tss-400-mkii-sat-ip-server-595256) - -[1] https://www.satip.info/sites/satip/files/resource/satip_specification_version_1_2_2.pdf -[2] https://stackoverflow.com/questions/61194344/does-ffmpeg-violate-the-satip-specification-describe-syntax -[3] https://github.com/kodi-pvr/pvr.iptvsimple/issues/196 -[4] https://forum.kodi.tv/showthread.php?tid=359072&pid=2995884#pid2995884 -[5] https://www.satip.info/resources/channel-lists/ ---- - libavformat/rtsp.c | 53 ++++++++++++++++++++++++++++++++++++++----- - libavformat/rtsp.h | 6 +++++ - libavformat/rtspdec.c | 1 + - 3 files changed, 54 insertions(+), 6 deletions(-) - -diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c -index c7ffa07d9ee9..bb561911316c 100644 ---- a/libavformat/rtsp.c -+++ b/libavformat/rtsp.c -@@ -252,6 +252,25 @@ static void finalize_rtp_handler_init(AVFormatContext *s, RTSPStream *rtsp_st, - } - } - -+static int init_satip_stream(AVFormatContext *s) -+{ -+ RTSPState *rt = s->priv_data; -+ RTSPStream *rtsp_st = av_mallocz(sizeof(RTSPStream)); -+ if (!rtsp_st) -+ return AVERROR(ENOMEM); -+ dynarray_add(&rt->rtsp_streams, -+ &rt->nb_rtsp_streams, rtsp_st); -+ -+ rtsp_st->sdp_payload_type = 33; // MP2T -+ av_strlcpy(rtsp_st->control_url, -+ rt->control_uri, sizeof(rtsp_st->control_url)); -+ -+ rtsp_st->stream_index = -1; -+ init_rtp_handler(&ff_mpegts_dynamic_handler, rtsp_st, NULL); -+ finalize_rtp_handler_init(s, rtsp_st, NULL); -+ return 0; -+} -+ - /* parse the rtpmap description: /[/] */ - static int sdp_parse_rtpmap(AVFormatContext *s, - AVStream *st, RTSPStream *rtsp_st, -@@ -1116,6 +1135,9 @@ void ff_rtsp_parse_line(AVFormatContext *s, - } else if (av_stristart(p, "Content-Type:", &p)) { - p += strspn(p, SPACE_CHARS); - av_strlcpy(reply->content_type, p, sizeof(reply->content_type)); -+ } else if (av_stristart(p, "com.ses.streamID:", &p)) { -+ p += strspn(p, SPACE_CHARS); -+ av_strlcpy(reply->stream_id, p, sizeof(reply->stream_id)); - } - } - -@@ -1495,8 +1517,10 @@ int ff_rtsp_make_setup_request(AVFormatContext *s, const char *host, int port, - rtp_opened: - port = ff_rtp_get_local_rtp_port(rtsp_st->rtp_handle); - have_port: -- snprintf(transport, sizeof(transport) - 1, -- "%s/UDP;", trans_pref); -+ av_strlcat(transport, trans_pref, sizeof(transport)); -+ av_strlcat(transport, -+ rt->server_type == RTSP_SERVER_SATIP ? ";" : "/UDP;", -+ sizeof(transport)); - if (rt->server_type != RTSP_SERVER_REAL) - av_strlcat(transport, "unicast;", sizeof(transport)); - av_strlcatf(transport, sizeof(transport), -@@ -1559,6 +1583,15 @@ int ff_rtsp_make_setup_request(AVFormatContext *s, const char *host, int port, - goto fail; - } - -+ if (rt->server_type == RTSP_SERVER_SATIP && reply->stream_id[0]) { -+ char proto[128], host[128], path[512], auth[128]; -+ int port; -+ av_url_split(proto, sizeof(proto), auth, sizeof(auth), host, sizeof(host), -+ &port, path, sizeof(path), rt->control_uri); -+ ff_url_join(rt->control_uri, sizeof(rt->control_uri), proto, NULL, host, -+ port, "/stream=%s", reply->stream_id); -+ } -+ - /* XXX: same protocol for all streams is required */ - if (i > 0) { - if (reply->transports[0].lower_transport != rt->lower_transport || -@@ -1710,6 +1743,9 @@ int ff_rtsp_connect(AVFormatContext *s) - lower_rtsp_proto = "tls"; - default_port = RTSPS_DEFAULT_PORT; - rt->lower_transport_mask = 1 << RTSP_LOWER_TRANSPORT_TCP; -+ } else if (!strcmp(proto, "satip")) { -+ av_strlcpy(proto, "rtsp", sizeof(proto)); -+ rt->server_type = RTSP_SERVER_SATIP; - } - - if (*auth) { -@@ -1857,7 +1893,9 @@ int ff_rtsp_connect(AVFormatContext *s) - - /* request options supported by the server; this also detects server - * type */ -- for (rt->server_type = RTSP_SERVER_RTP;;) { -+ if (rt->server_type != RTSP_SERVER_SATIP) -+ rt->server_type = RTSP_SERVER_RTP; -+ for (;;) { - cmd[0] = 0; - if (rt->server_type == RTSP_SERVER_REAL) - av_strlcat(cmd, -@@ -1892,9 +1930,12 @@ int ff_rtsp_connect(AVFormatContext *s) - break; - } - -- if (CONFIG_RTSP_DEMUXER && s->iformat) -- err = ff_rtsp_setup_input_streams(s, reply); -- else if (CONFIG_RTSP_MUXER) -+ if (CONFIG_RTSP_DEMUXER && s->iformat) { -+ if (rt->server_type == RTSP_SERVER_SATIP) -+ err = init_satip_stream(s); -+ else -+ err = ff_rtsp_setup_input_streams(s, reply); -+ } else if (CONFIG_RTSP_MUXER) - err = ff_rtsp_setup_output_streams(s, host); - else - av_assert0(0); -diff --git a/libavformat/rtsp.h b/libavformat/rtsp.h -index b74cdc148a2c..239ea8a0eb9f 100644 ---- a/libavformat/rtsp.h -+++ b/libavformat/rtsp.h -@@ -188,6 +188,11 @@ typedef struct RTSPMessageHeader { - * Content type header - */ - char content_type[64]; -+ -+ /** -+ * SAT>IP com.ses.streamID header -+ */ -+ char stream_id[64]; - } RTSPMessageHeader; - - /** -@@ -210,6 +215,7 @@ enum RTSPServerType { - RTSP_SERVER_RTP, /**< Standards-compliant RTP-server */ - RTSP_SERVER_REAL, /**< Realmedia-style server */ - RTSP_SERVER_WMS, /**< Windows Media server */ -+ RTSP_SERVER_SATIP,/**< SAT>IP server */ - RTSP_SERVER_NB - }; - -diff --git a/libavformat/rtspdec.c b/libavformat/rtspdec.c -index bfbb01d586a6..113da975e12c 100644 ---- a/libavformat/rtspdec.c -+++ b/libavformat/rtspdec.c -@@ -724,6 +724,7 @@ static int rtsp_probe(const AVProbeData *p) - #if CONFIG_TLS_PROTOCOL - av_strstart(p->filename, "rtsps:", NULL) || - #endif -+ av_strstart(p->filename, "satip:", NULL) || - av_strstart(p->filename, "rtsp:", NULL)) - return AVPROBE_SCORE_MAX; - return 0; - -From f4cd5f621170e9680f3b1fcbf3a7205f436afe15 Mon Sep 17 00:00:00 2001 -From: Aman Karmani -Date: Mon, 21 Dec 2020 15:53:55 -0800 -Subject: [PATCH 2/2] avformat/rtsp: add satip_raw flag to receive raw mpegts - stream - -This can be used to receive the raw mpegts stream from a SAT>IP -server, by letting avformat handle the RTSP/RTP/UDP negotiation -and setup, but then simply passing the MP2T stream through -instead of demuxing it further. - -For example, this command would demux/remux the mpegts stream: - - SATIP_URL='satip://192.168.1.99:554/?src=1&freq=12188&pol=h&ro=0.35&msys=dvbs&mtype=qpsk&plts=off&sr=27500&fec=34&pids=0,17,18,167,136,47,71' - ffmpeg -i $SATIP_URL -map 0 -c copy -f mpegts -y remux.ts - -Whereas this command will simply write out the raw stream, with -the original PAT/PMT/PIDs intact: - - ffmpeg -rtsp_flags satip_raw -i $SATIP_URL -map 0 -c copy -f data -y raw.ts - -Signed-off-by: Aman Karmani ---- - libavformat/rtsp.c | 17 ++++++++++++++--- - libavformat/rtsp.h | 1 + - 2 files changed, 15 insertions(+), 3 deletions(-) - -diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c -index bb561911316c..69b0b8b11448 100644 ---- a/libavformat/rtsp.c -+++ b/libavformat/rtsp.c -@@ -89,6 +89,7 @@ const AVOption ff_rtsp_options[] = { - RTSP_FLAG_OPTS("rtsp_flags", "set RTSP flags"), - { "listen", "wait for incoming connections", 0, AV_OPT_TYPE_CONST, {.i64 = RTSP_FLAG_LISTEN}, 0, 0, DEC, "rtsp_flags" }, - { "prefer_tcp", "try RTP via TCP first, if available", 0, AV_OPT_TYPE_CONST, {.i64 = RTSP_FLAG_PREFER_TCP}, 0, 0, DEC|ENC, "rtsp_flags" }, -+ { "satip_raw", "export raw MPEG-TS stream instead of demuxing", 0, AV_OPT_TYPE_CONST, {.i64 = RTSP_FLAG_SATIP_RAW}, 0, 0, DEC, "rtsp_flags" }, - RTSP_MEDIATYPE_OPTS("allowed_media_types", "set media types to accept from the server"), - { "min_port", "set minimum local UDP port", OFFSET(rtp_port_min), AV_OPT_TYPE_INT, {.i64 = RTSP_RTP_PORT_MIN}, 0, 65535, DEC|ENC }, - { "max_port", "set maximum local UDP port", OFFSET(rtp_port_max), AV_OPT_TYPE_INT, {.i64 = RTSP_RTP_PORT_MAX}, 0, 65535, DEC|ENC }, -@@ -265,9 +266,19 @@ static int init_satip_stream(AVFormatContext *s) - av_strlcpy(rtsp_st->control_url, - rt->control_uri, sizeof(rtsp_st->control_url)); - -- rtsp_st->stream_index = -1; -- init_rtp_handler(&ff_mpegts_dynamic_handler, rtsp_st, NULL); -- finalize_rtp_handler_init(s, rtsp_st, NULL); -+ if (rt->rtsp_flags & RTSP_FLAG_SATIP_RAW) { -+ AVStream *st = avformat_new_stream(s, NULL); -+ if (!st) -+ return AVERROR(ENOMEM); -+ st->id = rt->nb_rtsp_streams - 1; -+ rtsp_st->stream_index = st->index; -+ st->codecpar->codec_type = AVMEDIA_TYPE_DATA; -+ st->codecpar->codec_id = AV_CODEC_ID_MPEG2TS; -+ } else { -+ rtsp_st->stream_index = -1; -+ init_rtp_handler(&ff_mpegts_dynamic_handler, rtsp_st, NULL); -+ finalize_rtp_handler_init(s, rtsp_st, NULL); -+ } - return 0; - } - -diff --git a/libavformat/rtsp.h b/libavformat/rtsp.h -index 239ea8a0eb9f..1310dd9c08ab 100644 ---- a/libavformat/rtsp.h -+++ b/libavformat/rtsp.h -@@ -429,6 +429,7 @@ typedef struct RTSPState { - #define RTSP_FLAG_RTCP_TO_SOURCE 0x8 /**< Send RTCP packets to the source - address of received packets. */ - #define RTSP_FLAG_PREFER_TCP 0x10 /**< Try RTP via TCP first if possible. */ -+#define RTSP_FLAG_SATIP_RAW 0x20 /**< Export SAT>IP stream as raw MPEG-TS */ - - typedef struct RTSPSource { - char addr[128]; /**< Source-specific multicast include source IP address (from SDP content) */ diff --git a/depends/common/ffmpeg/ffmpeg.sha256 b/depends/common/ffmpeg/ffmpeg.sha256 index 3b880a6f..4b764277 100644 --- a/depends/common/ffmpeg/ffmpeg.sha256 +++ b/depends/common/ffmpeg/ffmpeg.sha256 @@ -1 +1 @@ -d9b650a5aaaa6e2907a5578135b715ca532896fe9a6dc7a823c25f89790ff1ed +bea6d9f91cdbe4c5ad98e0878955ad5077df3883ef321fd4668ee1076de793fe diff --git a/depends/common/ffmpeg/ffmpeg.txt b/depends/common/ffmpeg/ffmpeg.txt index 6cf54662..b38972c8 100644 --- a/depends/common/ffmpeg/ffmpeg.txt +++ b/depends/common/ffmpeg/ffmpeg.txt @@ -1 +1 @@ -ffmpeg https://github.com/FFmpeg/FFmpeg/archive/n4.3.2.tar.gz \ No newline at end of file +ffmpeg https://github.com/FFmpeg/FFmpeg/archive/n4.4.tar.gz \ No newline at end of file diff --git a/depends/common/ffmpeg/readme b/depends/common/ffmpeg/readme index ee57b7cc..ef0e8279 100644 --- a/depends/common/ffmpeg/readme +++ b/depends/common/ffmpeg/readme @@ -2,4 +2,4 @@ All patches are required for windows and allow both static building and openssl. Note there is no impact to applying these to other platforms as openssl is not used (gnutls is used for non-windows). -Last update and patches refreshed for FFmpeg-n4.2.2 \ No newline at end of file +Last update and patches refreshed for FFmpeg-n4.4 \ No newline at end of file From 3ccc8a65678f7a21ee4b90a6a27990fa49bda91b Mon Sep 17 00:00:00 2001 From: phunkyfish Date: Sat, 10 Apr 2021 10:23:38 +0100 Subject: [PATCH 2/4] Update gas preprocessor for ffmpeg4.4 --- depends/common/gas-preprocessor/gas-preprocessor.sha256 | 2 +- depends/common/gas-preprocessor/gas-preprocessor.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/depends/common/gas-preprocessor/gas-preprocessor.sha256 b/depends/common/gas-preprocessor/gas-preprocessor.sha256 index 4f461983..d33bb304 100644 --- a/depends/common/gas-preprocessor/gas-preprocessor.sha256 +++ b/depends/common/gas-preprocessor/gas-preprocessor.sha256 @@ -1 +1 @@ -eaf9cf05806750061f911c5f5fbe084a8cf1093420bba09af2a893c567a8f947 +7b02240c5373c8ad4fe239c7b4018d1305dd6c64aefd4533313f8315bea1e100 diff --git a/depends/common/gas-preprocessor/gas-preprocessor.txt b/depends/common/gas-preprocessor/gas-preprocessor.txt index 52003af1..ed08a419 100644 --- a/depends/common/gas-preprocessor/gas-preprocessor.txt +++ b/depends/common/gas-preprocessor/gas-preprocessor.txt @@ -1 +1 @@ -gas-preprocessor https://github.com/FFmpeg/gas-preprocessor/archive/e6ccf371292af7f50f8386f5d2be7e563f71035f.tar.gz +gas-preprocessor https://github.com/FFmpeg/gas-preprocessor/archive/4daa611556a0558dfe537b4f7ad80f7e50a079c1.tar.gz From f36ac2ff791e83f967ac43b08d3fcf7ec0899653 Mon Sep 17 00:00:00 2001 From: phunkyfish Date: Sat, 10 Apr 2021 11:18:20 +0100 Subject: [PATCH 3/4] Ignore deprecation warning as errors for ffmpeg's av_init_packet() for windowsstore --- CMakeLists.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 19508c8e..d3016e40 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -104,6 +104,12 @@ endif() addon_version(inputstream.ffmpegdirect FFMPEGDIRECT) add_definitions(-DFFMPEGDIRECT_VERSION=${FFMPEGDIRECT_VERSION}) +if(CORE_SYSTEM_NAME STREQUAL windowsstore) + # TODO: This is required so FFmpeg's av_init_packet() deprecation does not break windows store builds + # Once this function is no longer used this can and should be removed. + add_compile_options(/wd4996) +endif() + build_addon(inputstream.ffmpegdirect FFMPEGDIRECT DEPLIBS) if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") From c76b3dd80e845549702ef940e6fbb6e6bc11eced Mon Sep 17 00:00:00 2001 From: phunkyfish Date: Fri, 9 Apr 2021 13:31:28 +0100 Subject: [PATCH 4/4] changelog and version v1.21.0 --- inputstream.ffmpegdirect/addon.xml.in | 7 ++++++- inputstream.ffmpegdirect/changelog.txt | 5 +++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/inputstream.ffmpegdirect/addon.xml.in b/inputstream.ffmpegdirect/addon.xml.in index d392841f..7771910c 100644 --- a/inputstream.ffmpegdirect/addon.xml.in +++ b/inputstream.ffmpegdirect/addon.xml.in @@ -1,7 +1,7 @@ @ADDON_DEPENDS@ @@ -26,6 +26,11 @@ fanart.jpg +v1.21.0 +- Update: FFmpeg to 4.4 +- Update: Update gas preprocessor for ffmpeg4.4 +- Fixed: Ignore deprecation warning as errors for ffmpegs av_init_packet() for windowsstore + v1.20.1 - Fixed: release version fix diff --git a/inputstream.ffmpegdirect/changelog.txt b/inputstream.ffmpegdirect/changelog.txt index ed72b1d0..16d33013 100644 --- a/inputstream.ffmpegdirect/changelog.txt +++ b/inputstream.ffmpegdirect/changelog.txt @@ -1,3 +1,8 @@ +v1.21.0 +- Update: FFmpeg to 4.4 +- Update: Update gas preprocessor for ffmpeg4.4 +- Fixed: Ignore deprecation warning as errors for ffmpeg's av_init_packet() for windowsstore + v1.20.1 - Fixed: release version fix