Commit Graph

34 Commits

Author SHA1 Message Date
Martin Pulec
5ddd70e4ac vdisp/pipe: do not announce VC_NONE support
If using transcoding reflector, eg.:
`hd-rum-transcode 8M 5004 -c libavcodec -P 6004 100:1`

pipe is used, which advertised VC_NONE, for which assertion at the
beginning of get_pixfmt_desc() failed.
2024-05-20 08:52:41 +02:00
Martin Pulec
48edc92fef disp/pipe: do removed multi source process
As stated in the commit 2ff1b2ef44, this display doesn't support/implement
this.
2024-02-02 14:25:04 +01:00
Martin Pulec
c3d2b158be pipe disp.: adverise all pixfmts
closes GH-349
2023-11-08 12:59:30 +01:00
Martin Pulec
6780691b4e modernize playback APIs
modernized video display, audio playback and vo postprocess APIs

THe APIs were already recently updated so modernize it by using bool
where the return value is semantically boolean value. Using TRUE/FALSE is
inherently ambiguous because it is not obvious from the prototype if
success is 0 or TRUE (1).
2023-07-18 16:43:37 +02:00
Martin Pulec
d2b39acab0 video display: returns bool from putf API
Use bool return value from putf - returning int here may be error-prone
because the semantics is unclear (is success 0 or TRUE).
2023-07-18 13:46:54 +02:00
Martin Pulec
a3daa89ef6 displays: changed api for mainloop
- removed `needs_mainloop` attribute and deduce if mainloop is needed
  from the presence of _run callback (the information is now redundant
  only displays needing/running mainloop should announce _run callback)

- run the custom mainloop (currently only Syphon!) only when display
  doesn't run its mainloop. This allows running Syphon and GL/SDL
  display because it connects to the display mainloop.
2023-03-29 13:39:48 +02:00
Martin Pulec
3f630e5aca displays: fill video_display_info::run only if needed
Fill the `run` member only if really requesting to run display mainloop,
not to just letting UG run a worker thread.
2023-03-29 13:39:48 +02:00
Martin Pulec
00801fa3d4 video display: updated putf api - use timeout
Replace blocking/nonblock/discard flags with numerical timeout for
fine-grainer control of latency.

The original flags are kept as convenience macros so the API changes is
only small as long as non-block (default) or blocking is used.
2022-10-05 16:24:24 +02:00
Martin Pulec
02e52afa7b video display FPS ind.: provide name by module
Use name (MOD_NAME) provided by module rather than name given from
command-line. Those 2 may not match - in command-line it is
case-insensitive so ("gl" or even "gL" would be printed inestead of
expected "GL"). Also there may be input/output module of the same name
(eg. decklink) for which we may want to distinguish.
2022-09-27 15:52:28 +02:00
Martin Pulec
e4f56be955 prevent dangling lambdas
Prevent dangling parameter-less lambdas. Although it may not be so dangerous
(operator() should be a plain function in the end), it is not correct.
2022-07-14 09:29:15 +02:00
Martin Pulec
ae9ac7da07 video_display: added optional generic indicator 2022-06-30 16:41:40 +02:00
Martin Pulec
6729a8a1ad audio: use const audio_frame 2022-05-25 17:09:42 +02:00
Martin Pulec
fd97253105 Pipe: option to specify output pixfmt 2020-10-26 08:10:35 +01:00
Martin Pulec
69a6c7ca0f Hide internal/helper displays from cmdline listing 2020-09-21 14:34:02 +02:00
Martin Pulec
6651695c1e Video display: added needs_mainloop callback
This allows more fine-grained evaluation if the display really needs to
be run in the main thread or not (eg. for multiplier)
2020-07-22 15:45:10 +02:00
Martin Pulec
c62f7c6282 Pipe: fixed leaks 2020-05-28 15:59:06 +02:00
Martin Pulec
04e1f472bd Pipe: support for audio 2020-05-20 16:20:08 +02:00
Martin Pulec
149b9c7eed Moved frame_recv_delegate to pipe.hpp 2020-05-20 10:55:00 +02:00
Martin Pulec
31d80b34b9 Video display: run mainloop only if needed
Do not run the display worker in the main thread if not needed.

This would allow to run a custom mainloop (eg. from Syphon) while being able
to run a display that doesn't need to be run in the main thread.
2020-04-14 10:52:54 +02:00
Martin Piatka
25e6f31662 video_display_info: probe: pass function ptr to deleter func 2019-03-15 13:00:59 +01:00
Martin Piatka
1e2f38c97c Rewrite video_frame callbacks to be set by decoders 2018-09-12 23:29:08 +02:00
Martin Pulec
5197a11c85 Video postprocess: moved from decoder to display
This allows postprocess replacement without reconfiguring the whole
decoder (under smoe circumstances).
2016-10-10 20:44:37 +02:00
Martin Pulec
a35a3b9d05 Use common type struct device_info
Use common structure to query AV devices.
2016-01-07 13:13:31 +01:00
Martin Pulec
a68f4e58bb Capabilities: print available display devices 2015-12-10 14:42:29 +01:00
Martin Pulec
b1da9539dc Pipe: fill dispose member
Caused leaks in hd-rum-transcoder because capture filter was not calling
vf_free but video_frame::dispose on frame (empty then).
2015-11-16 00:05:29 +01:00
Martin Pulec
2ff1b2ef44 Pipe display: do not handle multiple sources
Set the flag to false since the display cannot actually handle multiple
sources.
2015-09-24 11:01:03 +02:00
Martin Pulec
5c5e21ebab Small changes 2015-09-21 14:38:30 +02:00
Martin Pulec
072ea8cbb5 Register modules with macro 2015-08-31 11:11:05 +02:00
Martin Pulec
c1e4eb50e4 Video displays: switched to new mod loading API 2015-08-31 11:11:04 +02:00
Martin Pulec
2edaa776b5 Proxy/pipe display: properly reconfigure for mult streams 2015-08-18 13:49:51 +02:00
Martin Pulec
2bd86bddf6 Video display: pass parent module pointer 2014-11-03 18:21:56 +01:00
Martin Pulec
42891c5ba8 Implement PUTF_DISCARD for some more displays 2014-10-22 18:16:29 +02:00
Martin Pulec
68e23f56b2 Added timeout to proxy display
This allows SSRC to be switched from and then again to it.
2014-09-30 00:09:53 +02:00
Martin Pulec
37e80a40c5 Hd-rum-transcode: decoder rewritten 2014-09-23 14:26:20 +02:00