GStreamer issueshttps://gitlab.freedesktop.org/groups/gstreamer/-/issues2019-08-01T08:51:52Zhttps://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/issues/185Only half of num-buffers frames were decoded in AVC/JPEG decode2019-08-01T08:51:52ZNvGIGABYTEJrOnly half of num-buffers frames were decoded in AVC/JPEG decodeWe have a HSD issue where only half of the num-buffers sets in “filesrc” plugin were decoded. Observed issue when testing with Open Source gstvaapi + iHD.
Do you know if this is expected or is this a bug?
Eg: (AVC)
gst-launch-1.0 -v...We have a HSD issue where only half of the num-buffers sets in “filesrc” plugin were decoded. Observed issue when testing with Open Source gstvaapi + iHD.
Do you know if this is expected or is this a bug?
Eg: (AVC)
gst-launch-1.0 -v filesrc location=/mnt/video/sanity/littleGirl_320x240.h264 num-buffers=30 ! h264parse ! vaapih264dec ! filesink location=output/avcdec_320x240.yuv
>>> [Result] num-buffers=30, output number of frames=15
Eg: (JPEG)
gst-launch-1.0 -v filesrc location=/mnt/video/sanity/littleGirl_320x240.jpg num-buffers=30 ! jpegparse ! vaapijpegdec ! filesink location=output/jpegdec_320x240.yuv
>>> [Result] num-buffers=30, output number of frames=15https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/645pipeline random crash when failed to negotiate with glimagesink.2020-11-04T07:58:05ZHe Junyanpipeline random crash when failed to negotiate with glimagesink.The pipeline
gst-launch-1.0 videotestsrc num-buffers=30 ! capsfilter caps=video/x-raw,format=P010_10LE,width=480,height=320 ! vaapipostproc format=bgr10a2-le ! glimagesink
random crash.
The negotiate will fail, which is expected, but t...The pipeline
gst-launch-1.0 videotestsrc num-buffers=30 ! capsfilter caps=video/x-raw,format=P010_10LE,width=480,height=320 ! vaapipostproc format=bgr10a2-le ! glimagesink
random crash.
The negotiate will fail, which is expected, but the crash is unexpected.
with setting the debug level to
export GST_DEBUG=*:INFO
The crash is easy to duplocatehttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/419pipeline random crash when failed to negotiate with glimagesink.2019-08-02T09:01:44ZHe Junyanpipeline random crash when failed to negotiate with glimagesink.The pipeline
gst-launch-1.0 videotestsrc num-buffers=30 ! capsfilter caps=video/x-raw,format=P010_10LE,width=480,height=320 ! vaapipostproc format=bgr10a2-le ! glimagesink
random crash.
The negotiate will fail, which is expected, but t...The pipeline
gst-launch-1.0 videotestsrc num-buffers=30 ! capsfilter caps=video/x-raw,format=P010_10LE,width=480,height=320 ! vaapipostproc format=bgr10a2-le ! glimagesink
random crash.
The negotiate will fail, which is expected, but the crash is unexpected.
with setting the debug level to
export GST_DEBUG=*:INFO
The crash is easy to duplocatehttps://gitlab.freedesktop.org/gstreamer/gst-template/-/issues/5Writing plugin according doc results in compile error2019-07-30T22:05:14ZHermann Stamm-WilbrandtWriting plugin according doc results in compile errorI worked with gstreamer on Raspbian in November 2017:
https://www.raspberrypi.org/forums/viewtopic.php?f=43&t=197124#p1232038
I did not run "gst-launch-1.0 --version" at that time, so do not know what gstreamer version was on my Raspbi...I worked with gstreamer on Raspbian in November 2017:
https://www.raspberrypi.org/forums/viewtopic.php?f=43&t=197124#p1232038
I did not run "gst-launch-1.0 --version" at that time, so do not know what gstreamer version was on my Raspbian at that point in time. I followed the instructions:
https://gstreamer.freedesktop.org/documentation/plugin-development/basics/boiler.html
and everything compiled and worked at that time, as documented.
Yesterday I followed the instructions again, and the generated template did not compile. Gstreamer version on my Raspbian Sketch is 1.10.4 today. Compiling errors out on missing defines for GST_LICENSE, GST_PACKAGE_NAME and GST_PACKAGE_ORIGIN.
Cause of the compiler error seems to be this 11yo checkin from Sebastian:
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/commit/e4476e15e02bdd7c40a4e4404ab6da71ad3ea4dd
It seems that was not effective on Raspbian gstreamer in 2017.
I did add the three defines to src/gstplugin.h and commented out the audio example. I had a hard time to learn that plugin gets blacklisted without a valid license and how to diagnose:
https://www.raspberrypi.org/forums/viewtopic.php?f=43&t=247034&p=1509968#p1509968
So this is definitely a "does not compile bug".
Either the three defines need to be added to src/gstplugin.h and audio example.
Or boilerplate documentation needs to call to add the three defines and warn on having to use a valid license.https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1039nvenc: build failure on msvc x862019-08-21T07:21:19ZTim-Philipp Müllertim@centricular.comnvenc: build failure on msvc x86Build on 32-bit MSVC fails like [this](https://gitlab.freedesktop.org/xclaesse/gst-ci/-/jobs/457499):
```
[3340/3809] Compiling C object subprojects/gst-plugins-bad/sys/5bc2b03@@gstnvcodec@sha/gstnvenc.c.obj.
FAILED: subprojects/gst-plu...Build on 32-bit MSVC fails like [this](https://gitlab.freedesktop.org/xclaesse/gst-ci/-/jobs/457499):
```
[3340/3809] Compiling C object subprojects/gst-plugins-bad/sys/5bc2b03@@gstnvcodec@sha/gstnvenc.c.obj.
FAILED: subprojects/gst-plugins-bad/sys/5bc2b03@@gstnvcodec@sha/gstnvenc.c.obj
cl @subprojects/gst-plugins-bad/sys/5bc2b03@@gstnvcodec@sha/gstnvenc.c.obj.rsp
gstnvenc.c(53): error C2373: 'NvEncOpenEncodeSessionEx': redefinition; different type modifiers
nvEncodeAPI.h(3087): note: see declaration of 'NvEncOpenEncodeSessionEx'
gstnvenc.c(61): error C2373: 'NvEncDestroyEncoder': redefinition; different type modifiers
nvEncodeAPI.h(3024): note: see declaration of 'NvEncDestroyEncoder'
gstnvenc.c(68): error C2373: 'NvEncGetEncodeGUIDs': redefinition; different type modifiers
nvEncodeAPI.h(2001): note: see declaration of 'NvEncGetEncodeGUIDs'
gstnvenc.c(76): error C2373: 'NvEncGetEncodeProfileGUIDCount': redefinition; different type modifiers
nvEncodeAPI.h(2032): note: see declaration of 'NvEncGetEncodeProfileGUIDCount'
gstnvenc.c(85): error C2373: 'NvEncGetEncodeProfileGUIDs': redefinition; different type modifiers
nvEncodeAPI.h(2069): note: see declaration of 'NvEncGetEncodeProfileGUIDs'
gstnvenc.c(94): error C2373: 'NvEncGetInputFormats': redefinition; different type modifiers
nvEncodeAPI.h(2131): note: see declaration of 'NvEncGetInputFormats'
gstnvenc.c(102): error C2373: 'NvEncGetEncodePresetCount': redefinition; different type modifiers
nvEncodeAPI.h(2193): note: see declaration of 'NvEncGetEncodePresetCount'
gstnvenc.c(111): error C2373: 'NvEncGetEncodePresetGUIDs': redefinition; different type modifiers
nvEncodeAPI.h(2237): note: see declaration of 'NvEncGetEncodePresetGUIDs'
gstnvenc.c(120): error C2373: 'NvEncGetEncodePresetConfig': redefinition; different type modifiers
nvEncodeAPI.h(2276): note: see declaration of 'NvEncGetEncodePresetConfig'
gstnvenc.c(129): error C2373: 'NvEncGetEncodeCaps': redefinition; different type modifiers
nvEncodeAPI.h(2163): note: see declaration of 'NvEncGetEncodeCaps'
gstnvenc.c(137): error C2373: 'NvEncGetSequenceParams': redefinition; different type modifiers
nvEncodeAPI.h(2862): note: see declaration of 'NvEncGetSequenceParams'
gstnvenc.c(145): error C2373: 'NvEncInitializeEncoder': redefinition; different type modifiers
nvEncodeAPI.h(2361): note: see declaration of 'NvEncInitializeEncoder'
gstnvenc.c(152): error C2373: 'NvEncReconfigureEncoder': redefinition; different type modifiers
nvEncodeAPI.h(3182): note: see declaration of 'NvEncReconfigureEncoder'
gstnvenc.c(159): error C2373: 'NvEncRegisterResource': redefinition; different type modifiers
nvEncodeAPI.h(3117): note: see declaration of 'NvEncRegisterResource'
gstnvenc.c(166): error C2373: 'NvEncUnregisterResource': redefinition; different type modifiers
nvEncodeAPI.h(3148): note: see declaration of 'NvEncUnregisterResource'
gstnvenc.c(173): error C2373: 'NvEncMapInputResource': redefinition; different type modifiers
nvEncodeAPI.h(2959): note: see declaration of 'NvEncMapInputResource'
gstnvenc.c(180): error C2373: 'NvEncUnmapInputResource': redefinition; different type modifiers
nvEncodeAPI.h(2994): note: see declaration of 'NvEncUnmapInputResource'
gstnvenc.c(187): error C2373: 'NvEncCreateInputBuffer': redefinition; different type modifiers
nvEncodeAPI.h(2392): note: see declaration of 'NvEncCreateInputBuffer'
gstnvenc.c(194): error C2373: 'NvEncLockInputBuffer': redefinition; different type modifiers
nvEncodeAPI.h(2768): note: see declaration of 'NvEncLockInputBuffer'
gstnvenc.c(201): error C2373: 'NvEncUnlockInputBuffer': redefinition; different type modifiers
nvEncodeAPI.h(2798): note: see declaration of 'NvEncUnlockInputBuffer'
gstnvenc.c(208): error C2373: 'NvEncDestroyInputBuffer': redefinition; different type modifiers
nvEncodeAPI.h(2421): note: see declaration of 'NvEncDestroyInputBuffer'
gstnvenc.c(215): error C2373: 'NvEncCreateBitstreamBuffer': redefinition; different type modifiers
nvEncodeAPI.h(2456): note: see declaration of 'NvEncCreateBitstreamBuffer'
gstnvenc.c(222): error C2373: 'NvEncLockBitstream': redefinition; different type modifiers
nvEncodeAPI.h(2704): note: see declaration of 'NvEncLockBitstream'
gstnvenc.c(229): error C2373: 'NvEncUnlockBitstream': redefinition; different type modifiers
nvEncodeAPI.h(2734): note: see declaration of 'NvEncUnlockBitstream'
gstnvenc.c(236): error C2373: 'NvEncDestroyBitstreamBuffer': redefinition; different type modifiers
nvEncodeAPI.h(2485): note: see declaration of 'NvEncDestroyBitstreamBuffer'
gstnvenc.c(243): error C2373: 'NvEncEncodePicture': redefinition; different type modifiers
nvEncodeAPI.h(2665): note: see declaration of 'NvEncEncodePicture'
```
(paths trimmed)
@seungha.yang any ideas? :)https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/634rtspsrc: rtcp interleaved over tcp+tls without prefix in v1.16.02019-08-06T09:01:07ZPierce Lopezrtspsrc: rtcp interleaved over tcp+tls without prefix in v1.16.0I'm using rtsp over tls, with interleaved transport, like so: `rtspsrc name=mux location=rtsps://devbox:8556/test-pierce latency=0 protocols=tcp tls-validation-flags=0x58 do-rtcp=true`. (TLS validation disabled for my local debugging se...I'm using rtsp over tls, with interleaved transport, like so: `rtspsrc name=mux location=rtsps://devbox:8556/test-pierce latency=0 protocols=tcp tls-validation-flags=0x58 do-rtcp=true`. (TLS validation disabled for my local debugging server, `do-rtcp=true` is the default but I'm switching it periodically for debugging.) Interleaved transport sends rtp and rtcp over the same connection as the RTSP request/response, but each rtp/rtcp frame is prefixed with 4 bytes: "$", 1-byte channel, 2-bytes big-endian length.
In this specific setup, rtcp is sent without that 4-byte prefix, by gstreamer-1.16.0. (And then if I hack my server-side parser to accept that, something else fails on the client side about 100ms later.)
* This only happens for rtsps:// not for rtsp://
* This bug was not present in 1.14.x
* The source or trigger of the issue seems to be in gst-plugins-base, not gst-plugins-good: if I switch just gst-plugins-base between 1.16.0 and 1.14.4 I can see the issue come and go
* If I use `do-rtcp=false` all seems OK, the video stream continues playing for many minutes.
Here's some rather verbose logging from the rtspsrc:
```
0:00:01.762490000 6577 0x7fdf30807e80 DEBUG rtspsrc gstrtspsrc.c:5481:gst_rtspsrc_loop_interleaved:<mux> doing receive with timeout 8633 seconds, 521054 usec
0:00:01.762682000 6577 0x7fdf30807e80 DEBUG rtspsrc gstrtspsrc.c:5491:gst_rtspsrc_loop_interleaved:<mux> we received a server message
0:00:01.762693000 6577 0x7fdf30807e80 DEBUG rtspsrc gstrtspsrc.c:5524:gst_rtspsrc_loop_interleaved:<mux> got data message
0:00:01.762701000 6577 0x7fdf30807e80 DEBUG rtspsrc gstrtspsrc.c:5290:gst_rtspsrc_handle_data:<mux> pushing data of size 115 on channel 0
0:00:01.762725000 6577 0x7fdf30807e80 DEBUG rtspsrc gstrtspsrc.c:5481:gst_rtspsrc_loop_interleaved:<mux> doing receive with timeout 8633 seconds, 520819 usec
0:00:01.770797000 6577 0x7fdf2e857d90 DEBUG rtspsrc gstrtspsrc.c:3115:gst_rtspsrc_sink_chain:<mux> sending 84 bytes RTCP
0:00:01.770878000 6577 0x7fdf2e857d90 DEBUG rtspsrc gstrtspsrc.c:3117:gst_rtspsrc_sink_chain:<mux> sent RTCP, 0
0:00:01.781007000 6577 0x7fdf2e857ca0 DEBUG rtspsrc gstrtspsrc.c:2862:gst_rtspsrc_handle_src_event:<mux> pad mux:recv_rtp_src_0_2345423449_96 received event qos
0:00:01.781037000 6577 0x7fdf2e857ca0 DEBUG rtspsrc gstrtspsrc.c:2928:gst_rtspsrc_handle_internal_src_event:<'':internalsrc_0> received event qos
0:00:01.795760000 6577 0x7fdf30807e80 DEBUG rtspsrc gstrtspsrc.c:5491:gst_rtspsrc_loop_interleaved:<mux> we received a server message
0:00:01.795775000 6577 0x7fdf30807e80 DEBUG rtspsrc gstrtspsrc.c:5524:gst_rtspsrc_loop_interleaved:<mux> got data message
0:00:01.795785000 6577 0x7fdf30807e80 DEBUG rtspsrc gstrtspsrc.c:5290:gst_rtspsrc_handle_data:<mux> pushing data of size 84 on channel 1
0:00:01.795807000 6577 0x7fdf30807e80 DEBUG rtspsrc gstrtspsrc.c:5481:gst_rtspsrc_loop_interleaved:<mux> doing receive with timeout 8633 seconds, 487736 usec
0:00:01.795989000 6577 0x7fdf30807e80 WARN rtspsrc gstrtspsrc.c:5558:gst_rtspsrc_loop_interleaved:<mux> error: Could not receive message. (Parse error)
0:00:01.796028000 6577 0x7fdf30807e80 DEBUG rtspsrc gstrtspsrc.c:6037:gst_rtspsrc_loop:<mux> pausing task, reason error
0:00:01.796036000 6577 0x7fdf30807e80 WARN rtspsrc gstrtspsrc.c:6054:gst_rtspsrc_loop:<mux> error: Internal data stream error.
0:00:01.796040000 6577 0x7fdf30807e80 WARN rtspsrc gstrtspsrc.c:6054:gst_rtspsrc_loop:<mux> error: streaming stopped, reason error (-5)
0:00:01.796111000 6577 0x7fdf30807e80 DEBUG rtspsrc gstrtspsrc.c:5939:gst_rtspsrc_loop_send_cmd:<mux> sending cmd WAIT
0:00:01.796116000 6577 0x7fdf30807e80 DEBUG rtspsrc gstrtspsrc.c:5964:gst_rtspsrc_loop_send_cmd:<mux> cancel previous request LOOP
0:00:01.796135000 6577 0x7fdf30807e80 DEBUG rtspsrc gstrtspsrc.c:5972:gst_rtspsrc_loop_send_cmd:<mux> connection flush busy LOOP
0:00:01.796139000 6577 0x7fdf30807e80 DEBUG rtspsrc gstrtspsrc.c:5090:gst_rtspsrc_connection_flush:<mux> set flushing 1
0:00:01.796143000 6577 0x7fdf30807e80 DEBUG rtspsrc gstrtspsrc.c:5093:gst_rtspsrc_connection_flush:<mux> connection flush
ERROR: from element /GstPipeline:pipeline0/GstRTSPSrc:mux: Could not read from resource.
Additional debug info:
gstrtspsrc.c(5558): gst_rtspsrc_loop_interleaved (): /GstPipeline:pipeline0/GstRTSPSrc:mux:
Could not receive message. (Parse error)
Execution ended after 0:00:01.546659000
Setting pipeline to PAUSED ...
```
and here's what my custom rtsp server debug logs (server hacked to detect interleaved rtcp without prefix):
```
2019-07-29 21:13:09.441 D (rtsp_serve.c:536) LINE: PLAY rtsp://devbox:8556/test-pierce RTSP/1.0
2019-07-29 21:13:09.441 D (rtsp_serve.c:543) HDR: CSeq: 3
2019-07-29 21:13:09.441 D (rtsp_serve.c:543) HDR: User-Agent: GStreamer/1.16.0
2019-07-29 21:13:09.441 D (rtsp_serve.c:543) HDR: Range: npt=0-
2019-07-29 21:13:09.442 D (rtsp_serve.c:543) HDR: Session: 7xImOMpUZ6BzGJQ
2019-07-29 21:13:09.442 D (rtsp_serve.c:543) HDR: Date: Mon, 29 Jul 2019 21:13:09 GMT
2019-07-29 21:13:09.442 I (rtsp_serve.c:500) rtsp < PLAY rtsp://devbox:8556/test-pierce - rtsps-peer=172.30.1.1:60956
2019-07-29 21:13:09.442 D (rtsp_engine.c:346) Client request uri acceptable
2019-07-29 21:13:09.443 V (rtsp_engine.c:389) Auth accepted rtsps-peer=172.30.1.1:60956 uri=rtsp://devbox:8556/test-pierce need_players=0
2019-07-29 21:13:09.443 D (rtsp_engine.c:730) RTSP Play rtsps-peer=172.30.1.1:60956 rtsp://devbox:8556/test-pierce
2019-07-29 21:13:09.443 D (rtsp_media.c:151) media pool[0] found presentation at (/test-pierce)
2019-07-29 21:13:09.443 I (rtsp_serve.c:638) rtsp > 200 OK - rtsps-peer=172.30.1.1:60956
2019-07-29 21:13:09.444 V (rtsp_serve.c:675) rtsp connection now playing rtsps-peer=172.30.1.1:60956
2019-07-29 21:13:09.444 D (rtsp_serve.c:690) rtsp >
RTSP/1.0 200 OK
Server: avcore/1.7
CSeq: 3
RTP-Info: /test-pierce
Session: 7xImOMpUZ6BzGJQ
2019-07-29 21:13:09.445 I (rtsp_engine.c:1064) attempt to prepare burst, max=0.750000
2019-07-29 21:13:09.445 D (rtsp_engine.c:1086) consider burst for H264 : 1
2019-07-29 21:13:09.446 I (rtsp_engine.c:1100) h264 burst candidate pts=107.834133 dur=0.419211 pkts=61
2019-07-29 21:13:09.446 I (rtsp_engine.c:1138) sending burst, 61 pkts
2019-07-29 21:13:09.446 V (rtsp_auth.c:514) Sending media:play_start API request (127.0.0.1:8501/int/media/state?urn=%2Ftest-pierce)
2019-07-29 21:13:09.447 D (rtsp_engine.c:1162) finished H264 burst
2019-07-29 21:13:09.451 E (rtsp_auth.c:555) Failure response for media state request 400 /int/media/state?urn=%2Ftest-pierce
2019-07-29 21:13:10.952 W (rtsp_serve.c:403) received rtcp interleaved without prefix rtsps-peer=172.30.1.1:60956
2019-07-29 21:13:10.952 D (rtp_pkt.c:156) v=2 p=0 cnt=1 pt=RR len=32 ssrc=31c3ca9c
2019-07-29 21:13:10.953 W (rtsp_serve.c:403) received rtcp interleaved without prefix rtsps-peer=172.30.1.1:60956
2019-07-29 21:13:10.953 D (rtp_pkt.c:171) v=2 p=0 cnt=1 pt=SDES len=52 ssrc=31c3ca9c type=1
2019-07-29 21:13:10.990 D (rtsp_serve.c:536) LINE: TEARDOWN rtsp://devbox:8556/test-pierce RTSP/1.0
2019-07-29 21:13:10.991 D (rtsp_serve.c:543) HDR: CSeq: 4
2019-07-29 21:13:10.991 D (rtsp_serve.c:543) HDR: User-Agent: GStreamer/1.16.0
2019-07-29 21:13:10.991 D (rtsp_serve.c:543) HDR: Session: 7xImOMpUZ6BzGJQ
2019-07-29 21:13:10.991 D (rtsp_serve.c:543) HDR: Date: Mon, 29 Jul 2019 21:13:11 GMT
2019-07-29 21:13:10.992 I (rtsp_serve.c:500) rtsp < TEARDOWN rtsp://devbox:8556/test-pierce - rtsps-peer=172.30.1.1:60956
```
note that the stream works and the video shows up for half a second, before the gstreamer client attempts to send an rtcp receiver-report and SDES, and then dies (regardless of whether the server tolerates the un-prefixed rtcp).https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1038Improve X11 capture with nvenc2019-08-21T07:21:19ZDan IslaImprove X11 capture with nvencWhen capturing from ximagesrc and encoding with NVENC, the RGB buffers from ximagesrc need to be converted to I420 before they can be used as a sink for the nvh264enc plugin. From what I can tell, there is no way to do this without the v...When capturing from ximagesrc and encoding with NVENC, the RGB buffers from ximagesrc need to be converted to I420 before they can be used as a sink for the nvh264enc plugin. From what I can tell, there is no way to do this without the videoconvert plugin, which is quite CPU intensive when streaming at 1080p, 60fps or better.
It looks like the NVENC API supports [ARGB and ABGR formats](https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/blob/master/sys/nvcodec/nvEncodeAPI.h#L341), is it possible to use those formats with ximagesrc and eliminate the need for videoconvert? Alternatively, is there any way to move the color-space conversion to the GPU?
NVIDIA also has a [frame buffer capture SDK (NVFBC)](https://developer.nvidia.com/capture-sdk) which can capture and encode to H.264. This would be another way to free up the CPU and possibly improve capture performance.
The capture SDK comes with an example C program, it would be great to see that functionality as a source plugin.https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1035d3d11videosink: 2-3 times slower than d3dvideosink when decoding to RGBA2019-12-05T03:20:24ZAaron Boxerd3d11videosink: 2-3 times slower than d3dvideosink when decoding to RGBATest file:
[test.mkv](/uploads/4cf4fa2efc0d5282a7da4719ec720822/test.mkv)
This pipeline:
`gst-launch-1.0.exe filesrc location=test.mkv ! matroskademux ! h264parse ! avdec_h264 ! videoconvert ! d3d11videosink`
is significantly slower ...Test file:
[test.mkv](/uploads/4cf4fa2efc0d5282a7da4719ec720822/test.mkv)
This pipeline:
`gst-launch-1.0.exe filesrc location=test.mkv ! matroskademux ! h264parse ! avdec_h264 ! videoconvert ! d3d11videosink`
is significantly slower than this one:
`gst-launch-1.0.exe filesrc location=c://temp//test.mkv ! matroskademux ! h264parse ! avdec_h264 ! videoconvert ! d3dvideosink`
on Windows 10, on VM and Coffee Lake bare metal
cc @seungha.yanghttps://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1034openjpeg: proposal to remove support for OpenJPEG 1.X2019-07-28T18:23:49ZAaron Boxeropenjpeg: proposal to remove support for OpenJPEG 1.XVersions before `2.2` in fact are quite buggy and have significant security vulnerabilities.
Also, lossless encoding can be lossy. 1.5 is ancient.Versions before `2.2` in fact are quite buggy and have significant security vulnerabilities.
Also, lossless encoding can be lossy. 1.5 is ancient.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1495mxfdemux: can't handle Canon XF705 H265 10bit MXF video2022-10-12T10:07:48ZDavid Manpearlmxfdemux: can't handle Canon XF705 H265 10bit MXF videoI have been unable to decode H265 10-bit formats from Canon XF705.
My goal is to transcode into H264 with a GStreamer pipeline something like this:
```
gst-launch-1.0 filesrc location=A003C002H1901045W_CANON.MXF ! qtdemux ! h265parse ! a...I have been unable to decode H265 10-bit formats from Canon XF705.
My goal is to transcode into H264 with a GStreamer pipeline something like this:
```
gst-launch-1.0 filesrc location=A003C002H1901045W_CANON.MXF ! qtdemux ! h265parse ! avdec_h265 ! videoconvert ! videoscale ! video/x-raw,width=1280,height=720 ! x264enc ! h264parse ! queue ! mp4mux ! filesink location=video.mp4
Setting pipeline to PAUSED, PREROLLING ...
ERROR: from element /GstPipeline:pipeline0/GstQTDemux:qtdemux0: This file is invalid and cannot be played.
Additional debug info:
qtdemux.c(747): gst_qtdemux_pull_atom (): /GstPipeline:pipeline0/GstQTDemux:qtdemux0:
atom has bogus size 101591860
ERROR: pipeline doesn't want to preroll.
```
I have had similar errors with decodebin, qtdemux, mxfdemux, and avdemux_mxf.
Example file download: https://www.dropbox.com/sh/q5m7cxgneq5z5h3/AAAh-d3FdhouZ2bFv2FajR18a?dl=0
*(note: Adobe Premiere can decode this file. Quicktime and VLC cannot)*
Here are some stats on the file:
```
gst-launch-1.0 --version
gst-launch-1.0 version 1.14.4
GStreamer 1.14.4
```
**ffprobe**:
```
ffprobe -hide_banner -show_format -show_streams -print_format json A003C002H1901045W_CANON.MXF
Metadata:
uid : 3b6f6487-8405-4901-802e-242719000075
generation_uid : 3b6f6487-8405-4903-802e-242719000075
company_name : CANON
product_name : XF705
product_version : 1.00
product_uid : 060e2b34-0401-010d-0e15-005658460400
Duration: 00:00:16.02, start: 0.000000, bitrate: 157466 kb/s
Stream #0:0: Video: none, none(progressive), 3840x2160, SAR 1:1 DAR 16:9,
9.94 fps, 59.94 tbr, 59.94 tbn, 59.94 tbc
"codec_type": "video",
"codec_tag": "0x0000",
"width": 3840,
"height": 2160,
"has_b_frames": 0,
"r_frame_rate": "60000/1001",
```
**mediainfo**:
```
mediainfo A003C002H1901045W_CANON.MXF
Format : MXF
Format version : 1.3
Format profile : OP-1a
Writing application : CANON XF705 1.00
Codec ID : 0E15000402100001-0E15000500013000
Color space : YUV
Chroma subsampling : 4:2:2
Bit depth : 10 bits
Scan type : Progressive
```
**Tim Müller suggested**:
This is what I get:
```
$ gst-play-1.0 A003C002H1901045W_CANON.MXF
WARNING No decoder available for type 'video/x-mxf-
06.0e.2b.34.04.01.01.0c.0e.15.00.04.02.10.00.01-
06.0e.2b.34.04.01.01.0c.0e.15.00.05.00.01.30.00'.
WARNING debug information: gsturidecodebin.c(921): unknown_type_cb ():
/GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0
```
[TM] "I think we're just missing mappings for H265 in mxfdemux from the looks
of it."https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1033mxfdemux: can't handle Canon XF705 H265 10bit MXF video2022-10-12T09:13:32ZDavid Manpearlmxfdemux: can't handle Canon XF705 H265 10bit MXF videoI have been unable to decode H265 10-bit formats from Canon XF705.
My goal is to transcode into H264 with a GStreamer pipeline something like this:
```
gst-launch-1.0 filesrc location=A003C002H1901045W_CANON.MXF ! qtdemux ! h265parse ! a...I have been unable to decode H265 10-bit formats from Canon XF705.
My goal is to transcode into H264 with a GStreamer pipeline something like this:
```
gst-launch-1.0 filesrc location=A003C002H1901045W_CANON.MXF ! qtdemux ! h265parse ! avdec_h265 ! videoconvert ! videoscale ! video/x-raw,width=1280,height=720 ! x264enc ! h264parse ! queue ! mp4mux ! filesink location=video.mp4
Setting pipeline to PAUSED, PREROLLING ...
ERROR: from element /GstPipeline:pipeline0/GstQTDemux:qtdemux0: This file is invalid and cannot be played.
Additional debug info:
qtdemux.c(747): gst_qtdemux_pull_atom (): /GstPipeline:pipeline0/GstQTDemux:qtdemux0:
atom has bogus size 101591860
ERROR: pipeline doesn't want to preroll.
```
I have had similar errors with decodebin, qtdemux, mxfdemux, and avdemux_mxf.
Example file download: https://www.dropbox.com/sh/q5m7cxgneq5z5h3/AAAh-d3FdhouZ2bFv2FajR18a?dl=0
*(note: Adobe Premiere can decode this file. Quicktime and VLC cannot)*
Here are some stats on the file:
```
gst-launch-1.0 --version
gst-launch-1.0 version 1.14.4
GStreamer 1.14.4
```
**ffprobe**:
```
ffprobe -hide_banner -show_format -show_streams -print_format json A003C002H1901045W_CANON.MXF
Metadata:
uid : 3b6f6487-8405-4901-802e-242719000075
generation_uid : 3b6f6487-8405-4903-802e-242719000075
company_name : CANON
product_name : XF705
product_version : 1.00
product_uid : 060e2b34-0401-010d-0e15-005658460400
Duration: 00:00:16.02, start: 0.000000, bitrate: 157466 kb/s
Stream #0:0: Video: none, none(progressive), 3840x2160, SAR 1:1 DAR 16:9,
9.94 fps, 59.94 tbr, 59.94 tbn, 59.94 tbc
"codec_type": "video",
"codec_tag": "0x0000",
"width": 3840,
"height": 2160,
"has_b_frames": 0,
"r_frame_rate": "60000/1001",
```
**mediainfo**:
```
mediainfo A003C002H1901045W_CANON.MXF
Format : MXF
Format version : 1.3
Format profile : OP-1a
Writing application : CANON XF705 1.00
Codec ID : 0E15000402100001-0E15000500013000
Color space : YUV
Chroma subsampling : 4:2:2
Bit depth : 10 bits
Scan type : Progressive
```
**Tim Müller suggested**:
This is what I get:
```
$ gst-play-1.0 A003C002H1901045W_CANON.MXF
WARNING No decoder available for type 'video/x-mxf-
06.0e.2b.34.04.01.01.0c.0e.15.00.04.02.10.00.01-
06.0e.2b.34.04.01.01.0c.0e.15.00.05.00.01.30.00'.
WARNING debug information: gsturidecodebin.c(921): unknown_type_cb ():
/GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0
```
[TM] "I think we're just missing mappings for H265 in mxfdemux from the looks
of it."https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/417GStreamer can't decode Canon XF705 H265 10bit MXF video2022-11-10T09:20:53ZDavid ManpearlGStreamer can't decode Canon XF705 H265 10bit MXF videoI have been unable to decode H265 10-bit formats from Canon XF705.
My goal is to transcode into H264 with a GStreamer pipeline something like this:
```
gst-launch-1.0 filesrc location=A003C002H1901045W_CANON.MXF ! qtdemux ! h265parse ! a...I have been unable to decode H265 10-bit formats from Canon XF705.
My goal is to transcode into H264 with a GStreamer pipeline something like this:
```
gst-launch-1.0 filesrc location=A003C002H1901045W_CANON.MXF ! qtdemux ! h265parse ! avdec_h265 ! videoconvert ! videoscale ! video/x-raw,width=1280,height=720 ! x264enc ! h264parse ! queue ! mp4mux ! filesink location=video.mp4
Setting pipeline to PAUSED, PREROLLING ...
ERROR: from element /GstPipeline:pipeline0/GstQTDemux:qtdemux0: This file is invalid and cannot be played.
Additional debug info:
qtdemux.c(747): gst_qtdemux_pull_atom (): /GstPipeline:pipeline0/GstQTDemux:qtdemux0:
atom has bogus size 101591860
ERROR: pipeline doesn't want to preroll.
```
I have had similar errors with decodebin, qtdemux, mxfdemux, and avdemux_mxf.
Example file download: https://www.dropbox.com/sh/q5m7cxgneq5z5h3/AAAh-d3FdhouZ2bFv2FajR18a?dl=0
*(note: Adobe Premiere can decode this file. Quicktime and VLC cannot)*
Here are some stats on the file:
```
gst-launch-1.0 --version
gst-launch-1.0 version 1.14.4
GStreamer 1.14.4
```
**ffprobe**:
```
ffprobe -hide_banner -show_format -show_streams -print_format json A003C002H1901045W_CANON.MXF
Metadata:
uid : 3b6f6487-8405-4901-802e-242719000075
generation_uid : 3b6f6487-8405-4903-802e-242719000075
company_name : CANON
product_name : XF705
product_version : 1.00
product_uid : 060e2b34-0401-010d-0e15-005658460400
Duration: 00:00:16.02, start: 0.000000, bitrate: 157466 kb/s
Stream #0:0: Video: none, none(progressive), 3840x2160, SAR 1:1 DAR 16:9,
9.94 fps, 59.94 tbr, 59.94 tbn, 59.94 tbc
"codec_type": "video",
"codec_tag": "0x0000",
"width": 3840,
"height": 2160,
"has_b_frames": 0,
"r_frame_rate": "60000/1001",
```
**mediainfo**:
```
mediainfo A003C002H1901045W_CANON.MXF
Format : MXF
Format version : 1.3
Format profile : OP-1a
Writing application : CANON XF705 1.00
Codec ID : 0E15000402100001-0E15000500013000
Color space : YUV
Chroma subsampling : 4:2:2
Bit depth : 10 bits
Scan type : Progressive
```
**Tim Müller suggested**:
This is what I get:
```
$ gst-play-1.0 A003C002H1901045W_CANON.MXF
WARNING No decoder available for type 'video/x-mxf-
06.0e.2b.34.04.01.01.0c.0e.15.00.04.02.10.00.01-
06.0e.2b.34.04.01.01.0c.0e.15.00.05.00.01.30.00'.
WARNING debug information: gsturidecodebin.c(921): unknown_type_cb ():
/GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0
```
[TM] "I think we're just missing mappings for H265 in mxfdemux from the looks
of it."https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/633Segfault in libgdk-3 when removing twice a GtkGstGLWidget2023-07-02T16:41:33ZLink MauveSegfault in libgdk-3 when removing twice a GtkGstGLWidgetIn [Gajim](https://gajim.org), an XMPP client, we want to be able to change the video sink for video calls, but doing so multiple times leads to a crash.
Here is a testcase reproducing this issue: [gst-gtk-crash.rs](/uploads/752a6b06438...In [Gajim](https://gajim.org), an XMPP client, we want to be able to change the video sink for video calls, but doing so multiple times leads to a crash.
Here is a testcase reproducing this issue: [gst-gtk-crash.rs](/uploads/752a6b06438909c5bfaadfb7d326de38/gst-gtk-crash.rs)
It’s based on the [gtksink.rs](https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/blob/master/examples/src/bin/gtksink.rs) example with all comments removed and replaced with the ones relevant for this issue.https://gitlab.freedesktop.org/gstreamer/meson-ports/ffmpeg/-/issues/10Compiling gst-build with MSVC 2017 compiler gives error while creating librar...2021-10-23T11:21:33ZSemih KurtCompiling gst-build with MSVC 2017 compiler gives error while creating library of ffmpeg/avcodec.libHello, I was trying to compile gstreamer with meson on Windows Msvc 2017 x64 compiler.
I received this error. Since, it was coming rom FFmpeg/avcodec.lib
I think this issue will be appropriate on here.
I am guessing you include winsock...Hello, I was trying to compile gstreamer with meson on Windows Msvc 2017 x64 compiler.
I received this error. Since, it was coming rom FFmpeg/avcodec.lib
I think this issue will be appropriate on here.
I am guessing you include winsock.h or winsock2.h or visa versa in somewhere on your code.
```
[5014/6223] Compiling C object subprojects/FFmpeg/00cc031@@avformat-static@sta/libavformat_avio.c.obj.
../subprojects/FFmpeg/libavformat/avio.c(276): warning C4090: 'function': different 'const' qualifiers
[5015/6223] Compiling C object subprojects/FFmpeg/00cc031@@avformat-static@sta/libavformat_protocols.c.obj.
../subprojects/FFmpeg/libavformat/protocols.c(99): warning C4090: '=': different 'const' qualifiers
[5018/6223] Compiling C object subprojects/FFmpeg/00cc031@@avformat-static@sta/libavformat_id3v2.c.obj.
../subprojects/FFmpeg/libavformat/id3v2.c(347): warning C4090: 'function': different 'const' qualifiers
[5054/6223] Linking static target subprojects/FFmpeg/libavcodec-static.a.
v210enc.o : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library
[5119/6223] Linking target subprojects/FFmpeg/avcodec-58.dll.
Creating library subprojects\\FFmpeg\\avcodec.lib and object subprojects\\FFmpeg\\avcodec.exp
[5200/6223] Compiling C object subprojects/FFmpeg/00cc031@@avformat-static@sta/libavformat_hlsenc.c.obj.
FAILED: subprojects/FFmpeg/00cc031@@avformat-static@sta/libavformat_hlsenc.c.obj
cl @subprojects/FFmpeg/00cc031@@avformat-static@sta/libavformat_hlsenc.c.obj.rsp
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared\ws2def.h(103): warning C4005: 'AF_IPX': macro redefinition
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(456): note: see previous definition of 'AF_IPX'C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared\ws2def.h(235): error C2011: 'sockaddr': 'struct' type redefinition
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(481): note: see declaration of 'sockaddr'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared\ws2def.h(437): error C2059: syntax error: 'constant'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared\ws2def.h(633): error C2011: 'sockaddr_in': 'struct' type redefinition
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(308): note: see declaration of 'sockaddr_in'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(136): error C2011: 'fd_set': 'struct' type redefinition
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(64): note: see declaration of 'fd_set'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(180): error C2011: 'timeval': 'struct' type redefinition
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(107): note: see declaration of 'timeval'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(236): error C2011: 'hostent': 'struct' type redefinition
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(163): note: see declaration of 'hostent'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(249): error C2011: 'netent': 'struct' type redefinition
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(176): note: see declaration of 'netent'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(256): error C2011: 'servent': 'struct' type redefinition
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(183): note: see declaration of 'servent'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(268): error C2011: 'protoent': 'struct' type redefinition
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(195): note: see declaration of 'protoent'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(364): error C2011: 'WSAData': 'struct' type redefinition
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(318): note: see declaration of 'WSAData'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(462): error C2011: 'sockproto': 'struct' type redefinition
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(490): note: see declaration of 'sockproto'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(504): error C2011: 'linger': 'struct' type redefinition
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(527): note: see declaration of 'linger'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(1625): error C2375: 'accept': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(738): note: see declaration of 'accept'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(1647): error C2375: 'bind': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(743): note: see declaration of 'bind'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(1668): error C2375: 'closesocket': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(748): note: see declaration of 'closesocket'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(1685): error C2375: 'connect': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(750): note: see declaration of 'connect'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(1706): error C2375: 'ioctlsocket': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(755): note: see declaration of 'ioctlsocket'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(1729): error C2375: 'getpeername': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(760): note: see declaration of 'getpeername'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(1750): error C2375: 'getsockname': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(765): note: see declaration of 'getsockname'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(1771): error C2375: 'getsockopt': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(770): note: see declaration of 'getsockopt'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(1796): error C2375: 'htonl': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(777): note: see declaration of 'htonl'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(1813): error C2375: 'htons': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(779): note: see declaration of 'htons'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(1831): error C2375: 'inet_addr': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(781): note: see declaration of 'inet_addr'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(1849): error C2375: 'inet_ntoa': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(783): note: see declaration of 'inet_ntoa'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(1949): error C2375: 'listen': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(785): note: see declaration of 'listen'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(1968): error C2375: 'ntohl': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(789): note: see declaration of 'ntohl'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(1985): error C2375: 'ntohs': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(791): note: see declaration of 'ntohs'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2002): error C2375: 'recv': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(793): note: see declaration of 'recv'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2025): error C2375: 'recvfrom': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(799): note: see declaration of 'recvfrom'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2052): error C2375: 'select': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(807): note: see declaration of 'select'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2077): error C2375: 'send': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(814): note: see declaration of 'send'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2100): error C2375: 'sendto': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(820): note: see declaration of 'sendto'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2127): error C2375: 'setsockopt': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(828): note: see declaration of 'setsockopt'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2152): error C2375: 'shutdown': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(835): note: see declaration of 'shutdown'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2172): error C2375: 'socket': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(839): note: see declaration of 'socket'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2197): error C2375: 'gethostbyaddr': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(846): note: see declaration of 'gethostbyaddr'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2219): error C2375: 'gethostbyname': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(851): note: see declaration of 'gethostbyname'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2236): error C2375: 'gethostname': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(853): note: see declaration of 'gethostname'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2276): error C2375: 'getservbyport': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(857): note: see declaration of 'getservbyport'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2295): error C2375: 'getservbyname': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(861): note: see declaration of 'getservbyname'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2314): error C2375: 'getprotobynumber': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(865): note: see declaration of 'getprotobynumber'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2331): error C2375: 'getprotobyname': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(867): note: see declaration of 'getprotobyname'C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2351): error C2375: 'WSAStartup': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(871): note: see declaration of 'WSAStartup'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2371): error C2375: 'WSACleanup': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(875): note: see declaration of 'WSACleanup'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2388): error C2375: 'WSASetLastError': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(877): note: see declaration of 'WSASetLastError'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2405): error C2375: 'WSAGetLastError': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(879): note: see declaration of 'WSAGetLastError'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2426): error C2375: 'WSAIsBlocking': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(881): note: see declaration of 'WSAIsBlocking'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2444): error C2375: 'WSAUnhookBlockingHook': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(883): note: see declaration of 'WSAUnhookBlockingHook'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2462): error C2375: 'WSASetBlockingHook': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(885): note: see declaration of 'WSASetBlockingHook'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2480): error C2375: 'WSACancelBlockingCall': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(887): note: see declaration of 'WSACancelBlockingCall'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2498): error C2375: 'WSAAsyncGetServByName': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(889): note: see declaration of 'WSAAsyncGetServByName'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2526): error C2375: 'WSAAsyncGetServByPort': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(897): note: see declaration of 'WSAAsyncGetServByPort'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2554): error C2375: 'WSAAsyncGetProtoByName': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(905): note: see declaration of 'WSAAsyncGetProtoByName'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2580): error C2375: 'WSAAsyncGetProtoByNumber': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(912): note: see declaration of 'WSAAsyncGetProtoByNumber'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2606): error C2375: 'WSAAsyncGetHostByName': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(919): note: see declaration of 'WSAAsyncGetHostByName'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2632): error C2375: 'WSAAsyncGetHostByAddr': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(926): note: see declaration of 'WSAAsyncGetHostByAddr'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2662): error C2375: 'WSACancelAsyncRequest': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(935): note: see declaration of 'WSACancelAsyncRequest'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2680): error C2375: 'WSAAsyncSelect': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(937): note: see declaration of 'WSAAsyncSelect'[5209/6223] Compiling C object subprojects/FFmpeg/00cc031@@avformat-static@sta/libavformat_rmdec.c.obj.
ninja: build stopped: subcommand failed.
```
I shouldn't modify winsock or w2def.h or any Windows header file so any help would be appreciated.
Thanks,https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1031basetsmuxjpeg2000: first demuxed frame's j2k buffer size is always 8 bytes sh...2019-11-20T12:57:05ZAaron Boxerbasetsmuxjpeg2000: first demuxed frame's j2k buffer size is always 8 bytes shorter than specified size in elementary stream headerTest pipeline:
```
videotestsrc pattern=ball ! openjpegenc ! jpeg2000parse ! mpegtsmux ! rtpmp2tpay ! rtpmp2tdepay ! tsdemux ! jpeg2000parse ! openjpegdec ! videoconvert ! ximagesink
```
This pipeline fails with error:
`Required size ...Test pipeline:
```
videotestsrc pattern=ball ! openjpegenc ! jpeg2000parse ! mpegtsmux ! rtpmp2tpay ! rtpmp2tdepay ! tsdemux ! jpeg2000parse ! openjpegdec ! videoconvert ! ximagesink
```
This pipeline fails with error:
`Required size (2375) greater than remaining size in buffer (2367)`
This only happens for the very first frame that is demuxed. For all others, required size (as specified in elementary stream header) matches actual size.
Error comes from this code block:
```
/* Check if we have enough data to create a valid buffer */
if ((stream->current_size - data_location) < (AUF[0] + AUF[1])) {
GST_ERROR ("Required size (%d) greater than remaining size in buffer (%d)",
AUF[0] + AUF[1], (stream->current_size - data_location));
goto error;
}
```
cc @bilboedhttps://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/644Having Compilation error on video-format.c for video_orc_unpack_VUYA and vide...2019-10-17T01:13:40ZLim Siew HoonHaving Compilation error on video-format.c for video_orc_unpack_VUYA and video_orc_pack_VYUYI'm having a compilation error in master branch:
Build command: `./autogen.sh --prefix=/usr --libdir=/usr/lib --disable-gtk-doc`
Here is the output error message:
```
gcc -DNDEBUG -g -O3 -Wall -g -O2 -fPIC -I/home/root/Gst_framework/gs...I'm having a compilation error in master branch:
Build command: `./autogen.sh --prefix=/usr --libdir=/usr/lib --disable-gtk-doc`
Here is the output error message:
```
gcc -DNDEBUG -g -O3 -Wall -g -O2 -fPIC -I/home/root/Gst_framework/gst-plugins-base/gst-libs -I/home/root/Gst_framework/gst-plugins-base/gst-libs -I/usr/include/gstreamer-1.0 -I/usr/lib/libffi-3.2.1/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/uuid -I/usr/include/gstreamer-1.0 -I/usr/lib/libffi-3.2.1/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -c /home/root/Gst_framework/gst-plugins-base/gst-libs/gst/app/tmp-introspectw0c3nmvw/GstApp-1.0.c -o /home/root/Gst_framework/gst-plugins-base/gst-libs/gst/app/tmp-introspectw0c3nmvw/GstApp-1.0.o -Wno-deprecated-declarations -pthread
CC libgstfft_1.0_la-kiss_fftr_s16.lo
video-format.c: In function 'unpack_VUYA':
video-format.c:5266:3: error: implicit declaration of function 'video_orc_unpack_VUYA'; did you mean 'video_orc_unpack_VYUY'? [-Werror=implicit-function-declaration]
video_orc_unpack_VUYA (d, s, width);
^~~~~~~~~~~~~~~~~~~~~
video_orc_unpack_VYUY
video-format.c:5266:3: error: nested extern declaration of 'video_orc_unpack_VUYA' [-Werror=nested-externs]
video-format.c: In function 'pack_VUYA':
video-format.c:5278:3: error: implicit declaration of function 'video_orc_pack_VUYA'; did you mean 'video_orc_pack_VYUY'? [-Werror=implicit-function-declaration]
video_orc_pack_VUYA (d, s, width);
^~~~~~~~~~~~~~~~~~~
video_orc_pack_VYUY
video-format.c:5278:3: error: nested extern declaration of 'video_orc_pack_VUYA' [-Werror=nested-externs]
CC libgstfft_1.0_la-kiss_fftr_s32.lo
g-ir-scanner: link: /bin/sh ../../../libtool --mode=link --tag=CC gcc -o /home/root/Gst_framework/gst-plugins-base/gst-libs/gst/app/tmp-introspectw0c3nmvw/GstApp-1.0
```
After I added #include "video-orc-dist.h" in video-format.c file, I managed to compile successful.
It is missing header file that define for video_orc_pack_VUYA and video_orc_unpack_VUYA function.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/415Critical errors while executing gst-launch2021-09-24T13:15:39ZslophCritical errors while executing gst-launchhttps://paste.ubuntu.com/p/4NRrnDH6db/
While executing a pipeline that contains image/jpeg
```
$ GST_PLUGIN_SCANNER=hack/gst-1.16/build/subprojects/gstreamer/libs/gst/helpers/gst-plugin-scanner GST_PLUGIN_PATH=. hack/gst-1.16/build/subp...https://paste.ubuntu.com/p/4NRrnDH6db/
While executing a pipeline that contains image/jpeg
```
$ GST_PLUGIN_SCANNER=hack/gst-1.16/build/subprojects/gstreamer/libs/gst/helpers/gst-plugin-scanner GST_PLUGIN_PATH=. hack/gst-1.16/build/subprojects/gstreamer/tools/gst-launch-1.0 -v v4l2src ! image/jpeg ! jpegparse ! avimux ! identity silent=false ! filesink location=test.avi
```
I'm seeing these assertions:
```
(gst-launch-1.0:51290): GStreamer-CRITICAL **: 16:18:33.600: gst_date_time_new_local_time: assertion '(month > 0 && month <= 12) || month == -1' failed
(gst-launch-1.0:51290): GStreamer-CRITICAL **: 16:18:33.600: gst_mini_object_unref: assertion 'mini_object != NULL' failed
```
Linux 4.18.0-15-generic #16~18.04.1-Ubuntu x86_64
Description: Ubuntu 18.04.2 LTS
Codename: bionichttps://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/632gtkglsink: invalid read when window survives the sink2019-08-08T16:08:09ZGuillaume Desmottesgtkglsink: invalid read when window survives the sinkTo reproduce:
- Run example below in valgrind
- Resize the GTK window
- Valgrind should raise invalid read errors
Looks like the widget tries to access the destroyed sink so we probably needs to turn some pointers to weak or strong refs...To reproduce:
- Run example below in valgrind
- Resize the GTK window
- Valgrind should raise invalid read errors
Looks like the widget tries to access the destroyed sink so we probably needs to turn some pointers to weak or strong refs.
```
==14255== Invalid read of size 4
==14255== at 0x552DCE9: g_mutex_lock (in /usr/lib64/libglib-2.0.so.0.6000.5)
==14255== by 0x6C0278B: _size_changed_cb (gstgtkglsink.c:127)
==14255== by 0x5449741: g_closure_invoke (in /usr/lib64/libgobject-2.0.so.0.6000.5)
==14255== by 0x545D4F3: ??? (in /usr/lib64/libgobject-2.0.so.0.6000.5)
==14255== by 0x546634D: g_signal_emit_valist (in /usr/lib64/libgobject-2.0.so.0.6000.5)
==14255== by 0x5466972: g_signal_emit (in /usr/lib64/libgobject-2.0.so.0.6000.5)
==14255== by 0x4C406DE: gtk_widget_size_allocate_with_baseline (in /usr/lib64/libgtk-3.so.0.2404.6)
==14255== by 0x4C56B5A: ??? (in /usr/lib64/libgtk-3.so.0.2404.6)
==14255== by 0x5449741: g_closure_invoke (in /usr/lib64/libgobject-2.0.so.0.6000.5)
==14255== by 0x545D638: ??? (in /usr/lib64/libgobject-2.0.so.0.6000.5)
==14255== by 0x546634D: g_signal_emit_valist (in /usr/lib64/libgobject-2.0.so.0.6000.5)
==14255== by 0x5466972: g_signal_emit (in /usr/lib64/libgobject-2.0.so.0.6000.5)
==14255== by 0x4C406DE: gtk_widget_size_allocate_with_baseline (in /usr/lib64/libgtk-3.so.0.2404.6)
==14255== by 0x4C574BE: ??? (in /usr/lib64/libgtk-3.so.0.2404.6)
==14255== by 0x5449995: ??? (in /usr/lib64/libgobject-2.0.so.0.6000.5)
==14255== by 0x54661C7: g_signal_emit_valist (in /usr/lib64/libgobject-2.0.so.0.6000.5)
==14255== by 0x5466972: g_signal_emit (in /usr/lib64/libgobject-2.0.so.0.6000.5)
==14255== by 0x4A20769: ??? (in /usr/lib64/libgtk-3.so.0.2404.6)
==14255== by 0x5449995: ??? (in /usr/lib64/libgobject-2.0.so.0.6000.5)
==14255== by 0x54661C7: g_signal_emit_valist (in /usr/lib64/libgobject-2.0.so.0.6000.5)
==14255== Address 0x74e8358 is 552 bytes inside a block of size 1,528 free'd
==14255== at 0x484BA0C: free (vg_replace_malloc.c:540)
==14255== by 0x54E7D8C: g_free (in /usr/lib64/libglib-2.0.so.0.6000.5)
==14255== by 0x55006C3: g_slice_free1 (in /usr/lib64/libglib-2.0.so.0.6000.5)
==14255== by 0x546D345: g_type_free_instance (in /usr/lib64/libgobject-2.0.so.0.6000.5)
==14255== by 0x1102C204: gst_gl_sink_bin_finalize (gstglsinkbin.c:275)
==14255== by 0x544ECEF: g_object_unref (in /usr/lib64/libgobject-2.0.so.0.6000.5)
==14255== by 0x55FBCB5: gst_bin_remove_func (gstbin.c:1809)
==14255== by 0x55FAD67: gst_bin_remove (gstbin.c:1871)
==14255== by 0x55FAFF2: gst_bin_dispose (gstbin.c:527)
==14255== by 0x544EC67: g_object_unref (in /usr/lib64/libgobject-2.0.so.0.6000.5)
==14255== by 0x11B99E: <glib::object::MemoryManager as glib::shared::SharedMemoryManager<gobject_sys::GObject>>::unref (object.rs:385)
==14255== by 0x11A495: <glib::shared::Shared<T,MM> as core::ops::drop::Drop>::drop (shared.rs:296)
==14255== by 0x11204E: core::ptr::real_drop_in_place (mod.rs:197)
==14255== by 0x1122ED: core::ptr::real_drop_in_place (mod.rs:197)
==14255== by 0x1123DD: core::ptr::real_drop_in_place (mod.rs:197)
==14255== by 0x113401: bug::main (bug.rs:29)
==14255== by 0x11259F: std::rt::lang_start::{{closure}} (rt.rs:64)
==14255== by 0x125082: {{closure}} (rt.rs:49)
==14255== by 0x125082: std::panicking::try::do_call (panicking.rs:294)
==14255== by 0x126B19: __rust_maybe_catch_panic (lib.rs:82)
==14255== by 0x125B3C: try<i32,closure> (panicking.rs:273)
==14255== by 0x125B3C: catch_unwind<closure,i32> (panic.rs:388)
==14255== by 0x125B3C: std::rt::lang_start_internal (rt.rs:48)
==14255== Block was alloc'd at
==14255== at 0x484A80B: malloc (vg_replace_malloc.c:309)
==14255== by 0x54E7C98: g_malloc (in /usr/lib64/libglib-2.0.so.0.6000.5)
==14255== by 0x54FFFB5: g_slice_alloc (in /usr/lib64/libglib-2.0.so.0.6000.5)
==14255== by 0x55005DD: g_slice_alloc0 (in /usr/lib64/libglib-2.0.so.0.6000.5)
==14255== by 0x546CF79: g_type_create_instance (in /usr/lib64/libgobject-2.0.so.0.6000.5)
==14255== by 0x544F42C: ??? (in /usr/lib64/libgobject-2.0.so.0.6000.5)
==14255== by 0x5450B14: g_object_new_with_properties (in /usr/lib64/libgobject-2.0.so.0.6000.5)
==14255== by 0x54516C0: g_object_new (in /usr/lib64/libgobject-2.0.so.0.6000.5)
==14255== by 0x562092A: gst_element_factory_create (gstelementfactory.c:372)
==14255== by 0x5620A9D: gst_element_factory_make (gstelementfactory.c:445)
==14255== by 0x1171C7: gstreamer::auto::element_factory::ElementFactory::make (element_factory.rs:179)
==14255== by 0x113031: bug::main (bug.rs:13)
==14255== by 0x11259F: std::rt::lang_start::{{closure}} (rt.rs:64)
==14255== by 0x125082: {{closure}} (rt.rs:49)
==14255== by 0x125082: std::panicking::try::do_call (panicking.rs:294)
==14255== by 0x126B19: __rust_maybe_catch_panic (lib.rs:82)
==14255== by 0x125B3C: try<i32,closure> (panicking.rs:273)
==14255== by 0x125B3C: catch_unwind<closure,i32> (panic.rs:388)
==14255== by 0x125B3C: std::rt::lang_start_internal (rt.rs:48)
==14255== by 0x112578: std::rt::lang_start (rt.rs:64)
==14255== by 0x1134D9: main (in /home/cassidy/dev/rust/karapulse/target/debug/bug)
```
```rust
use gstreamer as gst;
use gst::prelude::*;
use gtk::prelude::*;
fn main() {
gst::init().unwrap();
gtk::init().unwrap();
{
let pipeline = gst::Pipeline::new(None);
let src = gst::ElementFactory::make("videotestsrc", None).unwrap();
let gtkglsink = gst::ElementFactory::make("gtkglsink", None).unwrap();
let glsinkbin = gst::ElementFactory::make("glsinkbin", None).unwrap();
glsinkbin.set_property("sink", >kglsink).unwrap();
let window = gtk::Window::new(gtk::WindowType::Toplevel);
let widget = gtkglsink.get_property("widget").unwrap();
let widget = widget.get::<gtk::Widget>().unwrap();
window.add(&widget);
window.set_size_request(800, 600);
window.show_all();
pipeline.add_many(&[&src, &glsinkbin]).unwrap();
src.link(&glsinkbin).unwrap();
pipeline.set_state(gst::State::Playing).unwrap();
pipeline.set_state(gst::State::Null).unwrap();
}
gtk::main();
}
```https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/630splitmuxsink / mp4mux creating invalid fMP4 files2023-10-12T16:36:11ZAaron Drewsplitmuxsink / mp4mux creating invalid fMP4 filesI've been trying to create adaptive HLS transcodes on a Jetson Nano and the HLS spec suggests fMP4 is the right container format for HEVC but it seems like 'moof' boxes aren't being output at all. I'm seeing what seems to be a corrupt 'd...I've been trying to create adaptive HLS transcodes on a Jetson Nano and the HLS spec suggests fMP4 is the right container format for HEVC but it seems like 'moof' boxes aren't being output at all. I'm seeing what seems to be a corrupt 'd ' box instead.
![Screen_Shot_2019-07-25_at_11.40.46_pm](/uploads/5069127ed03b57223903a5ee24fe0ae2/Screen_Shot_2019-07-25_at_11.40.46_pm.png)
I'm running a single decode with a set of video encodes and a copied audio track as follows:
```
/home/ubuntu/gst-1.16.0/bin/gst-launch-1.0 \
souphttpsrc is-live=true location="${URL}" ! \
tsparse set-timestamps=false ! tsdemux name=demux \
demux. ! queue2 ! mpegvideoparse ! omxmpeg2videodec ! tee name=vid \
demux. ! decodebin ! audioconvert ! avenc_ac3_fixed ! ac3parse ! tee name=audio \
splitmuxsink name=mux_1 location="${PREFIX}h265_1_%05d.mp4" max-size-time=2000000000 \
async-finalize=true muxer-factory=mp4mux muxer-properties="properties,streamable=true,fragment-duration=2000" send-keyframe-requests=true \
vid. ! nvvidconv ${RES} ! "video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080" ! \
omxh265enc iframeinterval=60 control-rate=1 ! \
"video/x-h265, level=(string)high5" ! h265parse ! mux_1. \
audio. ! queue ! mux_1.audio_0
...
```
I have actually seen some valid files produced with moof boxes, but it's very rare.
Can anyone tell me if I'm doing anything wrong? Based on gstqtmux.c, I am suspecting the code is writing to a bad offset somewhere, but my container knowledge is quite limited.
![6.h265_1_00002__11_](/uploads/2f8ea070f428cda93efad2bdadd390f1/6.h265_1_00002__11_.mp4)https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1030[HLS] Micro-freeze issue when refreshing live playlist2022-04-05T13:27:55ZJuan Ramírez[HLS] Micro-freeze issue when refreshing live playlistI am getting "micro-freezes" (meaning video stops for a fraction of a seconds and the resumes) at regular intervals, and those intervals coincide with the length of the playlist (given that the usual .m3u8 file contains 3 .ts segments to...I am getting "micro-freezes" (meaning video stops for a fraction of a seconds and the resumes) at regular intervals, and those intervals coincide with the length of the playlist (given that the usual .m3u8 file contains 3 .ts segments totaling between 10 and 15 seconds of video). It happens with most of the HLS streams I've tested with (a list is available below).
I tried adding buffering between hlsdemux and tsdemux and managed to increase performance, but the micro-freeze issue is still present. I also tried several property values (connection-speed for hlsdemux, sizes and thresholds of the queues etc) with no improvement.
I wrote to the mailing list and got this response from Charles Turner, which I think is worth quoting here:
> This is definitely a QoS bug, which isn't that unusual for elements in gst-plugins-bad. I had a quick peek at what might be going wrong and one hunch is that adaptivedemux isn't giving itself enough time, or is somehow stalling in updates_loop during the playlist updating logic. Maybe the target_duration wait times and/or the update timer cond bits need some adjustments.
Some of the workflows I've tried are the following:
```sh
gst-launch-1.0 playbin uri=$URL
```
```sh
gst-launch-1.0 souphttpsrc location="$URL" ! hlsdemux ! queue ! tsdemux name=demux \
demux. ! queue ! aacparse ! avdec_aac ! audioconvert ! autoaudiosink \
demux. ! queue ! h264parse ! avdec_h264 ! videoconvert ! autovideosink
```
With `URL` being one of the following:
* http://video3.earthcam.com/fecnetwork/hdtimes10.flv/.m3u8
* http://video3.earthcam.com/fecnetwork/9974.flv/.m3u8
* http://dwstream4-lh.akamaihd.net/i/dwstream4_live@131329/master.m3u8 (DW)
* https://5c21f7ec1999d.streamlock.net/8054/8054/playlist.m3u8 (TC, Ecuador)
* http://video.oct.dc.gov/out/u/DCN.m3u8 (DCN, provides various streams, use connection-speed to stick to one)
* http://unlimited2-us.dps.live/nettv/nettv.smil/playlist.m3u8 (NETTV, Argentina)
Streams that are not live, for example, [the ones at bitmovin.com](https://bitmovin.com/mpeg-dash-hls-examples-sample-streams) work ok (in the worst case you just have to set the appropriate bit rate).