Giter Site home page Giter Site logo

bavc / qctools Goto Github PK

View Code? Open in Web Editor NEW
301.0 42.0 41.0 31.72 MB

QCTools (Quality Control Tools for Video Preservation) is a free and open source software tool that helps users analyze and understand their digitized video files through use of audiovisual analytics and filtering. QCTools is funded by the National Endowment for the Humanities and the Knight Foundation, and is developed by the Bay Area Video Coalition.

Home Page: http://www.bavc.org/qctools

License: Other

HTML 0.67% Shell 1.51% QMake 2.20% C++ 93.95% C 0.41% NSIS 0.66% Batchfile 0.61%
video preservation quality-control

qctools's Introduction

qctools

Join the chat at https://gitter.im/bavc/qctools

QCTools (Quality Control Tools for Video Preservation) is a free and open source software tool that helps users analyze and understand their digitized video files through use of audiovisual analytics and filtering. QCTools is funded by the National Endowment for the Humanities and the Knight Foundation, and developed by the Bay Area Video Coalition.

Documentation on how to use QCTools is available within the application under the Help tab or online here.

general info

QCTools allows archivists, curators, preservationists and other moving image professionals to identify, filter, and assess all manner of video errors and anomalies. The tool is flexible, providing a variety of viewing options, as well the ability to create and export reports (gzip, or .gz files, formatted according to the ffprobe xml standard).

For more information about the project, or to download the latest Mac/Windows/Ubuntu release, please visit BAVC's QCTools homepage

An overview of QCTools and how to use it can be found here.

installation

via installers

Go to http://bavc.org/qctools or Releases and download QCTools for your operating system. Initiate the install by double-clicking the icon, and follow the steps. New releases of QCTools will be periodically available at the QCTools Project website.

via homebrew

Of if you have homebrew, get the latest release by running:

brew install qctools

development builds via daily builds

Grab one of the QCTools daily builds provided by MediaArea. These builds will reflect git-master and are not tied to any particular release.

getting started

Currently QCTools accepts a variety of video formats, including *.avi, *.mkv, *.mov, and *.mp4, as well as a diverse selection of codecs. By relying upon ffmpeg's libavcodec and libformat libraries, QCTools can support a wide variety of digital audiovisual formats.

graph descriptions

QCTools offers a variety of Graphing Options including: YUV Values, Temporal Outliers (TOUT), Vertical Line Repetitions (VREP), Broadcast Range (BRNG), Crop Width and Height (CropW and CropH), and Peak Signal to Noise Ratio (PSNRf) and Mean Square Error (MSEf) differences per frame.

playback filters

The QCTools preview window is intended as an analytical playback environment that allows the user to review video through multiple filters simultaneously. The playback window includes two viewing windows which may be set to different combinations of filters.

reading a qctools document

The QCTools document (built upon FFprobe's xml expression), is designed to be self-descriptive, storing analytical metadata about video and audio frames.

Incorporating a set of open source libraries developed under the ffmpeg project, the QCTools document offers metadata values derived from four evaluative filters: signalstats, cropdetect, psnr, and ebur128.

using qcli

QCTools files can also be generated via the command line with qcli. After installing it, you can run qcli -i [your-file-here] to generate a qctools report based on your file. By default, this file will be saved to the same directory and named after the file, e.g. test.qctools.xml.gz if your file is named test.mkv. This can easily be wrapped in a script to create many qctools files during the preservation process.

qcli can be installed via homebrew with:

brew install qcli

a/v artifact atlas

In conjunction with using QCTools, consider using the A/V Artifacts Atlas to gain further clarification and appropriate descriptive terminology for any anomalies or errors you might encounter in your video content. Users are invited to contribute unidentified errors they come across to the atlas.

contributing

Please read our contributing guidelines in this dedicated document. QCTools is released with a Contributor Code of Conduct, and by participating in this project, you agree to abide by its terms.

license

QCTools deliverable is licensed under a GPLv3 License. QCTools GUI part and FFmpeg statistics filter are licensed under the 3-Clause BSD license. This software uses libraries from the FFmpeg project under the GPLv3, Qt and Qwt libraries under the LGPLv2.1, OpenJPEG library under the 2-Clause BSD license. See our License page for more details.

qctools's People

Contributors

ablwr avatar bturkus avatar dericed avatar dlandes avatar elderorb avatar epiil avatar g-maxime avatar gitter-badger avatar ilovezfs avatar jeromemartinez avatar kieranjol avatar lbjohnson01 avatar libbyhopfauf avatar luni-4 avatar metacynicv2 avatar mfcc64 avatar retokromer avatar richardpl avatar slhck avatar utzig avatar uwerat avatar wildtv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

qctools's Issues

Y-scale label values disappear when zooming

Steps to reproduce:

  1. Open QCTools
  2. Load a video file with pre-saved .xml.gz data file
    The graphs now have proper Y-scale value labels on the left side
  3. Zoom in
    Even when you zoom back out now, the scale is only labeled at 0. All other numbers are gone.

Screenshots:

  1. Normal behavior: Y-scale properly labeled:
    qctools_0 6-graph_values_ok

  2. Abnormal behavior: Y-scales only contains the 0 value label:
    qctools_0 6-graph_values_missing

QCtools crashes when I pull in Mp4s

Hello!

I am running QCtools 6.0 on my Macbook Pro and every time I pull an mp4 in QCtools crashes. .mov files work fine... Any ideas?

screen shot 2014-10-15 at 10 22 05 am

Thanks!

Playback filters

I'm using 0.6.2 for Mac and I can't figure out where the playback filters are. The graph view has a video playback panel along the bottom. Just don't know how to change it to vectorscope, waveform, etc.

Document export options such as "To .qctools.xml.gz" and "To sidecar .qctools.xml.gz"?

I've tried both export options:

  1. "To sidecar .qctools.xml.gz"
  2. "To sidecar .qctools.xml.gz (All files)"

I don't see any difference between the generated files. Both only contain the .qctools.xml.

Unfortunately, there's no search in the help dialog and I couldn't find what "sidecar" actually meant.
However, I think to remember from TATE/London, that a sidecar file should contain more than just the XML. Something like the thumbnails, right?

add threading support to signalstats filter

I've noticed that when loading a FFV1 file, my CPU cores are not fully used.
It looks though as if at least 2 cores (or 1 core+HT) was used, so it seems to using more than one thread already?

QC Tools Crashes

Running version .5 and .6 on macbook pro with 10.6.8 , app crashes. Running .4 runs OK

maurice

Process: QCTools [463]
Path: /Volumes/QCTools/QCTools.app/Contents/MacOS/QCTools
Identifier: net.mediaarea.QCTools
Version: ??? (???)
Code Type: X86-64 (Native)
Parent Process: launchd [99]

Date/Time: 2014-11-29 10:10:10.968 -0500
OS Version: Mac OS X 10.6.8 (10K549)
Report Version: 6

Interval Since Last Report: 658063 sec
Crashes Since Last Report: 14
Per-App Crashes Since Last Report: 8
Anonymous UUID: EDDCA830-728D-41FE-B796-F7143B2D68C5

Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000002, 0x0000000000000000
Crashed Thread: 0

Dyld Error Message:
Library not loaded: /System/Library/Frameworks/AVFoundation.framework/Versions/A/AVFoundation
Referenced from: /Volumes/QCTools/QCTools.app/Contents/MacOS/../Resources/libavdevice.55.dylib
Reason: image not found

Binary Images:
0x7fff5fc00000 - 0x7fff5fc3be0f dyld 132.1 (???) <29DECB19-0193-2575-D838-CF743F0400B2> /usr/lib/dyld

Model: MacBookPro8,2, BootROM MBP81.0047.B27, 4 processors, Intel Core i7, 2.4 GHz, 4 GB, SMC 1.69f3
Graphics: AMD Radeon HD 6770M, AMD Radeon HD 6770M, PCIe, 1024 MB
Graphics: Intel HD Graphics 3000, Intel HD Graphics 3000, Built-In, 384 MB
Memory Module: global_name
AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0xD6), Broadcom BCM43xx 1.0 5.100.198.104.5)
Bluetooth: Version 2.4.5f3, 2 service, 19 devices, 1 incoming serial ports
Network Service: AirPort, AirPort, en1
Serial ATA Device: APPLE HDD HTS547575A9E384, 698.64 GB
Serial ATA Device: HL-DT-ST DVDRW GS31N
USB Device: FaceTime HD Camera (Built-in), 0x05ac (Apple Inc.), 0x8509, 0xfa200000 / 3
USB Device: Hub, 0x0424 (SMSC), 0x2513, 0xfa100000 / 2
USB Device: BRCM2070 Hub, 0x0a5c (Broadcom Corp.), 0x4500, 0xfa110000 / 5
USB Device: Bluetooth USB Host Controller, 0x05ac (Apple Inc.), 0x821a, 0xfa113000 / 8
USB Device: Apple Internal Keyboard / Trackpad, 0x05ac (Apple Inc.), 0x0252, 0xfa120000 / 4
USB Device: Hub, 0x0424 (SMSC), 0x2513, 0xfd100000 / 2
USB Device: Mass Storage, 0x058f (Alcor Micro, Corp.), 0x6387, 0xfd120000 / 4
USB Device: IR Receiver, 0x05ac (Apple Inc.), 0x8242, 0xfd110000 / 3
FireWire Device: LaCie Hard Drive FireWire+, LaCie Group SA, Up to 400 Mb/sec

Vertical waveform has field order reversed / non-intuitive

It seems that the order in which the fields are represented in a field-split waveform when in vertical mode, is reversed.

In horizontal (default) mode it's:

  • first = top
  • second = bottom

Which correlates perfectly with how the normal video is shown with field-split.

When enabling the "vertical" option for the Waveform filter, it's the other way around:

  • first = bottom
  • second = top

I found this a bit irritating. See screenshot:
qctools_0 6-vertical_waveform_field_swap

Wishlist: Graph presets for different source media types

Different source media show different artefacts by having different abnormalities in different graphs.
For example, Digibeta dropouts can be seen in the BRNG graph, whereas that graph is quite irrelevant for other sources.

Therefore, if one could define presets which graphs to display/hide, it would make it very easy and inuitive for (especially new) users, getting the information needed to do the best analysis.

For example, those defined presets could be offered as dropdown-list (or something else).

UX: Capture view

With budget and time constraints in consideration, I submit this “Minimum Viable Product” for the image capture component of QCTools. Here are two options. One of them retains all the qualities of the filter playback so users don’t have to think about a new set, and one of them is more similar to other capture software (Final Cut Pro, etc). The recording feature can run until manually stopped or until end of tape. Future iterations could consider ways to incorporate a batch digitization workflow.

capture
capture2

Wishlist: Different frame/time stepsize when moving in video

In order to conveniently and quickly move around in the video, our ingest operator has pointed out that it is desirable to have the ability to quickly jump faster than frame-wise.

For example, in Virtualdub, there are the following step sizes for movement:

  • frame [left/right]
  • 50 frames (=1 sec. PAL) [Shift left/right]
  • 1 minute [Ctrl left/right]
  • Previous/next I-frame
  • Previous/next dropped/inserted frame [<>] (excellent for verifying proper capture and/or born-digital material)

Wishlist: Open QCTools with commandline arguments which graphs to render

In order to integrate QCTools in semi-automated workflows, it would be great to have the ability to start it with a pre-selection of which graphs to display.

This would be very helpful to start QCTools with already the right graphs for the analysed source media type. Additionally to being able to tell which graphs to open by commandline, doing so by starting it with a graph-preset (see issue #42) would be incredibly nice :)

Performance: Playback not as smooth as it could be

Nagging as I am, I wanted to note that the playback performance of the filter window is not as good as the hardware would allow. Especially visible with FFV1.

For example, on a computer which is perfectly capable of playing back FFV1 SD-material with other applications (VLC, ffplay, shotcut, kdenlive, etc), QCTools plays slower than realtime.

Real-time playback in video analysis window?

It appears as though video playback at 1x in the video analysis window is considerably slower than the native fps of the file (i.e. 29.97). I don’t recall mention of real-time playback limitations in the documentation, but I'm also not convinced many users would desire/require full speed playback. In case it is relevant, test file metadata is below.


285 1 General General 0 1 2 1 YUV YUV 2vuy English PCM / PCM PCM / PCM PCM / PCM English / English QuickTime TC QuickTime TC English /Volumes/G-RAID 3/M1585_Asawa/Asawa_box_50/qd386kr3256/pm/qd386kr3256_pm.mov /Volumes/G-RAID 3/M1585_Asawa/Asawa_box_50/qd386kr3256/pm qd386kr3256_pm mov MPEG-4 MPEG-4 mp4 m4v m4a m4b m4p 3gpp 3gp 3gpp2 3g2 k3g jpm jpx mqv ismv isma f4v MPEG-4 QuickTime video/mp4 qt http://www.apple.com/quicktime/download/standalone.html MPEG-4 MPEG-4 mp4 m4v m4a m4b m4p 3gpp 3gp 3gpp2 3g2 k3g jpm jpx mqv ismv isma f4v 72662766052 67.7 GiB 68 GiB 68 GiB 67.7 GiB 67.67 GiB 3417417 56mn 57s 56mn 57s 417ms 56mn 57s 00:56:57.417 170099853 170 Mbps 937030 915 KiB (0%) 915 KiB 915 KiB 915 KiB 915.1 KiB 915 KiB (0%) 0.00001 936994 72661829058 0 Yes UTC 2014-09-17 20:09:16 UTC 2014-09-17 20:38:16 UTC 2014-09-17 20:38:16 2014-09-17 13:38:16 Apple QuickTime 7.7.1 Apple QuickTime 7.7.1 Apple QuickTime 7.7.1 (Binary) 277 1 Video Video 0 3 5 5 YUV YUV 2vuy 2vuy 2vuy 2vuy 3417417 56mn 57s 56mn 57s 417ms 56mn 57s 00:56:57.417 CBR Constant 167793638 168 Mbps 720 720 pixels 486 486 pixels 1.000 1.481 3:2 0.000 CFR Constant 29.970 29.970 fps 102420 NTSC YUV 4:2:2 Lossless Lossless 16.000 0 00:00:00.000 DropFrame=Yes / 24HourMax=Yes / IsVisual=No Yes Container Container 71677612800 66.8 GiB (99%) 67 GiB 67 GiB 66.8 GiB 66.75 GiB 66.8 GiB (99%) 0.98644 en English English en eng en UTC 2014-09-10 23:50:00 UTC 2014-09-17 20:38:16 Yes BT.601 NTSC BT.601 222 2 Audio Audio 0 1 1 3 3 PCM PCM Big / Unsigned Big Unsigned in24 http://www.apple.com/quicktime/download/standalone.html PCM PCM PCM http://www.apple.com/quicktime/download/standalone.html in24 Big / Unsigned Big Unsigned 3417417 56mn 57s 56mn 57s 417ms 56mn 57s 00:56:57.417 CBR Constant 1152000 1 152 Kbps 1 1 channel 48000 48.0 KHz 164036016 24 24 bits 24 24 bits 0 00:00:00.000 Yes Container Container 0 0 492108111 469 MiB (1%) 469 MiB 469 MiB 469 MiB 469.3 MiB 469 MiB (1%) 0.00677 en English English en eng en UTC 2014-09-10 17:47:00 UTC 2014-09-17 20:38:16 222 2 Audio Audio 1 2 2 4 4 PCM PCM Big / Unsigned Big Unsigned in24 http://www.apple.com/quicktime/download/standalone.html PCM PCM PCM http://www.apple.com/quicktime/download/standalone.html in24 Big / Unsigned Big Unsigned 3417417 56mn 57s 56mn 57s 417ms 56mn 57s 00:56:57.417 CBR Constant 1152000 1 152 Kbps 1 1 channel 48000 48.0 KHz 164036016 24 24 bits 24 24 bits 0 00:00:00.000 Yes Container Container 0 0 492108111 469 MiB (1%) 469 MiB 469 MiB 469 MiB 469.3 MiB 469 MiB (1%) 0.00677 en English English en eng en UTC 2014-09-10 17:47:00 UTC 2014-09-17 20:38:16 60 1 Other Other 0 0 2 2 Time code QuickTime TC QuickTime TC 3417417 56mn 57s 56mn 57s 417ms 56mn 57s 00:56:57.417 00:00:00;00 Striped <Title>M1585_b50_02</Title> en English English en eng en UTC 2014-09-10 17:47:00 UTC 2014-09-17 20:38:16

UX: Boolean view

Moving to a boolean-based view as the first/default view would go a long way in making QCTools easier to use for amateur users. A boolean view would require a range to be set that is considered “normal” for the assessment and trigger a block of red if the video at any time goes beyond that threshold.

To satisfy advanced users, I propose the ability to click on a boolean field to expand into a graph mode with a key for graph chart meanings (and hover-over number values).

main clean

Position of cursor in graph not updated, when moving in preview window

In order to make it easier to analyze the video and correlate the visual information with the graph (=good to learn and get a better feeling how to "read the lines"), it would be great if the purple position cursor in the graph would synchronize it's position with the preview window.

The preview thumbnails at the bottom already do that.

Zooming in with more than the default graphs, shifts display offset

I've opened a 10-minute file with a pre-saved .xml.gz.
Then I've enabled e.g. MSEf and zoomed in: The MSEf position where the graph is drawn was shifted to the left by a few pixels.

I've tried again with all filters enabled to see if any others are affected: Yes, they are! :(
qctools_0 6-graph_shifted

Steps to reproduce:

  1. Open QCTools
  2. Open a videofile with pre-saved .xml.gz data file.
  3. Enable all available graphs
  4. Zoom in

Some graphs will now be drawn a bit too far left, others too far right (see screenshot).
(Ubuntu 12.04 amd64, QCTools v0.6)

Wishlist: Reset button for filter parameters

It is great that the filters remember their settings/parameters, but it would therefore be great to have some way of resetting the values to their default. Per filter, if possible.

Vectorscope / image values change with window size adjustment

Here's an odd one. Vectorscope (in split field mode) will change certain values (mostly the transients) when the power window is re-sized. These values also change when brightness is increased/decreased. I'm attaching three screen shots, all on the same frame, in various window sizes. You're looking for the change in values on the lower field on the vectorscope.

screen shot 2014-11-12 at 10 59 52 pm

screen shot 2014-11-12 at 10 59 39 pm

screen shot 2014-11-12 at 10 59 24 pm

Wishlist: Option to force a "1-pixel=1-frame" horizontal zoom for graph

Analogue material errors often manifest themselves in a single field/frame.
If 1 horizontal pixel refers to exactly 1 frame, an operator can visually distinguish between peaks whether they are 1 pixel width or more (even very small ones, like 3-4 pixels height).

This visual clue is lost, when the zoom level is "too relative" to the duration of the analyzed video. Especially, since in a close-up zoom, graph peaks are interpolated, therefore masking their actual duration.

It would be great to have a 3rd zoom button between "zoom in" and "zoom out", for example something like "zoom 1:1".

UX: Ability to toggle mini-display

I suggest replacing the current image playback that runs across the bottom of the screen with a small window that can be open or closed based on the user’s preferences. This is helpful to users that are using QCTools on a small screen but still want to see a thumbnail-sized video playback without having to give up too much screen real estate. Users with larger screens or multiple screens can access the larger video playback by opening the filter view mode and adjusting it to fit their screen or screens.

main toggle open

Grabbing the application window

In moving/dragging the QCTools application window, it only works for me if the window is grabbed in the vertical height area of the ‘QCTools’ text across the top of the window. If I try grabbing the window directly above the text ‘Processed’ (in list view), for example, it doesn’t work.

Wishlist: Option to force a certain zoom in the preview window

Our QC experience in the last years has shown that it is very preferrable to not scale the video, but force it to (a) to a fixed zoom level (100%, no scaling at all by default), and (b) the ability to change the aspect ratio of the preview, too.

In shotcut, this feature was kindly added upon our request and it turned out that the following options are sufficient:

  • 100% (no zoom)
  • 150%
  • 200%
  • Scale to fit

Wishlist: Re-arrange graph order

Some artefacts are easier to find if certain graphs are displayed directly below each other.
For example, one might want TOUT in correlation with cuts (=Diffs) to find VHS errors.
Or Diffs and MSEF to find unclean cuts (field instead of frame).

If the user could drag/drop a graph to reposition it, one could arrange the graphs for best viewability per source media type.

Wishlist: Disable Export until data gathering is finished

I've just noticed that one can export the qctools.xml data already while the data for the graph is still being gathered.

The resulting .xml.gz only contains the fraction gathered until then, and therefore when re-opening the videofile later on, the timeline in the graph window only refers to the short fraction, whereas the timeline in the previous window refers to the full length, but one can only play the video range available in the graph.

Wishlist: Keyboard shortcuts to move between main timeline and power/filter window

One persnickety point about the UX is that (other than using Command + ~), one can't seamlessly move between the timeline and power/filter window. It seems intuitive to have the power/filter window pushed to the forefront of the screen when a user clicks on a thumbnail in the timeline. This happens the first time the power/filter window is opened, but never again.

Related to this request, here's an ULTIMATE WISH REQUEST: clicking on a specific timeline within the main window will bring up the power/filter window with said filter automatically in place. Eg., clicking on a point in the TOUT timeline will produce the power/filter window with the TOUT filter automatically applied.

Wishlist: Vertical zoom in graph

In our current analysis tool (shotdetect), the graphs resolution is fixed.
We first thought of this as a downside, but it has a positive effect for getting a better feeling when reading the graph:
Since the height of the graph's peaks does not scale, the operator gets a feeling for the "severity" of a peak, as well as some "artefacts" issue only very small peaks in some graphs, which is also a valuable visual clue.

For example, in a conference video, there are often flashes from people taking fotos.

Additionally, it would also be good if one could manually zoom in/out vertically:
I've seen cases with QCTools where certain artefacts were overlooked already if one other graph value was way higher, therefore making the other peaks less visible (similar like the graph of a silent audio recording with a single click/pop in it).

Cosmetics: Left-align graph labels, instead of centering them

Currently, the labels which data is displayed in a graph are center-aligned. When displaying multiple (e.g. all) graphs, the right side of the GUI window seems shuffled and chaotic.

It might be better to left-align them instead?

See screenshot:
qctools_0 6-graph_shifted

The white text in the graph is hard to read

The white text next to the mouse cursor in the graph is very hard to read.

In our system, we have the position/value display at a fixed position in the UI. This works very well, too.
If keeping the text next to the mouse cursor, maybe increasing the fontsize/boldness might also improve readability?

Making ffmpeg decoding report accessible to user (was: provide option for decoding hard timeout (was: Reporting gross decode failures))

http://chris.improbable.org/experiments/browser/video/waters_of_destiny.mp4 is malformed. It plays back despite this using the native Windows or OS X APIs but most other software chokes (see http://chris.improbable.org/experiments/browser/video/waters_of_destiny.html).

I was hoping that QCTools could be used to reliably catch problems like this as early as possible in the process. When processing that video, QCTools 0.5 hangs on frame 9797:

screenshot 2014-09-30 11 17 35

This may be an argument for a hard timeout as it's been chewing 120% CPU for around 20 minutes on the same frame. I've saved a sample here: https://gist.github.com/0703fc6af3623de1d265

The good news is that despite this, the glitch shows up rather prominently in the graphs so it's easy to discover – the decoding first fails at frame 1337 and since it isn't quietly ignored like e.g QuickTime the lack of thumbnails and the huge diff make it easy to localize:

screenshot 2014-09-30 11 12 58

When clicking the "zoom in" button an insane number of times, qctools crashes

I'm sorry, but for the sake of completeness I felt compelled to try it:
I pressed the "zoom in" button beyond any reasonable zoom level - and continued.

After a few seconds, qctools froze - and then crashed.
QCTools 0.6.0-1 (Xubuntu 12.04 amd64)

If I could tag issues, I'd assign this one to "nice to know" :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.