1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
#include "queue_momo.h"
static bool queue_momo_configure_subtitles(struct camu_frame_queue *queue, u32 width, u32 height,
struct camu_codec_stream *stream)
{
struct camu_frame_queue_momo *mq = (struct camu_frame_queue_momo *)queue;
(void)mq;
(void)width;
(void)height;
(void)stream;
return false;
}
static void queue_momo_push(struct camu_frame_queue *queue, struct camu_codec_frame *frame, f64 pts, u32 *count)
{
struct camu_frame_queue_momo *mq = (struct camu_frame_queue_momo *)queue;
(void)mq;
(void)pts;
(void)count;
camu_codec_frame_discard(frame);
}
#ifdef CAMU_HAVE_FFMPEG
static void queue_momo_push_av_frame(struct camu_frame_queue *queue, AVFrame *frame, f64 pts, u32 *count)
{
struct camu_frame_queue_momo *mq = (struct camu_frame_queue_momo *)queue;
(void)mq;
(void)pts;
(void)count;
av_frame_free(&frame);
}
#endif
static void queue_momo_push_subtitle(struct camu_frame_queue *queue, struct camu_codec_packet *packet)
{
struct camu_frame_queue_momo *mq = (struct camu_frame_queue_momo *)queue;
(void)mq;
(void)packet;
}
static void queue_momo_flush(struct camu_frame_queue *queue, u32 *count)
{
(void)queue;
(void)count;
}
static u8 queue_momo_read(struct camu_frame_queue *queue, f64 pts, void *out, u32 *count)
{
struct camu_frame_queue_momo *mq = (struct camu_frame_queue_momo *)queue;
(void)mq;
(void)pts;
(void)out;
(void)count;
return CAMU_QUEUE_OK;
}
static void queue_momo_reset(struct camu_frame_queue *queue)
{
struct camu_frame_queue_momo *tq = (struct camu_frame_queue_momo *)queue;
(void)tq;
}
static void queue_momo_free(struct camu_frame_queue **queue)
{
struct camu_frame_queue_momo *mq = (struct camu_frame_queue_momo *)*queue;
al_free(mq);
*queue = NULL;
}
struct camu_frame_queue *camu_frame_queue_momo_create(void)
{
struct camu_frame_queue_momo *mq = al_alloc_object(struct camu_frame_queue_momo);
mq->q.configure_subtitles = queue_momo_configure_subtitles;
mq->q.push = queue_momo_push;
#ifdef CAMU_HAVE_FFMPEG
mq->q.push_av_frame = queue_momo_push_av_frame;
#endif
mq->q.push_subtitle = queue_momo_push_subtitle;
mq->q.flush = queue_momo_flush;
mq->q.read = queue_momo_read;
mq->q.reset = queue_momo_reset;
mq->q.free = queue_momo_free;
return (struct camu_frame_queue *)mq;
}
|