Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1261)

Unified Diff: webrtc/tools/barcode_tools/yuv_cropper.py

Issue 2965593002: Move webrtc/{tools => rtc_tools} (Closed)
Patch Set: Adding back root changes Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/tools/barcode_tools/helper_functions.py ('k') | webrtc/tools/class_usage.sh » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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())
« no previous file with comments | « webrtc/tools/barcode_tools/helper_functions.py ('k') | webrtc/tools/class_usage.sh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698