mirror of
https://github.com/mpv-player/mpv
synced 2025-02-20 14:56:55 +00:00
encode: use new AVFrame API
This commit is contained in:
parent
62ab6a91bd
commit
62c88a52c4
@ -216,7 +216,6 @@ static int get_space(struct ao *ao)
|
||||
// must get exactly ac->aframesize amount of data
|
||||
static int encode(struct ao *ao, double apts, void **data)
|
||||
{
|
||||
AVFrame *frame;
|
||||
AVPacket packet;
|
||||
struct priv *ac = ao->priv;
|
||||
struct encode_lavc_context *ectx = ao->encode_lavc_ctx;
|
||||
@ -232,9 +231,8 @@ static int encode(struct ao *ao, double apts, void **data)
|
||||
av_init_packet(&packet);
|
||||
packet.data = ac->buffer;
|
||||
packet.size = ac->buffer_size;
|
||||
if(data)
|
||||
{
|
||||
frame = avcodec_alloc_frame();
|
||||
if(data) {
|
||||
AVFrame *frame = av_frame_alloc();
|
||||
frame->nb_samples = ac->aframesize;
|
||||
|
||||
assert(ao->channels.num <= AV_NUM_DATA_POINTERS);
|
||||
@ -270,7 +268,7 @@ static int encode(struct ao *ao, double apts, void **data)
|
||||
ac->savepts = frame->pts;
|
||||
}
|
||||
|
||||
avcodec_free_frame(&frame);
|
||||
av_frame_free(&frame);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -282,7 +282,6 @@ static void draw_image_unlocked(struct vo *vo, mp_image_t *mpi)
|
||||
struct priv *vc = vo->priv;
|
||||
struct encode_lavc_context *ectx = vo->encode_lavc_ctx;
|
||||
int size;
|
||||
AVFrame *frame;
|
||||
AVCodecContext *avc;
|
||||
int64_t frameipts;
|
||||
double nextpts;
|
||||
@ -407,7 +406,6 @@ static void draw_image_unlocked(struct vo *vo, mp_image_t *mpi)
|
||||
}
|
||||
|
||||
if (vc->lastipts != MP_NOPTS_VALUE) {
|
||||
frame = avcodec_alloc_frame();
|
||||
|
||||
// we have a valid image in lastimg
|
||||
while (vc->lastipts < frameipts) {
|
||||
@ -424,7 +422,7 @@ static void draw_image_unlocked(struct vo *vo, mp_image_t *mpi)
|
||||
skipframes = 0;
|
||||
|
||||
if (thisduration > skipframes) {
|
||||
avcodec_get_frame_defaults(frame);
|
||||
AVFrame *frame = av_frame_alloc();
|
||||
|
||||
// this is a nop, unless the worst time base is the STREAM time base
|
||||
frame->pts = av_rescale_q(vc->lastipts + skipframes,
|
||||
@ -444,12 +442,12 @@ static void draw_image_unlocked(struct vo *vo, mp_image_t *mpi)
|
||||
write_packet(vo, size, &packet);
|
||||
++vc->lastdisplaycount;
|
||||
vc->lastencodedipts = vc->lastipts + skipframes;
|
||||
|
||||
av_frame_free(&frame);
|
||||
}
|
||||
|
||||
vc->lastipts += thisduration;
|
||||
}
|
||||
|
||||
avcodec_free_frame(&frame);
|
||||
}
|
||||
|
||||
if (!mpi) {
|
||||
|
Loading…
Reference in New Issue
Block a user