1. A method of encoding a media stream, comprising: receiving a media stream into an encoder that includes a pipeline of multiple hardware stages for encoding; outputting an intermediate result from at least one of the hardware stages; reading the intermediate result into an encoding control module and processing the intermediate result to determine configuration instructions for a next hardware stage in the pipeline; and providing the determined configuration instructions to the next hardware stage in the pipelines; bypassing a hardware stage in the pipeline based, at least in part, on the intermediate results; wherein the multiple hardware stages are coupled in series and include at least a pre-processor hardware stage that determines a bit rate allocation designated to a media stream frame, a motion estimation hardware stage that analyzes motion occurring between frames, and an encoding hardware stage that performs entropy encoding to provide the encoded output stream.