mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-27 09:52:17 +00:00
avcodec/snowenc: AV_CODEC_CAP_ENCODER_RECON_FRAME support
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
163013c724
commit
006136efaf
@ -26,6 +26,7 @@
|
||||
#include "avcodec.h"
|
||||
#include "codec_internal.h"
|
||||
#include "encode.h"
|
||||
#include "internal.h" //For AVCodecInternal.recon_frame
|
||||
#include "me_cmp.h"
|
||||
#include "packet_internal.h"
|
||||
#include "snow_dwt.h"
|
||||
@ -1580,6 +1581,7 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt,
|
||||
{
|
||||
SnowContext *s = avctx->priv_data;
|
||||
RangeCoder * const c= &s->c;
|
||||
AVCodecInternal *avci = avctx->internal;
|
||||
AVFrame *pic;
|
||||
const int width= s->avctx->width;
|
||||
const int height= s->avctx->height;
|
||||
@ -1881,6 +1883,10 @@ redo_frame:
|
||||
s->encoding_error,
|
||||
(s->avctx->flags&AV_CODEC_FLAG_PSNR) ? SNOW_MAX_PLANES : 0,
|
||||
s->current_picture->pict_type);
|
||||
if (s->avctx->flags & AV_CODEC_FLAG_RECON_FRAME) {
|
||||
av_frame_unref(avci->recon_frame);
|
||||
av_frame_ref(avci->recon_frame, s->current_picture);
|
||||
}
|
||||
|
||||
pkt->size = ff_rac_terminate(c, 0);
|
||||
if (s->current_picture->key_frame)
|
||||
@ -1938,7 +1944,9 @@ const FFCodec ff_snow_encoder = {
|
||||
CODEC_LONG_NAME("Snow"),
|
||||
.p.type = AVMEDIA_TYPE_VIDEO,
|
||||
.p.id = AV_CODEC_ID_SNOW,
|
||||
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
|
||||
.p.capabilities = AV_CODEC_CAP_DR1 |
|
||||
AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE |
|
||||
AV_CODEC_CAP_ENCODER_RECON_FRAME,
|
||||
.priv_data_size = sizeof(SnowContext),
|
||||
.init = encode_init,
|
||||
FF_CODEC_ENCODE_CB(encode_frame),
|
||||
|
Loading…
Reference in New Issue
Block a user