fixes playback/stuttering with wrong mux/monotonically
increasing pts on frames that must be reordered.
no change for regular pts.
(cherry picked from commit 0834d39352)
0 should be returned in case of EOS or error, -1 means EAGAIN.
/me blames me for not reading the documentation.
(cherry picked from commit 249a76b921)
Signed-off-by: Thomas Guillem <thomas@gllm.fr>
0 should be returned in case of EOS or error, -1 means EAGAIN.
/me blames me for not reading the documentation.
(cherry picked from commit 59a3d85dd2)
Signed-off-by: Thomas Guillem <thomas@gllm.fr>
DRM modifiers communicate a description of the data layout in the buffers
exported/imported through various API.
On Intel HW this exports tiling information as well as potential compression.
Signed-off-by: Thomas Guillem <thomas@gllm.fr>
(cherry picked from commit 3633417edb)
Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
Add raw video fourcc conversion support to convert
from gstreamer representation (for strings that are
not equal to length 4) to vlc representation.
Signed-off-by: Thomas Guillem <thomas@gllm.fr>
(cherry picked from commit a6c52d8943)
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
Add support for vp9 and hevc
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
(cherry picked from commit 9894f84b12)
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
Fix#26048
To avoid sending a lot of small UDP packets.
(cherry picked from commit 84bc80de23) (rebased)
rebased:
* 3.0 doesn't have struct typedefs
Signed-off-by: Steve Lhomme <robux4@ycbcr.xyz>
It's the same thing as SRT_PARAM_PAYLOAD_SIZE.
(cherry picked from commit c90ef66a55) (edited)
edited:
* 3.0 doesn't have struct typedefs
* 3.0 has advanced parameter in some settings
Signed-off-by: Steve Lhomme <robux4@ycbcr.xyz>
Otherwise the zero initialized p_sys->sock will be closed in
srt_schedule_reconnect().
(cherry picked from commit e452063d6e) (rebased)
rebased:
* 3.0 has vlc_mutex_destroy()
Signed-off-by: Steve Lhomme <robux4@ycbcr.xyz>
Firstly, SRTO_PAYLOADSIZE has no effect for receiver. Secondly,
since there is no negotiation of payload size between sender and
receiver, the receiver should use a buffer at least
SRT_LIVE_MAX_PLSIZE bytes, otherwise the data can be truncated.
So the default value of option SRT_PARAM_CHUNK_SIZE is
inappropriate. User may know exactly the sender's payload size
to set the value for SRT_PARAM_CHUNK_SIZE, but there is no much
gain for doing that.
(cherry picked from commit 0b0cc7ff60) (edited)
edited:
* 3.0 had the advanced flag in obsolete parameters
Signed-off-by: Steve Lhomme <robux4@ycbcr.xyz>
This patch allows the use of the streamid option when using the SRT
protocol. For example, we can query the URL
srt://localhost:9710?streamid=demo if a stream server is listening on
localhost:9710 that supports multiple streams on the same server. Like
the others already implemented, this parameter can be overwritten in the
settings of the transport.
In a future patch, it may be good to support the full options. The
complete list can be found here:
https://github.com/Haivision/srt/blob/master/docs/APISocketOptions.md#list-of-options
A human-friendly version of this list can be found in the ffmpeg
documentation: https://ffmpeg.org/ffmpeg-all.html#srt
Signed-off-by: Thomas Guillem <thomas@gllm.fr>
(cherry picked from commit a55c95a9cc)
Signed-off-by: Steve Lhomme <robux4@ycbcr.xyz>
The deprecated macro `SRTO_TSBPDDELAY` has been deleted from SRT.
This prevents the compilation with SRT versions >= v1.4.2.
See the corresponding SRT commit 0e2201aff6b379979cec43fee5e8f162717f6346.
```
- SRTO_TSBPDDELAY = 23, // DEPRECATED. ALIAS: SRTO_LATENCY
```
The (unrecommended) `SRTO_LATENCY` should be used instead, which was
already available back then. See notice next to SRTO_LATENCY in the SRT
library source code for details on why it's not recommended.
Signed-off-by: Alexandre Janniaux <ajanni@videolabs.io>
(edited message)
(cherry picked from commit 6e8d774311)
Signed-off-by: Steve Lhomme <robux4@ycbcr.xyz>
for latency, maximum bandwidth, etc.
Signed-off-by: Thomas Guillem <thomas@gllm.fr>
(cherry picked from commit f98585725a) (edited)
edited:
* 4.0 used N_() on removed strings
* 3.0 needs advanced flag for add_password()
Signed-off-by: Steve Lhomme <robux4@ycbcr.xyz>
1. code can be shared between access/srt.c and access_output/srt.c
2. created a URL parser for SRT parameters stored in URL
Signed-off-by: Thomas Guillem <thomas@gllm.fr>
(cherry picked from commit 15dea8ecb8) (edited)
edited:
* access out was missing dummy.cpp on 3.0
Signed-off-by: Steve Lhomme <robux4@ycbcr.xyz>
libsrt input is asynchonously buffered internally and it makes sense to empty
those receive buffers as much as possible on every signaled receive event from
epoll. Doing so reduces context switching/re-scheduling and improves
performance.
Signed-off-by: Thomas Guillem <thomas@gllm.fr>
(cherry picked from commit ca7b0fcc33) (rebased)
rebased:
* master has direct stream_sys_t typedef
Signed-off-by: Steve Lhomme <robux4@ycbcr.xyz>
It is possible to get an empty read from libsrt and it should not be treated as
EOF.
Signed-off-by: Thomas Guillem <thomas@gllm.fr>
(cherry picked from commit 34048bef8e)
Signed-off-by: Steve Lhomme <robux4@ycbcr.xyz>
The field AVStream.cur_dts has been removed in libavformat 59.2.103.
Refs vlc4/c2ba623f0ad425e7743fca0bdc251d5bc9289e77
Refs ffmpeg/591b88e6787c4e678237f02a50421d101abd25c2
Since Jan 21, 2018 filename field was deprecated in favor
of `url` which now has no length restrictions.
From doc/APIChanges:
```
2018-01-28 - ea3672b7d6 - lavf 58.7.100 - avformat.h
Deprecate AVFormatContext filename field which had limited length, use the
new dynamically allocated url field instead.
```
The URL field is freed by libavformat in avformat_free_context() in
avformat_CloseMux().
Signed-off-by: Alexandre Janniaux <ajanni@videolabs.io>
(cherry picked from commit a2ce2e3a84)
Refs ffmpeg/30f7021aa0be2c978aefb73894b643c9bafbf51c
Sidedata AV_PKT_DATA_QUALITY_STATS has been present since 2015 on
version 56.51.100. Also previous coded_frame->pict_type doesn't seem to
be present anymore in ffmpeg master.
(cherry picked from commit 8ed4f2a7a2)
Refs ffmpeg/11bc79089378a5ec00547d0f85bc152afdf30dfa
The field AVFrame.pkt_pts was removed in lavc 56.24.0 / 57.61.100:
> Decoders now export the frame timestamp as AVFrame.pts. It was
> previously exported as AVFrame.pkt_pts, which is now deprecated.
Fix the inverted deprecation check and use LIBAVCODEC_VERSION_CHECK() to
target the exact version.
Refs vlc4/991ba74b018a201cc6cc73da713fb3d62fd7ff60
Refs ffmpeg/32c8359093d1ff4f45ed19518b449b3ac3769d27 (deprecation)
Refs ffmpeg/6e30b35b85b81c802e52a1078ec7a3097e353c6d (removal)
AVCodecContext.thread_safe_callbacks will be removed in API 60:
> Thread-unsafe get_buffer2() implementations will be invalid starting
> with LIBAVCODEC_VERSION_MAJOR=60; in other words, libavcodec will
> behave as if this field was always set to 1.
In current FFmpeg 5.0 (API 59), we must still set the variable, and it
is already deprecated, so we can't get rid of the deprecation warning.
ffmpeg/a83098ab03a47179d54a9b9c8bcefc81b9c6aafd (deprecation)
ffmpeg/54e5d21acabb452e5680de5db3bf7567d351d68e (doc)
(cherry picked from commit 02e8981b57)
Refs ffmpeg/626535f6a169e2d821b969e0ea77125ba7482113
(cherry picked from 3312a960cb)
The condition has been adapted from the original commit because VLC3
supports both ffmpeg and libav contrary to VLC4.
Refs ffmpeg/56450a0ee4fdda160f4039fc2ae33edfd27765c9
(cherry picked from commit 5069e1cc38)
The condition has been adapted from the original commit because VLC3
supports both ffmpeg and libav contrary to VLC4.
Refs ffmpeg/56450a0ee4fdda160f4039fc2ae33edfd27765c9
(cherry picked from commit d0710040f0)
The condition has been adapted from the original commit because VLC3
supports both ffmpeg and libav contrary to VLC4.
This reverts commit 2437484d76.
The referenced commit is not a good way of fixing the issue described in
its commit message. Attaching a dummy GPU to the pl_shader makes the
shader think a GPU is actually available, and can lead to e.g. the use
of a dither texture (which VLC has no mapping code for, and would thus
result in a shader compilation error).
All of the queried limits are also irrelevant for the way we use shaders
in this code, since they only affect GPU resources (which we can't use)
or texture sampling (which we don't use).
Fixes#26503 by removing the conflicting code
New M1 Macs contain a notch, covering part of the screen. Analog to
the Quicktime player, when implementing VLCs internal fullscreen,
the video is scaled inside the safe area of the notch only, leaving
the top area black.
Fixes#26291