88 {
92 size_t len =
sizeof display_codecs;
96 return NULL;
97 }
100 len =
sizeof rgb_shift;
103 }
105 int src_linesize = 0;
106 int dst_linesize = 0;
107
108 while (1) {
109 pthread_mutex_lock(&s->
lock);
111 pthread_cond_wait(&s->
cv, &s->
lock);
112 }
114 pthread_mutex_unlock(&s->
lock);
115 if (!f) {
117 break;
118 }
119
126 continue;
127 }
132 configured_desc = new_desc;
133 }
136 dec((
unsigned char *) df->
tiles[0].
data + i * dst_linesize, (
unsigned char *) f->
tiles[0].
data + i * src_linesize, dst_linesize, rgb_shift[0], rgb_shift[1], rgb_shift[2]);
137 }
140 }
141
142 return NULL;
143}
struct video_desc video_desc_from_frame(const struct video_frame *frame)
Returns struct video_desc from video frame.
int vc_get_linesize(unsigned int width, codec_t codec)
#define LOG_LEVEL_NOTICE
information that may be interesting
#define LOG_LEVEL_ERROR
general errors
static codec_t select_display_codec(codec_t *display_codecs, codec_t recv_codec)
bool display_put_frame(struct display *d, struct video_frame *frame, long long timeout_ns)
Puts filled video frame. After calling this function, video frame cannot be used.
bool display_ctl_property(struct display *d, int property, void *val, size_t *len)
Gets property from video display.
struct video_frame * display_get_frame(struct display *d)
Returns video framebuffer which will be written to.
@ DISPLAY_PROPERTY_RGB_SHIFT
red,green,blue shift - int[3] (bits)
@ DISPLAY_PROPERTY_CODECS
list of natively supported codecs - codec_t[]
void * simple_linked_list_pop(struct simple_linked_list *l)
decoder_t get_decoder_from_to(codec_t in, codec_t out)
decoder_func_t * decoder_t
char * data
Raw tile data. Pointer must be at least 4B aligned.
struct tile tiles[FLEXIBLE_ARRAY_MEMBER]
@ VIDEO_NORMAL
normal video (one tile)
@ VIDEO_CODEC_COUNT
count of known video codecs (including VIDEO_CODEC_NONE)
const char * video_desc_to_string(struct video_desc d)
bool display_reconfigure(struct display *d, struct video_desc desc, enum video_mode video_mode)
Reconfigure display to new video format.
bool video_desc_eq(struct video_desc a, struct video_desc b)
Compares two video descriptions.