movd_r2m(mm1,dst[0]);
#endif
+#if LIBAVUTIL_VERSION_INT < (50<<16)
+#define PIX_FMT_YUYV422 PIX_FMT_YUV422
+#endif
+
/* filter parameters: [-1 4 2 4 -1] // 8 */
static inline void deinterlace_line(uint8_t *dst,
const uint8_t *lum_m4, const uint8_t *lum_m3,
if (pix_fmt != PIX_FMT_YUV420P &&
pix_fmt != PIX_FMT_YUV422P &&
- pix_fmt != PIX_FMT_YUV422 &&
+ pix_fmt != PIX_FMT_YUYV422 &&
pix_fmt != PIX_FMT_YUV444P &&
pix_fmt != PIX_FMT_YUV411P)
return -1;
if ((width & 3) != 0 || (height & 3) != 0)
return -1;
- if ( pix_fmt != PIX_FMT_YUV422 )
+ if ( pix_fmt != PIX_FMT_YUYV422 )
{
for(i=0;i<3;i++) {
if (i == 1) {
else {
if (src == dst) {
deinterlace_bottom_field_inplace(dst->data[0], dst->linesize[0],
- width, height);
+ width<<1, height);
} else {
deinterlace_bottom_field(dst->data[0],dst->linesize[0],
src->data[0], src->linesize[0],
- width, height);
+ width<<1, height);
}
}
writable = !mlt_properties_get_int( MLT_FRAME_PROPERTIES( this ), "progressive" );
// Get the input image
- error = mlt_frame_get_image( this, image, format, width, height, writable );
+ *format = mlt_image_yuv422;
+ error = mlt_frame_get_image( this, image, format, width, height, 1 );
// Check that we want progressive and we aren't already progressive
if ( deinterlace && *format == mlt_image_yuv422 && *image != NULL && !mlt_properties_get_int( MLT_FRAME_PROPERTIES( this ), "progressive" ) )
AVPicture *output = mlt_pool_alloc( sizeof( AVPicture ) );
// Fill the picture
- if ( *format == mlt_image_yuv422 )
- {
- avpicture_fill( output, *image, PIX_FMT_YUV422, *width, *height );
- mlt_avpicture_deinterlace( output, output, PIX_FMT_YUV422, *width, *height );
- }
+ avpicture_fill( output, *image, PIX_FMT_YUYV422, *width, *height );
+ mlt_avpicture_deinterlace( output, output, PIX_FMT_YUYV422, *width, *height );
// Free the picture
mlt_pool_release( output );