Index: webrtc/tools/barcode_tools/yuv_cropper.py |
diff --git a/webrtc/tools/barcode_tools/yuv_cropper.py b/webrtc/tools/barcode_tools/yuv_cropper.py |
deleted file mode 100755 |
index 609f07dc9cc7ad90ec2d429167f92b53a782cf3a..0000000000000000000000000000000000000000 |
--- a/webrtc/tools/barcode_tools/yuv_cropper.py |
+++ /dev/null |
@@ -1,125 +0,0 @@ |
-#!/usr/bin/env python |
-# Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
-# |
-# Use of this source code is governed by a BSD-style license |
-# that can be found in the LICENSE file in the root of the source |
-# tree. An additional intellectual property rights grant can be found |
-# in the file PATENTS. All contributing project authors may |
-# be found in the AUTHORS file in the root of the source tree. |
- |
-import optparse |
-import os |
-import sys |
- |
- |
-def _CropOneFrame(yuv_file, output_file, component_sizes): |
- """Crops one frame. |
- |
- This function crops one frame going through all the YUV planes and cropping |
- respective amount of rows. |
- |
- Args: |
- yuv_file(file): The opened (for binary reading) YUV file. |
- output_file(file): The opened (for binary writing) file. |
- component_sizes(list of 3 3-ples): The list contains the sizes for all the |
- planes (Y, U, V) of the YUV file plus the crop_height scaled for every |
- plane. The sizes equal width, height and crop_height for the Y plane, |
- and are equal to width/2, height/2 and crop_height/2 for the U and V |
- planes. |
- Return: |
- (bool): True if there are more frames to crop, False otherwise. |
- """ |
- for comp_width, comp_height, comp_crop_height in component_sizes: |
- for row in range(comp_height): |
- # Read the plane data for this row. |
- yuv_plane = yuv_file.read(comp_width) |
- |
- # If the plane is empty, we have reached the end of the file. |
- if yuv_plane == "": |
- return False |
- |
- # Only write the plane data for the rows bigger than crop_height. |
- if row >= comp_crop_height: |
- output_file.write(yuv_plane) |
- return True |
- |
- |
-def CropFrames(yuv_file_name, output_file_name, width, height, crop_height): |
- """Crops rows of pixels from the top of the YUV frames. |
- |
- This function goes through all the frames in a video and crops the crop_height |
- top pixel rows of every frame. |
- |
- Args: |
- yuv_file_name(string): The name of the YUV file to be cropped. |
- output_file_name(string): The name of the output file where the result will |
- be written. |
- width(int): The width of the original YUV file. |
- height(int): The height of the original YUV file. |
- crop_height(int): The height (the number of pixel rows) to be cropped from |
- the frames. |
- """ |
- # Component sizes = [Y_sizes, U_sizes, V_sizes]. |
- component_sizes = [(width, height, crop_height), |
- (width/2, height/2, crop_height/2), |
- (width/2, height/2, crop_height/2)] |
- |
- yuv_file = open(yuv_file_name, 'rb') |
- output_file = open(output_file_name, 'wb') |
- |
- data_left = True |
- while data_left: |
- data_left = _CropOneFrame(yuv_file, output_file, component_sizes) |
- |
- yuv_file.close() |
- output_file.close() |
- |
- |
-def _ParseArgs(): |
- """Registers the command-line options.""" |
- usage = "usage: %prog [options]" |
- parser = optparse.OptionParser(usage=usage) |
- |
- parser.add_option('--width', type='int', |
- default=352, |
- help=('Width of the YUV file\'s frames. ' |
- 'Default: %default')) |
- parser.add_option('--height', type='int', default=288, |
- help=('Height of the YUV file\'s frames. ' |
- 'Default: %default')) |
- parser.add_option('--crop_height', type='int', default=32, |
- help=('How much of the top of the YUV file to crop. ' |
- 'Has to be module of 2. Default: %default')) |
- parser.add_option('--yuv_file', type='string', |
- help=('The YUV file to be cropped.')) |
- parser.add_option('--output_file', type='string', default='output.yuv', |
- help=('The output YUV file containing the cropped YUV. ' |
- 'Default: %default')) |
- options = parser.parse_args()[0] |
- if not options.yuv_file: |
- parser.error('yuv_file argument missing. Please specify input YUV file!') |
- return options |
- |
- |
-def main(): |
- """A tool to crop rows of pixels from the top part of a YUV file. |
- |
- A simple invocation will be: |
- ./yuv_cropper.py --width=640 --height=480 --crop_height=32 |
- --yuv_file=<path_and_name_of_yuv_file> |
- --output_yuv=<path and name_of_output_file> |
- """ |
- options = _ParseArgs() |
- |
- if os.path.getsize(options.yuv_file) == 0: |
- sys.stderr.write('Error: The YUV file you have passed has size 0. The ' |
- 'produced output will also have size 0.\n') |
- return -1 |
- |
- CropFrames(options.yuv_file, options.output_file, options.width, |
- options.height, options.crop_height) |
- return 0 |
- |
- |
-if __name__ == '__main__': |
- sys.exit(main()) |