Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TWCC manager relies on buffers meta for recovery percentage #13

Open
wants to merge 391 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
391 commits
Select commit Hold shift + click to select a range
650047f
rtpssrcdemux: avoid the log spam [pexhack]
Sep 14, 2016
402430c
vpx: Build SIMD-ified vpx plugin if available [pexhack]
May 29, 2015
d88a53b
vpxenc: Enable rate limit force keyframes events [pexhack]
Jun 23, 2014
3dbfdc4
vpxenc: Add tile-columns and tile-rows properties
May 12, 2017
ec95602
gstvpxenc: fix auto bitrate functionality v2
Jul 7, 2020
94d39d2
vpxdec: Add property "direct-rendering"
Nov 4, 2016
f17b074
vpxdec: Fix direct rendering, don't hold write access
havardgraff May 22, 2019
67db54d
vpxdec: allow VideoRegionOfInterestMeta
camilo-celis Sep 25, 2020
1495c43
speexenc: don't send silly segments mid-stream [pexhack]
havardgraff May 25, 2018
8aa3d22
rtph263ppay: remove annex-? fields in caps if not present [pexhack]
haaspors Jun 16, 2014
483069b
rtpg722pay: rtpg722depay: Change payload type to dynamic [pexhack]
Jul 28, 2014
535ea12
rtph263: Fix test to use latest avenc encoder properties
Jan 7, 2019
81aedeb
multiudpsink: downgrade WARNING to INFO
havardgraff Oct 2, 2018
18b5d1f
qtdemux: initialize variable to stop warning
havardgraff Apr 12, 2018
9882be2
qtdemux: fix leak in Opus caps
camilo-celis Jan 9, 2019
3e77291
qtdemux: Expose max raw audio samples per buffer as a property, rever…
rdharrison2 Oct 9, 2019
d827590
vp9enc: if VP9E_SET_ROW_MT is not available, don't use it
havardgraff Aug 11, 2021
eacebb7
rtpvp8depay: pexip changes
havardgraff Aug 23, 2021
b56a04d
vp9enc: disable VP9E_SET_COLOR_SPACE for now
havardgraff Aug 27, 2021
d3fad19
rtpvp9depay: revert to pexip-changes (for now)
havardgraff Sep 2, 2021
27d8bed
rtph261depay: don't set the DELTA_UNIT flag for H.261
havardgraff Sep 20, 2021
438f1d3
vpxenc: move temporal-scalability-layer to GValueArray
havardgraff Sep 20, 2021
44ad64c
[pexhack] find out about -objc-arc stuff
havardgraff Oct 24, 2019
6a85b24
gstgdiscreencapsrc: added window property
tbeloqui Jun 26, 2020
970f572
SCTP: expose gi bindings
jmb202 Mar 15, 2019
042bde3
SCTP: expose gi bindings for send meta
jmb202 Mar 26, 2019
0d40e04
SCTP: increase default streams to 65535
jmb202 Mar 26, 2019
f65a77c
SCTP: remove unnecessary preprocessor definitions
jmb202 Aug 14, 2019
80f265f
SCTP: add property to tweak heartbeat configuration
jmb202 Aug 14, 2019
267f98c
SCTP: change state on connection lost.
jmb202 Aug 14, 2019
e7f0760
SCTP: change state on shutdown
jmb202 Aug 15, 2019
10e821a
SCTP: record association id on connection.
jmb202 Aug 15, 2019
eaecb6b
SCTP: set association id when resetting streams
jmb202 Aug 15, 2019
31fe441
SCTP: require lock to be held before changing state
thomas-pexip Aug 25, 2021
9fc44af
SCTP: only reset streams in connected state
jmb202 Aug 16, 2019
aec3041
SCTP: factor out association changed event handlers
jmb202 Aug 16, 2019
c67e80b
SCTP: reset association when disconnected
thomas-pexip Aug 26, 2021
2781acc
SCTP: permit starting association when disconnected
jmb202 Aug 16, 2019
f0c605a
SCTP: expose a reconnect action
jmb202 Aug 16, 2019
3e8f247
SCTP: emit signal when association is restarted
jmb202 Aug 16, 2019
2e62974
SCTP: apply aggressive heartbeat using setsockopt
jmb202 Aug 17, 2019
aeb6f6a
SCTP: handle reconnect race
jmb202 Aug 17, 2019
1582ba1
SCTP: add action for explicit disconnection
jmb202 Aug 17, 2019
0e7489b
SCTP: move handle_sctp_comm_lost_or_shutdown
jmb202 Aug 18, 2019
2433d88
SCTP: shutdown stream sockets
jmb202 Aug 18, 2019
61e962f
SCTP: delay sctp-association-established(FALSE)
jmb202 Sep 18, 2019
bc3fca3
SCTP: isolate sticky events on sctpdec src pads
jmb202 Sep 19, 2019
0f16ca2
SCTPDec: ignore buffers pushed after cleanup
jmb202 Sep 19, 2019
5f58ed9
SCTP: add missing declaration
jmb202 Sep 24, 2019
8f87415
SCTP: track association validity
jmb202 Sep 24, 2019
dd064a5
SCTP: dispose associations
thomas-pexip Aug 26, 2021
dd545cb
SCTP: unref association in dispose
jmb202 Sep 24, 2019
3596f65
usrsctp: port pexip/usrsctp 'Fix deadlock during shutdown'
thomas-pexip Aug 18, 2021
0ad6119
usrsctp: port pexip/usrsctp 'Forcibly cancel iterator thread'
thomas-pexip Aug 18, 2021
1c0d67b
usrsctp: port pexip/usrsctp 'Remove iterator thread'
thomas-pexip Aug 18, 2021
fa8bcc9
usrsctp: port pexip/usrsctp 'init_random rename to init_usrsctp_rando…
thomas-pexip Aug 18, 2021
07d7841
SCTP: Downgrade data on disconnect log message
thomas-pexip Sep 16, 2021
4afd894
SCTP: retry after failure to bind with EADDRINUSE
thomas-pexip Sep 17, 2021
1169ac9
SCTP: Fix deadlock during usrsctp_shutdown or usrsctp_close (2)
thomas-pexip Oct 6, 2021
bda403c
SCTP: disconnect-reconnect association in unexpected state
thomas-pexip Oct 6, 2021
4af7924
SCTP: On EADDRINUSE increase retries for usrsctp_bind
thomas-pexip Dec 16, 2021
fd8f95d
SCTPDec: don't unref NULL association
w-miller Jun 21, 2022
7df38fc
SCTP: moving the removal of the associations from dispose() to finali…
tbeloqui Aug 3, 2022
2728b24
SCTP: fixing pthread_mutex_destroy call on a destroyed mutex
tbeloqui Sep 23, 2022
02d44da
SCTP: refactoring encoder and decoder
tbeloqui Sep 27, 2022
1c50070
SCTP: fixed race condition and memory leak
tbeloqui Sep 28, 2022
2754bf7
SCTP: add the srcpad to the sctpdec element before activing it
tbeloqui Sep 29, 2022
15560e4
SCTP: build with invariants checks in
tbeloqui Dec 19, 2022
1772f97
SCTP: added null checks
tbeloqui Nov 28, 2022
9e9e3ef
SCTP: cleaned up code in gst_sctp_association_change_state
tbeloqui Nov 28, 2022
61dfeb9
SCTP: applied gst-indent
tbeloqui Nov 28, 2022
36109e6
SCTP: ensure thread-safe access in gst_sctp_association_reset_stream
tbeloqui Nov 28, 2022
3a17d69
SCTP: access sctp_ass_sock with a lock in gst_sctp_association_send_data
tbeloqui Nov 28, 2022
346c98b
SCTP: removed manual counting of associations, use the hash table dir…
tbeloqui Nov 28, 2022
986ddde
SCTP: replace g_object_bind_property with g_object_set
tbeloqui Dec 20, 2022
1fa6536
gst-plugins-base/rtpdummyhdrextimpl: unused variable
havardgraff Sep 30, 2021
a8bf667
bytewriter: fix msvc warnings
havardgraff Oct 6, 2021
0d026dc
[pexhack] re-add gst_debug_syslog option
w-miller Oct 8, 2021
d026933
gstharness: make removal of peer pad thread safe
thomas-pexip Sep 15, 2021
4b1022c
gstharness: Limited support for bufferlists.
frederik-vestre-pexip Jan 24, 2022
d43b460
gstreamer/harness: make pull timesout configurable
camilo-celis Mar 18, 2022
576cbdb
rtprtxsend: add "limiting" and "stuffing"
havardgraff Mar 31, 2022
60a443e
rtprtxsend: fixed copying twcc ext-hdr if present
tbeloqui Apr 6, 2022
e63b545
[pexhack] rtphdrextroi: tmp support of multiple roi-types
camilo-celis Oct 28, 2021
3cff5dc
gstelement: log warning when pad name doesn't match any template
w-miller Dec 14, 2021
7919314
check: Fix valgrid suppresion for debug function list
amberik1 Dec 20, 2021
44f5594
gst/gst_gdb: allow doing a gst-dot of a local bin
camilo-celis Mar 1, 2022
b728829
gstvideodecoder: set all-headers to TRUE in the GstForceKeyUnit when
tbeloqui Mar 14, 2022
779c3cc
gstgdiscreencapsrc: fixed type conversion
tbeloqui Apr 8, 2022
cfebf20
gstglcolorconver: only set target target texture if any
camilo-celis Apr 18, 2022
51beb4e
gstglcolorconvert: fix possible out of bounds read
camilo-celis Apr 18, 2022
d5b29f2
meson: [msvc] only add warnings 4013, 4101 and 4189 if glib_checks is
tbeloqui Apr 8, 2022
6750618
rtprtx: add test to copy custom RoI ext-hdr
camilo-celis May 26, 2022
78fbedc
rtprtx: fix copying ext-hdr if present
tbeloqui Apr 6, 2022
937d853
libcheck: use SIGABRT instead of SIGKILL on timeout
camilo-celis Jun 11, 2022
5ee60ed
ahc2src: Introduce a new source for Android Camera 2 NDK API
havardgraff Apr 25, 2022
3b47360
androidmedia: added gstacamdeviceprovider
tbeloqui May 25, 2022
45af5dc
gstamdeviceprovider: added audio device provider for android
tbeloqui May 31, 2022
5e51904
gstamdeviceprovider: fixed a race condition in which the callback would
tbeloqui Jun 29, 2022
76e1b8b
applemedia/vtenc: fix deadlock
havardgraff Jul 3, 2022
79d1c11
applemedia/avaudiodeviceprovider: initial commit
tbeloqui Jul 26, 2022
b6d3bd2
winks/ksvideohelper: do not throw a warning if the media type is not
tbeloqui Aug 9, 2022
6b99618
gstpad: gst-indent
havardgraff Aug 22, 2022
f0a6413
gstpad: PEXHACK: log chain(list)funcs that take longer than 100ms
havardgraff Sep 2, 2022
9f5eb5e
ahc2src: cleanups and fixes
havardgraff Aug 26, 2022
dfec920
amcvideoenc: fix mess around level and profile for H.264
havardgraff Aug 30, 2022
22b5f49
ahc2src: improve the memory-handling of AImage to GstBuffer
havardgraff Aug 30, 2022
0808260
vpxenc: FIXME: revert upstream changes
havardgraff Sep 5, 2022
e00f4c1
rtpsession: FIXUP don't set running_time to -1 for no latency
havardgraff Sep 7, 2022
02b7a4d
rtpsession: don't report same stats twice
havardgraff Sep 23, 2022
fda2a31
vtenc: PEXHACK don't do B-frames from encoder if we can help it
havardgraff Sep 9, 2022
46db001
gstclock: FIXUP removal of weakref
havardgraff Sep 26, 2022
9810d5e
gstelement: do not hold the element lock when activating the pad in
tbeloqui Sep 29, 2022
7372adf
androidmedia: populate devices list before starting the GstAcamDevice…
tbeloqui Oct 6, 2022
7455be5
gstahc2src: added camera_status_t logging
tbeloqui Oct 6, 2022
738bba9
amdeviceprovider: fixing device-id property default value
tbeloqui Oct 10, 2022
be426fe
gstleaks: add "objects-alive-list" to the checkpoint
havardgraff Oct 14, 2022
1ac91a8
vp9dec: don't offer 10bit if libvpx does not support it
havardgraff Oct 17, 2022
929cde4
PEXHACK: revert gstvideorate to old version
havardgraff Oct 23, 2022
cf5e506
gstleaks: FIXUP remove unused variable
havardgraff Oct 27, 2022
b543bd0
gstamc: downgrading unsupported and unknowns messages to DEBUG
tbeloqui Oct 26, 2022
789deef
gstamc-codec-jni: added NULL check before unrefing codec->surface
tbeloqui Nov 1, 2022
e607042
gstamcvideoenc: avoid flushing the encoder twice if we have already f…
tbeloqui Nov 1, 2022
d2734c0
ahc2src: logging camera error messages
tbeloqui Nov 3, 2022
b607c4c
ahc2src: add PROP_EXPOSURE_MODE stub to avoid error of not implementing
tbeloqui Nov 3, 2022
74a4076
gstvalue/test: initialize unset string
camilo-celis Nov 17, 2022
a29601a
gstv4l2deviceprovider: return the device list in the same order of
tbeloqui Nov 21, 2022
1eee1bd
Media: Try to improve locking for gstvideoencoder
frederik-vestre-pexip Nov 21, 2022
8a581c7
More videoenc lock fixes
frederik-vestre-pexip Nov 24, 2022
40049d1
gstvideorate: Fix of buffer duration.
amberik1 Dec 7, 2022
7086392
Build MoltenVK for iOS and macOS
vadymmarkov Nov 25, 2022
6a3e000
video-info: PEXHACK reduce warning levels for spammy log
havardgraff Dec 16, 2022
c690b92
multiudpsink: use "current-time" not "running-time" for TWCC
havardgraff Dec 9, 2022
96653f3
Revert "gstpad: PEXHACK: log chain(list)funcs that take longer than 1…
havardgraff Jan 23, 2023
8cb6ec8
gst-plugins-base/playback: scanbuild fixes
tbeloqui Feb 6, 2023
896f377
rtprtxsend: introduce stuffing-max-burst-packets and use padding
havardgraff Feb 14, 2023
a401ca2
funnel: only forward events on active pads
havardgraff Feb 28, 2023
d0944d2
gstaudiodecoder: implemented DTX API
tbeloqui Feb 23, 2023
dde703b
SCTP: fixed scanbuild logic issues in user_mbuf.c
tbeloqui Jan 27, 2023
5a82caf
SCTP: refactor to fix encoder use-after-free bug
tbeloqui Feb 3, 2023
12fcc25
SCTP: do not assert on the decoders pad, as the association might be
tbeloqui Mar 21, 2023
10fc1f3
SCTP: changes to handle usrsctp bugs
tbeloqui Mar 23, 2023
11413bd
SCTP: removed extra assertion on association id
tbeloqui Mar 24, 2023
e96e7f9
SCTP: do not hold the association mutex when calling GstSctpAssociati…
tbeloqui Mar 29, 2023
94ef9d7
Revert "SCTP: do not hold the association mutex when calling GstSctpA…
tbeloqui Apr 3, 2023
053406a
SCTP: acquire lock in gst_sctp_association_incoming_packet()
tbeloqui Aug 11, 2023
65f313c
SCTP: removing usrsctp_shutdown() call, usrsctp_close() should have
tbeloqui Jun 22, 2023
1a7dab1
rtpopuspay: pass buffer offset to base_payload_push
w-miller Apr 21, 2023
8af883b
rtpbasedepayload: set default buffer offset based on RTP timestamp
w-miller Apr 21, 2023
3df6fbd
rtpbasedepayload: test: correct order of fields
camilo-celis May 4, 2023
b60aec9
vp8pay: dont store partition_size
camilo-celis May 24, 2023
8aa1eb4
vp8pay: introduce new property parse-frame
camilo-celis May 24, 2023
6950986
vp8pay: add additional comments around bitstream parsing
camilo-celis May 24, 2023
d8ca504
vp8pay: use DELTA_UNIT buffer flag know a frame type
camilo-celis May 24, 2023
374c8b2
rtpvp9pay: add parse-frames property
w-miller May 24, 2023
88699e5
check: compile libcompat when building statically
havardgraff Jan 31, 2023
cc150b0
ahc2src: add proper GstVideoMeta to the buffers
MishaBaranov Mar 8, 2023
fe72f6a
glshader: unlock before notify, and use dispose instead of finalize
havardgraff Mar 20, 2023
47fbedc
glupload: use attached buffer-alignment when uploading a VideoFrame
havardgraff Mar 20, 2023
649dbf9
amcvideoenc: default to -1 as I_FRAME_INTERVAL_DEFAULT
havardgraff Apr 12, 2023
829dca4
amcvideoenc: various fixes
havardgraff Apr 18, 2023
00239be
gstamc: various fixes
havardgraff Jun 2, 2023
47f9d64
gstreamer-full-static: fix plugins option parse for Windows
tbeloqui Apr 24, 2023
58c3aa9
netsim: introduce throttling
havardgraff Feb 22, 2023
bb2d5fa
netsim: improvements to the token bucket algorithm for limiting bw
havardgraff May 8, 2023
b4a091d
gst: use GST_API to properly import/export functions in gstevent and …
tbeloqui May 4, 2023
329d035
rtpvp8pay: don't payload partitions when forced not to parse the frame
camilo-celis Jul 4, 2023
59a1d23
audiodecoder: do not account for upstream latency when producing DTX …
tbeloqui Jul 11, 2023
a112f47
gstahcsrc: override GST_PHOTOGRAPHY_PROP_EXPOSURE_MODE property
tbeloqui Jul 12, 2023
8bb0ac2
gstamcvideoenc: fixed minimum value for PROP_I_FRAME_INTERVAL_FLOAT
tbeloqui Jul 12, 2023
da9d8f7
applemedia/vtenc: reset the encoder session if we fail to encode a frame
tbeloqui Aug 29, 2023
463649e
rtpvp9pay: extract resolution from sink caps (#9)
camilo-celis Aug 30, 2023
14fe9e1
vulkan: fix building for simulator
vadymmarkov Aug 31, 2023
bbbd633
vulkan: set default value for needs_exe_wrapper external property
vadymmarkov Aug 31, 2023
363ed96
vulkan: implemented set_window_handle in gstvkwindow_cocoa
tbeloqui Sep 5, 2023
cbb4bb9
vulkan: removed extra log
tbeloqui Sep 6, 2023
241072e
vulkan: gstvkwindow_cocoa use _gst_vulkan_cocoa_invoke_on_main rather
tbeloqui Sep 6, 2023
a9e447d
vulkan: fixed main thread checker warning
tbeloqui Sep 7, 2023
e383c8b
gstaes: fixed missing symbols and rework on dependencies
tbeloqui Sep 11, 2023
ac947d3
gstvkwindow: do not depend on close signal handlers to close the window
tbeloqui Sep 11, 2023
556f447
PEXHACK: remove 'medias' from gst-integration-testsuites
havardgraff Oct 1, 2023
4d56783
VPX: FIXUP: ISA BASED BUILD SYSTEM FOR LIBVPX
havardgraff Oct 1, 2023
393023d
FIXUP: VPX: we can't do vpx isa as a static library for now
havardgraff Oct 2, 2023
edd5970
avvidenc: start PTS from 0
havardgraff Oct 14, 2023
51e46df
avviddec: request sync point on decoding errors
havardgraff Oct 13, 2023
3af68bb
gstvkwindow: fixup, use _gst_vk_invoke_on_main
tbeloqui Oct 30, 2023
cb59c98
applemedia/vtenc: fix deadlock on shutdown
havardgraff Nov 15, 2023
7275804
avviddec: fixup on missing break after PROP_STD_COMPLIANCE
tbeloqui Nov 27, 2023
8156c71
basetransform: cache in- and outcaps
havardgraff Nov 29, 2023
2c8f6d9
v4l2src: attempt to set the current camera format after open is called
tbeloqui Dec 1, 2023
5032eec
gstreamer/libs/base: initial commit of GstBaseIdleSrc
havardgraff Mar 9, 2022
b6d7ddf
baseidlesrc: FIXUP gsize instead of guint
havardgraff Dec 2, 2023
149f565
mfvideosrc: added logic to read a frame to verify the src can access the
tbeloqui Dec 4, 2023
ae2f629
gstwasapi: add device is-default info.
bitflows Dec 8, 2023
4b76b61
Revert "avfvideosrc: Don't wait on main thread for permissions request"
bitflows Dec 11, 2023
823030e
gstosxaudio: add device is-default info.
bitflows Dec 15, 2023
b00affa
gstosxaudio: fix type in previous commit.
bitflows Dec 15, 2023
1c802d5
gstosxaudiodeviceprovider: add device change monitoring.
bitflows Dec 18, 2023
f1d64aa
gstmacos: stop and abort the NSApp rather than terminate
tbeloqui Dec 19, 2023
140c7f1
SCTP: Introducing dcsctp, a new C++ SCTP implementation from WebRTC
tbeloqui Sep 24, 2023
748804e
gstwasapidevice: compare also is-default value inside
tbeloqui Dec 21, 2023
e682583
SCTP: introducing crc32c
tbeloqui Dec 21, 2023
7d0ec5f
SCTP: compile in sse42 and arm64_crc32cc for crc32c
tbeloqui Dec 22, 2023
038c057
rtpmux: replace object lock with stream lock for chain function(s)
havardgraff Jan 2, 2024
0454ddc
rtpdtmfmux: fix log message to include more info about the buffer
havardgraff Jan 2, 2024
43229c5
isomp4: scanbuild fix
tbeloqui Jan 11, 2024
d5f4dca
gstpngenc: scanbuild fix
tbeloqui Jan 11, 2024
8812019
gstfdmemory: scanbuild fix
tbeloqui Jan 11, 2024
4a24a87
avfvideosrc: introducing device-unique-id property for device selection
tbeloqui Jan 17, 2024
740e0b0
applemedia/avf: implemented monitor support in avfdeviceprovider
tbeloqui Jan 17, 2024
db4b531
avfdeviceprovider: sort devices by position
tbeloqui Jan 18, 2024
80d74b0
SCTP: added LICENSE files for dsctp, abseil-cpp and crc32c
tbeloqui Feb 14, 2024
9bf47a9
applemedia/avfdeviceprovider: fix some warnings
havardgraff Feb 23, 2024
4a04041
videoencoder: forward downstream events directly
havardgraff Feb 23, 2024
4f00e7f
gstosxaudiodeviceprovider: skip VPAUAggregateAudioDevice devices
tbeloqui Mar 7, 2024
420a74d
gstosxaudiodeviceprovider: fixed data race in gst_osx_audio_device_ch…
tbeloqui Mar 11, 2024
d2136e4
mfvideosrc: open and close the underlying device source in change_sta…
tbeloqui Apr 4, 2024
1b92643
base/ext/alsadeviceprovider: don't crash on NULL caps
Apr 18, 2024
19e8c68
good/sys/v4l2object: only add pool to allocation query when one exists
Apr 18, 2024
5b01962
avfvideosrc: added lock-device property
tbeloqui Apr 18, 2024
9402436
osxaudiodeviceprovider: major upgrade
tbeloqui Apr 22, 2024
14d6269
bad/applemedia/vtdec: only enter loop when reorder queue is 'larger t…
havardgraff Apr 23, 2024
c6841d2
bad/applemedia/vtenc: fix a memory leak
havardgraff Apr 23, 2024
3ac462f
osxaudiodeviceprovider: fixed not updating the default device when it…
tbeloqui Apr 26, 2024
11f9086
applemedia/avaudiodeviceprovider: don't leak strings
havardgraff May 10, 2024
6d05e85
applemedia/vtdec: don't leak output_state
havardgraff May 10, 2024
5cf238c
osxaudiodeviceprovider: always provide a device_map when creating
havardgraff May 10, 2024
37dec8a
gstosxaudiodeviceprovider: do not filter out a valid device if the
tbeloqui May 15, 2024
add606a
osxaudiodeviceprovider: moved the handler for device changes into a
tbeloqui May 15, 2024
cd6351a
osxaudiodeviceprovider: do not hold the lock when updating devices
tbeloqui May 16, 2024
32310a9
osxaudiodeviceprovider: moved is-default to be a mutable device property
tbeloqui May 16, 2024
e0e1a46
osxaudiodeviceprovider: downgrading log message from error to debug
tbeloqui May 17, 2024
ca1a01b
applemedia/vtenc/dec: force a "flush" for each frame
havardgraff May 22, 2024
7a2f79b
applemedia/vtdec: handle decoder error status for iOS
tbeloqui May 23, 2024
e271b0c
good/ext/vp9enc: PEXHACK: add "missing" caps-fields for qtmux to work
havardgraff May 27, 2024
0a7ac89
TWCC accounts RTX recovery_pct in more general way
MishaBaranov Apr 12, 2024
103cf8e
Clear rtx remainings in rtpsession
MishaBaranov Apr 16, 2024
3fb7b7a
FEC Recovery pct
MishaBaranov Apr 24, 2024
7ef8472
TWCCManager sent packets are in fifo
MishaBaranov May 14, 2024
7f35ca9
Stats Packets are in fifo
MishaBaranov May 15, 2024
4ec6c2e
Improved logging
MishaBaranov May 31, 2024
e7c881a
Remove send-queue-lock
MishaBaranov May 31, 2024
c225627
Fix rtp reception stats
MishaBaranov May 31, 2024
38c6c9d
Fix rtptwccmanager bugs
MishaBaranov Jun 14, 2024
cb8caea
Fix leaks in rtptwccmanager
MishaBaranov Jun 17, 2024
da92f2d
Process recover pct in rtptwcc manager
MishaBaranov Jun 26, 2024
3a19d4e
TWCC Manager: move max processing into stats thread
MishaBaranov Jul 3, 2024
1cfb87e
RTP RepairMeta fix
MishaBaranov Jul 3, 2024
cc96b6e
TWCC Manager: fix a leak
MishaBaranov Jul 4, 2024
52faddc
Fix races
MishaBaranov Jul 5, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -67,3 +67,6 @@ subprojects/*/

# clangd integration
.cache/*

# from gdb Python helper scripts
__pycache__
3 changes: 0 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +0,0 @@
[submodule "subprojects/gst-integration-testsuites/medias"]
path = subprojects/gst-integration-testsuites/medias
url = https://gitlab.freedesktop.org/gstreamer/gst-integration-testsuites.git
3 changes: 2 additions & 1 deletion scripts/generate_init_static_plugins.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import argparse
import os
import platform
from string import Template

TEMPLATE = Template('''
Expand Down Expand Up @@ -93,7 +94,7 @@ def process_features(features_list, plugins, feature_prefix):
giomodules_declaration = []
giomodules_registration = []

if ',' in options.plugins or ':' in options.plugins:
if ',' in options.plugins or (platform.system() != 'Windows' and ':' in options.plugins):
print("Only ';' is allowed in the list of plugins.")
exit(1)

Expand Down
1 change: 0 additions & 1 deletion subprojects/gst-integration-testsuites/medias
Submodule medias deleted from 121f89
40 changes: 37 additions & 3 deletions subprojects/gst-libav/ext/libav/gstavviddec.c
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ GST_DEBUG_CATEGORY_STATIC (GST_CAT_PERFORMANCE);
#define DEFAULT_DIRECT_RENDERING TRUE
#define DEFAULT_MAX_THREADS 0
#define DEFAULT_OUTPUT_CORRUPT TRUE
#define DEFAULT_REQUIRE_KEYFRAME FALSE
#define REQUIRED_POOL_MAX_BUFFERS 32
#define DEFAULT_STRIDE_ALIGN 31
#define DEFAULT_ALLOC_PARAM { 0, DEFAULT_STRIDE_ALIGN, 0, 0, }
Expand All @@ -65,6 +66,7 @@ enum
PROP_OUTPUT_CORRUPT,
PROP_THREAD_TYPE,
PROP_STD_COMPLIANCE,
PROP_REQUIRE_KEYFRAME,
PROP_LAST
};

Expand Down Expand Up @@ -295,6 +297,11 @@ gst_ffmpegviddec_subclass_init (GstFFMpegVidDecClass * klass,
g_param_spec_boolean ("output-corrupt", "Output corrupt buffers",
"Whether libav should output frames even if corrupted",
DEFAULT_OUTPUT_CORRUPT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (gobject_class, PROP_REQUIRE_KEYFRAME,
g_param_spec_boolean ("require-keyframe", "Require keyframe",
"Whether the first frame is required to be a keyframe",
DEFAULT_REQUIRE_KEYFRAME,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));

caps = klass->in_plugin->capabilities;
if (caps & (AV_CODEC_CAP_FRAME_THREADS | AV_CODEC_CAP_SLICE_THREADS)) {
Expand Down Expand Up @@ -351,12 +358,14 @@ gst_ffmpegviddec_subinit (GstFFMpegVidDec * ffmpegdec)
ffmpegdec->output_corrupt = DEFAULT_OUTPUT_CORRUPT;
ffmpegdec->thread_type = DEFAULT_THREAD_TYPE;
ffmpegdec->std_compliance = DEFAULT_STD_COMPLIANCE;
ffmpegdec->require_keyframe = DEFAULT_REQUIRE_KEYFRAME;

GST_PAD_SET_ACCEPT_TEMPLATE (GST_VIDEO_DECODER_SINK_PAD (ffmpegdec));
gst_video_decoder_set_use_default_pad_acceptcaps (GST_VIDEO_DECODER_CAST
(ffmpegdec), TRUE);

gst_video_decoder_set_needs_format (GST_VIDEO_DECODER (ffmpegdec), TRUE);
gst_video_decoder_set_needs_sync_point (GST_VIDEO_DECODER (ffmpegdec), TRUE);
}

static void
Expand Down Expand Up @@ -1792,6 +1801,8 @@ gst_ffmpegviddec_video_frame (GstFFMpegVidDec * ffmpegdec,
} else if (res < 0) {
GST_VIDEO_DECODER_ERROR (ffmpegdec, 1, STREAM, DECODE, (NULL),
("Video decoding error"), *ret);
gst_video_decoder_request_sync_point (GST_VIDEO_DECODER_CAST (ffmpegdec),
frame, GST_VIDEO_DECODER_REQUEST_SYNC_POINT_DISCARD_INPUT);
goto beach;
}

Expand Down Expand Up @@ -1942,8 +1953,6 @@ gst_ffmpegviddec_video_frame (GstFFMpegVidDec * ffmpegdec,
GST_TIME_FORMAT, tmp, tmp->system_frame_number,
GST_TIME_ARGS (tmp->pts), GST_TIME_ARGS (tmp->dts));
/* drop extra ref and remove from frame list */
GST_VIDEO_CODEC_FRAME_FLAG_UNSET (tmp,
GST_FFMPEG_VIDEO_CODEC_FRAME_FLAG_ALLOCATED);
gst_video_decoder_release_frame (dec, tmp);
} else {
/* drop extra ref we got */
Expand All @@ -1954,15 +1963,31 @@ gst_ffmpegviddec_video_frame (GstFFMpegVidDec * ffmpegdec,
g_list_free (ol);
}

av_frame_unref (ffmpegdec->picture);
if (ffmpegdec->picture->key_frame ||
ffmpegdec->picture->pict_type == AV_PICTURE_TYPE_I)
GST_VIDEO_CODEC_FRAME_SET_SYNC_POINT (out_frame);
else
GST_VIDEO_CODEC_FRAME_UNSET_SYNC_POINT (out_frame);

if (frame)
GST_VIDEO_CODEC_FRAME_FLAG_UNSET (frame,
GST_FFMPEG_VIDEO_CODEC_FRAME_FLAG_ALLOCATED);
GST_LOG_OBJECT (ffmpegdec, "out_frame: pict_type %d, key_frame %d -> sync %d",
ffmpegdec->picture->pict_type, ffmpegdec->picture->key_frame,
GST_VIDEO_CODEC_FRAME_IS_SYNC_POINT (out_frame));

if (gst_video_decoder_get_subframe_mode (GST_VIDEO_DECODER (ffmpegdec)))
gst_video_decoder_have_last_subframe (GST_VIDEO_DECODER (ffmpegdec),
out_frame);
av_frame_unref (ffmpegdec->picture);

if (ffmpegdec->requiring_keyframe) {
if (GST_VIDEO_CODEC_FRAME_IS_SYNC_POINT (out_frame))
ffmpegdec->requiring_keyframe = FALSE;
else
gst_video_decoder_request_sync_point (GST_VIDEO_DECODER_CAST (ffmpegdec),
frame, GST_VIDEO_DECODER_REQUEST_SYNC_POINT_DISCARD_INPUT);
}

/* FIXME: Ideally we would remap the buffer read-only now before pushing but
* libav might still have a reference to it!
Expand Down Expand Up @@ -2158,6 +2183,8 @@ gst_ffmpegviddec_handle_frame (GstVideoDecoder * decoder,
*/
GST_VIDEO_DECODER_STREAM_UNLOCK (ffmpegdec);
if (avcodec_send_packet (ffmpegdec->context, &packet) < 0) {
gst_video_decoder_request_sync_point (GST_VIDEO_DECODER_CAST (ffmpegdec),
frame, GST_VIDEO_DECODER_REQUEST_SYNC_POINT_DISCARD_INPUT);
GST_VIDEO_DECODER_STREAM_LOCK (ffmpegdec);
av_packet_free_side_data (&packet);
goto send_packet_failed;
Expand Down Expand Up @@ -2209,6 +2236,8 @@ gst_ffmpegviddec_start (GstVideoDecoder * decoder)
ffmpegdec->context->opaque = ffmpegdec;
GST_OBJECT_UNLOCK (ffmpegdec);

ffmpegdec->requiring_keyframe = ffmpegdec->require_keyframe;

return TRUE;
}

Expand Down Expand Up @@ -2486,6 +2515,8 @@ gst_ffmpegviddec_set_property (GObject * object,
break;
case PROP_STD_COMPLIANCE:
ffmpegdec->std_compliance = g_value_get_enum (value);
case PROP_REQUIRE_KEYFRAME:
ffmpegdec->require_keyframe = g_value_get_boolean (value);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
Expand Down Expand Up @@ -2526,6 +2557,9 @@ gst_ffmpegviddec_get_property (GObject * object,
case PROP_STD_COMPLIANCE:
g_value_set_enum (value, ffmpegdec->std_compliance);
break;
case PROP_REQUIRE_KEYFRAME:
g_value_set_boolean (value, ffmpegdec->require_keyframe);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
Expand Down
3 changes: 3 additions & 0 deletions subprojects/gst-libav/ext/libav/gstavviddec.h
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,9 @@ struct _GstFFMpegVidDec
gint pool_height;
enum AVPixelFormat pool_format;
GstVideoInfo pool_info;

gboolean requiring_keyframe;
gboolean require_keyframe;
};

typedef struct _GstFFMpegVidDecClass GstFFMpegVidDecClass;
Expand Down
2 changes: 1 addition & 1 deletion subprojects/gst-libav/ext/libav/gstavvidenc.c
Original file line number Diff line number Diff line change
Expand Up @@ -932,7 +932,7 @@ gst_ffmpegvidenc_start (GstVideoEncoder * encoder)
return FALSE;
}

gst_video_encoder_set_min_pts (encoder, GST_SECOND * 60 * 60 * 1000);
gst_video_encoder_set_min_pts (encoder, 0);

return TRUE;
}
Expand Down
10 changes: 6 additions & 4 deletions subprojects/gst-plugins-bad/ext/aes/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,22 @@ aes_sources = [
]

aes_cargs = []
aes_dep = dependency('openssl', version : '>= 1.1.0', required : get_option('aes'))
if aes_dep.found()
openssl_dep = dependency('openssl', version : '>= 1.1.0', required : get_option('aes'))
if openssl_dep.found()
aes_cargs += ['-DHAVE_OPENSSL']
else
subdir_done()
endif

winsock2_dep = cc.find_library('ws2_32', required : false)
gst_aes_deps = [gstpbutils_dep, gstvideo_dep, openssl_dep, winsock2_dep, gio_dep, libm]

gstaes = library('gstaes',
aes_sources,
c_args : gst_plugins_bad_args + aes_cargs,
link_args : noseh_link_args,
include_directories : [configinc],
dependencies : [gstpbutils_dep, gstvideo_dep,
aes_dep, gio_dep, libm],
dependencies : gst_aes_deps,
install : true,
install_dir : plugins_install_dir,
)
Expand Down
Loading