From: Thomas D. <tj...@us...> - 2008-06-19 10:33:28
|
Update of /cvsroot/dirac/compress/libdirac_decoder In directory sc8-pr-cvs12.sourceforge.net:/tmp/cvs-serv2340/libdirac_decoder Modified Files: dirac_parser.cpp picture_decompress.cpp seq_decompress.cpp comp_decompress.h Log Message: Fixes due to changes in PictureBuffer and Picture classes. Index: seq_decompress.cpp =================================================================== RCS file: /cvsroot/dirac/compress/libdirac_decoder/seq_decompress.cpp,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** seq_decompress.cpp 2 May 2008 06:05:04 -0000 1.23 --- seq_decompress.cpp 19 Jun 2008 10:33:24 -0000 1.24 *************** *** 115,119 **** m_pbuffer->GetPicture(m_show_pnum-1).GetPparams().PicSort().IsNonRef() ) { ! m_pbuffer->Clean(m_show_pnum-1); if ( m_decparams.Verbose() ) std::cout<<(m_show_pnum-1)<<" "; --- 115,119 ---- m_pbuffer->GetPicture(m_show_pnum-1).GetPparams().PicSort().IsNonRef() ) { ! m_pbuffer->Remove(m_show_pnum-1); if ( m_decparams.Verbose() ) std::cout<<(m_show_pnum-1)<<" "; Index: dirac_parser.cpp =================================================================== RCS file: /cvsroot/dirac/compress/libdirac_decoder/dirac_parser.cpp,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** dirac_parser.cpp 2 May 2008 06:05:04 -0000 1.21 --- dirac_parser.cpp 19 Jun 2008 10:33:24 -0000 1.22 *************** *** 306,318 **** if (!parser->GetDecoderParams().FieldCoding()) { ! set_frame_component (my_picture->Ydata(), Y_COMP, decoder); ! set_frame_component (my_picture->Udata(), U_COMP, decoder); ! set_frame_component (my_picture->Vdata(), V_COMP, decoder); } else { ! set_field_component (my_picture->Ydata(), Y_COMP, decoder, pic_num); ! set_field_component (my_picture->Udata(), U_COMP, decoder, pic_num); ! set_field_component (my_picture->Vdata(), V_COMP, decoder, pic_num); } } --- 306,318 ---- if (!parser->GetDecoderParams().FieldCoding()) { ! set_frame_component (my_picture->Data(Y_COMP), Y_COMP, decoder); ! set_frame_component (my_picture->Data(U_COMP), U_COMP, decoder); ! set_frame_component (my_picture->Data(V_COMP), V_COMP, decoder); } else { ! set_field_component (my_picture->Data(Y_COMP), Y_COMP, decoder, pic_num); ! set_field_component (my_picture->Data(U_COMP), U_COMP, decoder, pic_num); ! set_field_component (my_picture->Data(V_COMP), V_COMP, decoder, pic_num); } } Index: picture_decompress.cpp =================================================================== RCS file: /cvsroot/dirac/compress/libdirac_decoder/picture_decompress.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** picture_decompress.cpp 27 May 2008 01:29:53 -0000 1.3 --- picture_decompress.cpp 19 Jun 2008 10:33:24 -0000 1.4 *************** *** 175,183 **** my_picture.Fill(0); ! if ( psort.IsInter() ) //motion compensate to add the data back in if we don't have an I picture ! MotionCompensator::CompensatePicture( m_decparams , ADD , ! my_buffer , m_pparams.PictureNum() , ! *(mv_data.get()) ); my_picture.Clip(); --- 175,195 ---- my_picture.Fill(0); ! if ( psort.IsInter() ){ ! Picture* my_pic = &my_buffer.GetPicture( m_pparams.PictureNum() ); ! ! const std::vector<int>& refs = m_pparams.Refs(); ! Picture* ref_pics[2]; ! ! ref_pics[0] = &my_buffer.GetPicture( refs[0] ); ! if (refs.size()>1) ! ref_pics[1] = &my_buffer.GetPicture( refs[1] ); ! else ! ref_pics[1] = ref_pics[0]; ! //motion compensate to add the data back in if we don't have an I picture ! MotionCompensator::CompensatePicture( m_decparams , ADD , *(mv_data.get()) , ! my_pic, ref_pics ); ! } ! my_picture.Clip(); *************** *** 208,212 **** if ( retd_pnum >= 0 && my_buffer.IsPictureAvail(retd_pnum) && my_buffer.GetPicture(retd_pnum).GetPparams().PicSort().IsRef() ) { ! my_buffer.Clean(retd_pnum); if ( m_decparams.Verbose() ) std::cout<<retd_pnum<<" "; --- 220,224 ---- if ( retd_pnum >= 0 && my_buffer.IsPictureAvail(retd_pnum) && my_buffer.GetPicture(retd_pnum).GetPparams().PicSort().IsRef() ) { ! my_buffer.Remove(retd_pnum); if ( m_decparams.Verbose() ) std::cout<<retd_pnum<<" "; *************** *** 220,232 **** // Calculate the number of macro blocks ! int xnum_mb = m_decparams.Xl()/(4 * m_decparams.LumaBParams(2).Xbsep()); ! ! int ynum_mb = m_decparams.Yl()/(4 * m_decparams.LumaBParams(2).Ybsep()); ! if ( 4* xnum_mb * m_decparams.LumaBParams(2).Xbsep() < m_decparams.Xl() ) ! ++xnum_mb; - if ( 4* ynum_mb * m_decparams.LumaBParams(2).Ybsep() < m_decparams.Yl() ) - ++ynum_mb; m_decparams.SetXNumMB(xnum_mb); --- 232,241 ---- // Calculate the number of macro blocks ! int xnum_mb = (m_decparams.Xl()+m_decparams.LumaBParams(0).Xbsep()-1)/ ! m_decparams.LumaBParams(0).Xbsep(); ! int ynum_mb = (m_decparams.Yl()+m_decparams.LumaBParams(0).Ybsep()-1)/ ! m_decparams.LumaBParams(0).Ybsep(); m_decparams.SetXNumMB(xnum_mb); Index: comp_decompress.h =================================================================== RCS file: /cvsroot/dirac/compress/libdirac_decoder/comp_decompress.h,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** comp_decompress.h 7 May 2008 05:47:00 -0000 1.13 --- comp_decompress.h 19 Jun 2008 10:33:24 -0000 1.14 *************** *** 71,77 **** Decompress a PicArray containing a picture component (Y, U, or V). ! \param p_component_byteio Bytestream of component data ! \param coeff_data contains the component data to be decompressed ! \param bands the set of all subbands */ void Decompress(ComponentByteIO *p_component_byteio, --- 71,77 ---- Decompress a PicArray containing a picture component (Y, U, or V). ! \param p_component_byteio Bytestream of component data ! \param coeff_data contains the component data to be decompressed ! \param bands the subband metadata */ void Decompress(ComponentByteIO *p_component_byteio, |