@Override
 public void setFrameNumber(int frameNumber) {
   if (picture == null) {
     super.setFrameNumber(frameNumber);
   } else {
     picture.pts(frameNumber);
   }
 }
 @Override
 public void setTimestamp(long timestamp) {
   super.setTimestamp(timestamp);
   setFrameNumber((int) Math.round(timestamp * getFrameRate() / 1000000L));
 }
 public int setTimestampAndGetFrameNumber(long timestamp) {
   super.setTimestamp(timestamp);
   int i = (int) Math.round(timestamp * getFrameRate() / 1000000.0D);
   setFrameNumber(i);
   return i;
 }
 @Override
 protected void finalize() throws Throwable {
   super.finalize();
   release();
 }