You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
notcurses/doc/man/man3/notcurses_visual.3.md

79 lines
2.8 KiB
Markdown

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

% notcurses_ncvisual(3)
% nick black <nickblack@linux.com>
% v1.3.2
# NAME
notcurses_ncvisual - notcurses multimedia
# SYNOPSIS
**#include <notcurses/notcurses.h>**
```c
typedef enum {
NCSCALE_NONE,
NCSCALE_SCALE,
NCSCALE_STRETCH,
} ncscale_e;
typedef int (*streamcb)(struct notcurses*, struct ncvisual*, void*);
```
**bool notcurses_canopen(const struct notcurses* nc);**
**struct ncvisual* ncplane_visual_open(struct ncplane* nc, const char* file,
nc_err_e* err);**
**struct ncvisual* ncvisual_open_plane(struct notcurses* nc, const char* file,
nc_err_e* err, int y, int x,
ncscale_e style);**
**void ncvisual_destroy(struct ncvisual* ncv);**
**nc_err_e ncvisual_decode(struct ncvisual* nc);**
**int ncvisual_render(const struct ncvisual* ncv, int begy, int begx,
int leny, int lenx);**
**int ncvisual_simple_streamer(struct notcurses* nc, struct ncvisual* ncv, void* curry);**
**int ncvisual_stream(struct notcurses* nc, struct ncvisual* ncv, nc_err_e* err,
float timescale, streamcb streamer, void* curry);**
**struct ncplane* ncvisual_plane(struct ncvisual* ncv);**
# DESCRIPTION
The frame will be scaled to the size of the ncplane per the ncscale_e style.
**ncvisual_render** actually blits the decoded frame to its associated plane.
A subregion of the frame can be specified using **begx**, **begy**, **lenx**,
and **leny**. To render the rectangle having its origin at **begy**, **begx**
and the lower-right corner, -1 can be supplied as **leny** and **lenx**.
{0, 0, -1, -1} will thus render the entire visual. Negative values for **begy**
or **begx** are an error. It is an error to specify any region beyond the
boundaries of the frame. Supplying zero for either **leny** or **lenx** will
result in a zero-area rendering.
# RETURN VALUES
**notcurses_canopen** returns true if this functionality is enabled, or false
if Notcurses was not built with FFmpeg support. **ncplane_visual_open** and
**ncvisual_open_plane** return an **ncvisual** object on success, or **NULL**
on failure. Success from these functions indicates that the specified **file**
was opened, and enough data was read to make a firm codec identification. It
does not mean that the entire file is properly-formed. On failure, **err**
will be updated. **ncvisual_decode** returns **NCERR_SUCCESS** on success, or
**NCERR_EOF** on end of file, or some other **nc_err_e** on failure. It
likewise updates **err** in the event of an error. **ncvisual_render** returns
the number of cells emitted, or -1 on error.
# NOTES
Multimedia decoding requires that Notcurses be built with either FFmpeg or
OpenImageIO support. What formats can be decoded is totally dependent on the
linked library.
# SEE ALSO
**notcurses(3)**, **notcurses_ncplane(3)**