summaryrefslogtreecommitdiff
path: root/src/codec/ffmpeg/encoder.h
blob: 3ace4d824248999ac47dc8542daabf8263fd09c6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#pragma once

#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>

#include "../codec.h"

struct camu_ff_encoder {
    AVCodecContext *codec_context;
    const AVOutputFormat *output_format;

    struct camu_audio_format fmt;
    AVFrame *frame;

    void (*callback)(void *, AVPacket *);
    void *userdata;
};

bool camu_ff_encoder_init(struct camu_ff_encoder *enc, char *encoder_name, char *ext, u32 bitrate);
void camu_ff_encoder_push(struct camu_ff_encoder *enc, u8 **data, s32 sample_count);
void camu_ff_encoder_reset(struct camu_ff_encoder *enc);
void camu_ff_encoder_close(struct camu_ff_encoder *enc);