On Thu, 28 Nov 2013 15:03:00 +0100, Vittorio Giovara <[email protected]> wrote: > --- > libavcodec/libx264.c | 38 +++++++++++++++++++++++++++++++++++++- > 1 file changed, 37 insertions(+), 1 deletion(-) > > diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c > index 08bb509..abf0a3e 100644 > --- a/libavcodec/libx264.c > +++ b/libavcodec/libx264.c > @@ -23,6 +23,7 @@ > #include "libavutil/opt.h" > #include "libavutil/mem.h" > #include "libavutil/pixdesc.h" > +#include "libavutil/stereo3d.h" > #include "avcodec.h" > #include "internal.h" > > @@ -134,6 +135,7 @@ static int X264_frame(AVCodecContext *ctx, AVPacket *pkt, > const AVFrame *frame, > x264_nal_t *nal; > int nnal, i, ret; > x264_picture_t pic_out; > + AVFrameSideData *side_data; > > x264_picture_init( &x4->pic ); > x4->pic.img.i_csp = x4->params.i_csp; > @@ -163,8 +165,42 @@ static int X264_frame(AVCodecContext *ctx, AVPacket > *pkt, const AVFrame *frame, > x4->params.vui.i_sar_width = ctx->sample_aspect_ratio.num; > x264_encoder_reconfig(x4->enc, &x4->params); > } > - } > > + side_data = av_frame_get_side_data(frame, AV_FRAME_DATA_STEREO3D); > + if (side_data) { > + AVStereo3D *stereo = (AVStereo3D *)side_data->data; > + int fpa_type; > + > + switch (stereo->type) { > + case AV_STEREO3D_CHECKERBOARD: > + fpa_type = 0; > + break; > + case AV_STEREO3D_LINES: > + fpa_type = 1; > + break; > + case AV_STEREO3D_COLUMNS: > + fpa_type = 2; > + break; > + case AV_STEREO3D_SIDEBYSIDE: > + fpa_type = 3; > + break; > + case AV_STEREO3D_TOPBOTTOM: > + fpa_type = 4; > + break; > + case AV_STEREO3D_FRAMESEQUENCE: > + fpa_type = 5; > + break; > + default: > + fpa_type = -1; > + break; > + } > + > + if (fpa_type != x4->params.i_frame_packing) { > + x4->params.i_frame_packing = fpa_type; > + x264_encoder_reconfig(x4->enc, &x4->params); > + } > + } > + } > do { > if (x264_encoder_encode(x4->enc, &nal, &nnal, frame? &x4->pic: NULL, > &pic_out) < 0) > return -1; > -- > 1.7.9.5
LGTM -- Anton Khirnov _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
