⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vdec_motion.c

📁 vlc stand 0.1.99 ist sehr einfach
💻 C
📖 第 1 页 / 共 3 页
字号:
                    p_mb->pppi_motion_vectors[1][1][1],                 \                    p_mb->i_l_stride, p_mb->i_c_stride, 8, 8, 1 );      \        }                                                               \    }                                                                   \                                                                        \    else /* MB_MOTION_BACKWARD */                                       \    {                                                                   \        MOTION( p_mb, p_mb->p_backward, p_mb->ppi_field_select[0][1],   \                p_mb->b_motion_field,                                   \                p_mb->pppi_motion_vectors[0][1][0],                     \                p_mb->pppi_motion_vectors[0][1][1],                     \                p_mb->i_l_stride, p_mb->i_c_stride, 8, 0, 0 );          \                                                                        \        MOTION( p_mb, p_mb->p_backward, p_mb->ppi_field_select[1][1],   \                p_mb->b_motion_field,                                   \                p_mb->pppi_motion_vectors[1][1][0],                     \                p_mb->pppi_motion_vectors[1][1][1],                     \                p_mb->i_l_stride, p_mb->i_c_stride, 8, 8, 0 );          \    }                                                                   \}void vdec_MotionField16x8420( macroblock_t * p_mb ){    FIELD16X8( Motion420 )}void vdec_MotionField16x8422( macroblock_t * p_mb ){    //FIELD16X8( Motion422 )}void vdec_MotionField16x8444( macroblock_t * p_mb ){    //FIELD16X8( Motion444 )}/***************************************************************************** * vdec_MotionFieldDMVXXX?? : motion compensation for dmv motion type (field) *****************************************************************************/#define FIELDDMV( MOTION )                                              \{                                                                       \    /* This is necessarily a MOTION_FORWARD only macroblock, in a P     \     * picture. */                                                      \    picture_t *     p_pred;                                             \                                                                        \    /* predict from field of same parity */                             \    MOTION( p_mb, p_mb->p_forward,                                      \            p_mb->b_motion_field, p_mb->b_motion_field,                 \            p_mb->pppi_motion_vectors[0][0][0],                         \            p_mb->pppi_motion_vectors[0][0][1],                         \            p_mb->i_l_stride, p_mb->i_c_stride, 16, 0, 0 );             \                                                                        \    if( p_mb->b_P_second )                                              \        p_pred = p_mb->p_picture;                                       \    else                                                                \        p_pred = p_mb->p_forward;                                       \                                                                        \    /* predict from field of opposite parity */                         \    MOTION( p_mb, p_pred, !p_mb->b_motion_field, p_mb->b_motion_field,  \            p_mb->ppi_dmv[0][0], p_mb->ppi_dmv[0][1],                   \            p_mb->i_l_stride, p_mb->i_c_stride, 16, 0, 1 );             \} /* FIELDDMV */void vdec_MotionFieldDMV420( macroblock_t * p_mb ){    FIELDDMV( Motion420 )}void vdec_MotionFieldDMV422( macroblock_t * p_mb ){    //FIELDDMV( Motion422 )}void vdec_MotionFieldDMV444( macroblock_t * p_mb ){    //FIELDDMV( Motion444 )}/***************************************************************************** * vdec_MotionFrameFrameXXX?? : motion compensation for frame motion type (frame) *****************************************************************************/#define FRAMEFRAME( MOTION )                                            \{                                                                       \    if( p_mb->i_mb_type & MB_MOTION_FORWARD )                           \    {                                                                   \        MOTION( p_mb, p_mb->p_forward, 0, 0,                            \                p_mb->pppi_motion_vectors[0][0][0],                     \                p_mb->pppi_motion_vectors[0][0][1],                     \                p_mb->i_l_stride, p_mb->i_c_stride, 16, 0, 0 );         \                                                                        \        if( p_mb->i_mb_type & MB_MOTION_BACKWARD )                      \        {                                                               \            MOTION( p_mb, p_mb->p_backward, 0, 0,                       \                    p_mb->pppi_motion_vectors[0][1][0],                 \                    p_mb->pppi_motion_vectors[0][1][1],                 \                    p_mb->i_l_stride, p_mb->i_c_stride, 16, 0, 1 );     \        }                                                               \    }                                                                   \                                                                        \    else /* MB_MOTION_BACKWARD */                                       \    {                                                                   \        MOTION( p_mb, p_mb->p_backward, 0, 0,                           \                p_mb->pppi_motion_vectors[0][1][0],                     \                p_mb->pppi_motion_vectors[0][1][1],                     \                p_mb->i_l_stride, p_mb->i_c_stride, 16, 0, 0 );         \    }                                                                   \} /* FRAMEFRAME */void vdec_MotionFrameFrame420( macroblock_t * p_mb ){    FRAMEFRAME( Motion420 )}void vdec_MotionFrameFrame422( macroblock_t * p_mb ){    //FRAMEFRAME( Motion422 )}void vdec_MotionFrameFrame444( macroblock_t * p_mb ){    //FRAMEFRAME( Motion444 )}/***************************************************************************** * vdec_MotionFrameFieldXXX?? : motion compensation for field motion type (frame) *****************************************************************************/#define FRAMEFIELD( MOTION )                                            \{                                                                       \    int i_l_stride = p_mb->i_l_stride << 1;                             \    int i_c_stride = p_mb->i_c_stride << 1;                             \                                                                        \    if( p_mb->i_mb_type & MB_MOTION_FORWARD )                           \    {                                                                   \        MOTION( p_mb, p_mb->p_forward, p_mb->ppi_field_select[0][0], 0, \                p_mb->pppi_motion_vectors[0][0][0],                     \                p_mb->pppi_motion_vectors[0][0][1],                     \                i_l_stride, i_c_stride, 8, 0, 0 );                      \                                                                        \        MOTION( p_mb, p_mb->p_forward, p_mb->ppi_field_select[1][0], 1, \                p_mb->pppi_motion_vectors[1][0][0],                     \                p_mb->pppi_motion_vectors[1][0][1],                     \                i_l_stride, i_c_stride, 8, 0, 0 );                      \                                                                        \        if( p_mb->i_mb_type & MB_MOTION_BACKWARD )                      \        {                                                               \            MOTION( p_mb, p_mb->p_backward,                             \                    p_mb->ppi_field_select[0][1], 0,                    \                    p_mb->pppi_motion_vectors[0][1][0],                 \                    p_mb->pppi_motion_vectors[0][1][1],                 \                    i_l_stride, i_c_stride, 8, 0, 1 );                  \                                                                        \            MOTION( p_mb, p_mb->p_backward,                             \                    p_mb->ppi_field_select[1][1], 1,                    \                    p_mb->pppi_motion_vectors[1][1][0],                 \                    p_mb->pppi_motion_vectors[1][1][1],                 \                    i_l_stride, i_c_stride, 8, 0, 1 );                  \        }                                                               \    }                                                                   \                                                                        \    else /* MB_MOTION_BACKWARD only */                                  \    {                                                                   \        MOTION( p_mb, p_mb->p_backward, p_mb->ppi_field_select[0][1], 0,\                p_mb->pppi_motion_vectors[0][1][0],                     \                p_mb->pppi_motion_vectors[0][1][1],                     \                i_l_stride, i_c_stride, 8, 0, 0 );                      \                                                                        \        MOTION( p_mb, p_mb->p_backward, p_mb->ppi_field_select[1][1], 1,\                p_mb->pppi_motion_vectors[1][1][0],                     \                p_mb->pppi_motion_vectors[1][1][1],                     \                i_l_stride, i_c_stride, 8, 0, 0 );                      \    }                                                                   \} /* FRAMEFIELD */void vdec_MotionFrameField420( macroblock_t * p_mb ){    FRAMEFIELD( Motion420 )}void vdec_MotionFrameField422( macroblock_t * p_mb ){    //FRAMEFIELD( Motion422 )}void vdec_MotionFrameField444( macroblock_t * p_mb ){    //FRAMEFIELD( Motion444 )}/***************************************************************************** * vdec_MotionFrameDMVXXX?? : motion compensation for dmv motion type (frame) *****************************************************************************/#define FRAMEDMV( MOTION )                                              \{                                                                       \    /* This is necessarily a MOTION_FORWARD only macroblock, in a P     \     * picture. */                                                      \                                                                        \    /* predict top field from top field */                              \    MOTION( p_mb, p_mb->p_forward, 0, 0,                                \            p_mb->pppi_motion_vectors[0][0][0],                         \            p_mb->pppi_motion_vectors[0][0][1],                         \            /* XXX?? XXX?? >> 1 ? */                                        \            p_mb->i_l_stride << 1, p_mb->i_c_stride << 1, 8, 0, 0 );    \                                                                        \    /* predict and add to top field from bottom field */                \    MOTION( p_mb, p_mb->p_forward, 1, 0,                                \            p_mb->ppi_dmv[0][0], p_mb->ppi_dmv[0][1],                   \            p_mb->i_l_stride << 1, p_mb->i_c_stride << 1, 8, 0, 1 );    \                                                                        \    /* predict bottom field from bottom field */                        \    MOTION( p_mb, p_mb->p_forward, 1, 1,                                \            p_mb->pppi_motion_vectors[0][0][0],                         \            p_mb->pppi_motion_vectors[0][0][1],                         \            /* XXX?? XXX?? >> 1 ? */                                        \            p_mb->i_l_stride << 1, p_mb->i_c_stride << 1, 8, 0, 0 );    \                                                                        \    /* predict and add to bottom field from top field */                \    MOTION( p_mb, p_mb->p_forward, 1, 0,                                \            p_mb->ppi_dmv[1][0], p_mb->ppi_dmv[1][1],                   \            p_mb->i_l_stride << 1, p_mb->i_c_stride << 1, 8, 0, 1 );    \} /* FRAMEDMV */void vdec_MotionFrameDMV420( macroblock_t * p_mb ){    FRAMEDMV( Motion420 )}void vdec_MotionFrameDMV422( macroblock_t * p_mb ){    //FRAMEDMV( Motion422 )}void vdec_MotionFrameDMV444( macroblock_t * p_mb ){    //FRAMEDMV( Motion444 )}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -