';' is not a valid delimiter for sprop-parameters-set units according to
RFC 6185, example line from SDP:
a=fmtp:96 packetization-mode=1; sprop-parameter-sets=Z2QAKKyyAPAET8uAiAAAAwAIAAADAZR4wZJA,aOvDyyLA; profile-level-id=640028
+ do not export discarded frame
+ assure that the exported frame is ours (otherwise the lifetime is
uncertain eg. if we decide to write the frame in thread)
For opaque codecs (H.264), the allocated size was actually smaller than
(maximal) data len set. That is usually not an issue, but when
destroying, the invalid maximum is exported (because PUTF_DISCARD with
unmodified frame). Steps to reproduce:
uv -t testcard:size=1280x128 -c libavcodec:codec=H.264 -d dump
NAL units are put to the buffer in a reverse order (from the end of the
frame to the beginning), but aggregate (STAP-A) NAL units were processed
straight while put in the buffer from the end.
The output may be flooded by decoding errors (eg. H.264) which may not
be desirable. If not specified, the verbosity level for libavcodec is
deduced from UltraGrid log level.
Skip repeating registration of the same parameter.
This allows registration of the param from within more modules (eg.
common file included in multiple plugins). Warning is issued if already
registered param has a different description.
- do not check for the version in Windows (cannot be checked as it is
implemented)
- dropped NTV2 12 compat - this wouldn't definitely compile, as we
require approx. NTV2 16 as indicated in the particular test
Encapsulate all GL-related init/deinit code to display_gl_init_opengl
and display_gl_cleanup_opengl.
Also detach context after init(), before and after run() and before
done(). This keeps the module independent from context (some other part
of UG may detach the context and attach a different).
Make complete initialization in _init function from now - _run must be
run from main thread now (even if not, the context may be detached and
reattached in a thread.
A race condition occurs when poison pill is passed and the content is
not fully initialized (_run function). Then putf function doesn't mark
the window for deletion, because it has not been created yet and as a
result, the run loop keeps running.
see commits e3c926c8 and 1f735a93
We patch FFmpeg in Linux CI builds so if it is patched, intra-refresh
sitll can be enabled, even though not by default.