def retime_by_framerate_plus_reference(have, want, reference)
      ratio = want.fps.to_f / have.fps.to_f
      have.references[reference][:timecode] *= ratio
      have.subtitles.each do |subtitle|
        subtitle[:start] *= ratio
        subtitle[:end] *= ratio
      end

      amount = want.references[reference][:timecode] -
               have.references[reference][:timecode]

      have.subtitles.each do |subtitle|
        subtitle[:start] += amount
        subtitle[:end] += amount
      end
    end
def retime_by_framerate_plus_reference(have, want, reference)
      ratio = want.fps.to_f / have.fps.to_f
      have.references[reference][:timecode] *= ratio
      have.subtitles.each do |subtitle|
        subtitle[:start] *= ratio
        subtitle[:end] *= ratio
      end

      amount = want.references[reference][:timecode] -
               have.references[reference][:timecode]

      have.subtitles.each do |subtitle|
        subtitle[:start] += amount
        subtitle[:end] += amount
      end
    end
Rescales timecodes based on two differing framerates and then applies a
 simple timeshift to the subtitles we {Have}.

 @param have [Have] the subtitles we {Have}
 @param want [Want] the subtitles we {Want}
 @param reference [Symbol, String] the key of the reference