|
|
|
@@ -78,6 +78,7 @@ X264_frame(AVCodecContext *ctx, uint8_t *buf, int bufsize, void *data) |
|
|
|
x4->pic.img.i_csp = X264_CSP_I420; |
|
|
|
x4->pic.img.i_plane = 3; |
|
|
|
|
|
|
|
if (frame) { |
|
|
|
for(i = 0; i < 3; i++){ |
|
|
|
x4->pic.img.plane[i] = frame->data[i]; |
|
|
|
x4->pic.img.i_stride[i] = frame->linesize[i]; |
|
|
|
@@ -85,8 +86,10 @@ X264_frame(AVCodecContext *ctx, uint8_t *buf, int bufsize, void *data) |
|
|
|
|
|
|
|
x4->pic.i_pts = frame->pts; |
|
|
|
x4->pic.i_type = X264_TYPE_AUTO; |
|
|
|
} |
|
|
|
|
|
|
|
if(x264_encoder_encode(x4->enc, &nal, &nnal, &x4->pic, &pic_out)) |
|
|
|
if(x264_encoder_encode(x4->enc, &nal, &nnal, frame? &x4->pic: NULL, |
|
|
|
&pic_out)) |
|
|
|
return -1; |
|
|
|
|
|
|
|
bufsize = encode_nals(buf, bufsize, nal, nnal); |
|
|
|
@@ -291,5 +294,6 @@ AVCodec x264_encoder = { |
|
|
|
.init = X264_init, |
|
|
|
.encode = X264_frame, |
|
|
|
.close = X264_close, |
|
|
|
.capabilities = CODEC_CAP_DELAY, |
|
|
|
.pix_fmts = (enum PixelFormat[]) { PIX_FMT_YUV420P, -1 } |
|
|
|
}; |