vlc | branch: master | Laurent Aimar <[email protected]> | Sat Jan 7 00:35:15 2012 +0100| [76821fb12d7e3a5cf6be62f023852c8091b09a69] | committer: Laurent Aimar
Fixed motiondetect packed YUV filter function. A filter shall not return an input buffer. It closes #5748. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=76821fb12d7e3a5cf6be62f023852c8091b09a69 --- modules/video_filter/motiondetect.c | 34 +++++++++++++++++++--------------- 1 files changed, 19 insertions(+), 15 deletions(-) diff --git a/modules/video_filter/motiondetect.c b/modules/video_filter/motiondetect.c index 289f365..d14f377 100644 --- a/modules/video_filter/motiondetect.c +++ b/modules/video_filter/motiondetect.c @@ -277,40 +277,44 @@ static picture_t *FilterPacked( filter_t *p_filter, picture_t *p_inpic ) const video_format_t *p_fmt = &p_filter->fmt_in.video; picture_t *p_outpic; - const uint8_t *p_inpix = p_inpic->p[Y_PLANE].p_pixels; - const int i_src_pitch = p_inpic->p[Y_PLANE].i_pitch; - uint8_t *p_oldpix = p_sys->p_old->p[Y_PLANE].p_pixels; const int i_old_pitch = p_sys->p_old->p[Y_PLANE].i_pitch; uint32_t *p_buf = p_sys->p_buf; uint32_t *p_buf2= p_sys->p_buf2; - int i_y_offset, i_u_offset, i_v_offset; - unsigned x, y; - if( GetPackedYuvOffsets( p_fmt->i_chroma, - &i_y_offset, &i_u_offset, &i_v_offset ) ) + if( !p_inpic ) + return NULL; + + const uint8_t *p_inpix = p_inpic->p[Y_PLANE].p_pixels; + const int i_src_pitch = p_inpic->p[Y_PLANE].i_pitch; + + p_outpic = filter_NewPicture( p_filter ); + if( !p_outpic ) { - msg_Warn( p_filter, "Unsupported input chroma (%4.4s)", - (char*)&p_fmt->i_chroma ); - return p_inpic; + picture_Release( p_inpic ); + return NULL; } + picture_Copy( p_outpic, p_inpic ); if( !p_sys->b_old ) { picture_Copy( p_sys->p_old, p_inpic ); + picture_Release( p_inpic ); p_sys->b_old = true; - return p_inpic; + return p_outpic; } - p_outpic = filter_NewPicture( p_filter ); - if( !p_outpic ) + int i_y_offset, i_u_offset, i_v_offset; + if( GetPackedYuvOffsets( p_fmt->i_chroma, + &i_y_offset, &i_u_offset, &i_v_offset ) ) { + msg_Warn( p_filter, "Unsupported input chroma (%4.4s)", + (char*)&p_fmt->i_chroma ); picture_Release( p_inpic ); - return NULL; + return p_outpic; } - picture_Copy( p_outpic, p_inpic ); /* Substract all planes at once */ _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
