| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved. | 2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 // your application. In general, an IVF file consists of a file header, | 21 // your application. In general, an IVF file consists of a file header, |
| 22 // followed by a variable number of frames. Each frame consists of a frame | 22 // followed by a variable number of frames. Each frame consists of a frame |
| 23 // header followed by a variable length payload. The length of the payload | 23 // header followed by a variable length payload. The length of the payload |
| 24 // is specified in the first four bytes of the frame header. The payload is | 24 // is specified in the first four bytes of the frame header. The payload is |
| 25 // the raw compressed data. | 25 // the raw compressed data. |
| 26 // | 26 // |
| 27 // Standard Includes | 27 // Standard Includes |
| 28 // ----------------- | 28 // ----------------- |
| 29 // For encoders, you only have to include `vpx_encoder.h` and then any | 29 // For encoders, you only have to include `vpx_encoder.h` and then any |
| 30 // header files for the specific codecs you use. In this case, we're using | 30 // header files for the specific codecs you use. In this case, we're using |
| 31 // vp8. The `VPX_CODEC_DISABLE_COMPAT` macro can be defined to ensure | 31 // vp8. |
| 32 // strict compliance with the latest SDK by disabling some backwards | |
| 33 // compatibility features. Defining this macro is encouraged. | |
| 34 // | 32 // |
| 35 // Getting The Default Configuration | 33 // Getting The Default Configuration |
| 36 // --------------------------------- | 34 // --------------------------------- |
| 37 // Encoders have the notion of "usage profiles." For example, an encoder | 35 // Encoders have the notion of "usage profiles." For example, an encoder |
| 38 // may want to publish default configurations for both a video | 36 // may want to publish default configurations for both a video |
| 39 // conferencing application and a best quality offline encoder. These | 37 // conferencing application and a best quality offline encoder. These |
| 40 // obviously have very different default settings. Consult the | 38 // obviously have very different default settings. Consult the |
| 41 // documentation for your codec to see if it provides any default | 39 // documentation for your codec to see if it provides any default |
| 42 // configurations. All codecs provide a default configuration, number 0, | 40 // configurations. All codecs provide a default configuration, number 0, |
| 43 // which is valid for material in the vacinity of QCIF/QVGA. | 41 // which is valid for material in the vacinity of QCIF/QVGA. |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 94 // ------------------------- | 92 // ------------------------- |
| 95 // Error resiliency is controlled by the g_error_resilient member of the | 93 // Error resiliency is controlled by the g_error_resilient member of the |
| 96 // configuration structure. Use the `decode_with_drops` example to decode with | 94 // configuration structure. Use the `decode_with_drops` example to decode with |
| 97 // frames 5-10 dropped. Compare the output for a file encoded with this example | 95 // frames 5-10 dropped. Compare the output for a file encoded with this example |
| 98 // versus one encoded with the `simple_encoder` example. | 96 // versus one encoded with the `simple_encoder` example. |
| 99 | 97 |
| 100 #include <stdio.h> | 98 #include <stdio.h> |
| 101 #include <stdlib.h> | 99 #include <stdlib.h> |
| 102 #include <string.h> | 100 #include <string.h> |
| 103 | 101 |
| 104 #define VPX_CODEC_DISABLE_COMPAT 1 | |
| 105 #include "vpx/vpx_encoder.h" | 102 #include "vpx/vpx_encoder.h" |
| 106 | 103 |
| 107 #include "./tools_common.h" | 104 #include "./tools_common.h" |
| 108 #include "./video_writer.h" | 105 #include "./video_writer.h" |
| 109 | 106 |
| 110 static const char *exec_name; | 107 static const char *exec_name; |
| 111 | 108 |
| 112 void usage_exit() { | 109 void usage_exit() { |
| 113 fprintf(stderr, | 110 fprintf(stderr, |
| 114 "Usage: %s <codec> <width> <height> <infile> <outfile> " | 111 "Usage: %s <codec> <width> <height> <infile> <outfile> " |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 250 printf("Processed %d frames.\n", frame_count); | 247 printf("Processed %d frames.\n", frame_count); |
| 251 | 248 |
| 252 vpx_img_free(&raw); | 249 vpx_img_free(&raw); |
| 253 if (vpx_codec_destroy(&codec)) | 250 if (vpx_codec_destroy(&codec)) |
| 254 die_codec(&codec, "Failed to destroy codec."); | 251 die_codec(&codec, "Failed to destroy codec."); |
| 255 | 252 |
| 256 vpx_video_writer_close(writer); | 253 vpx_video_writer_close(writer); |
| 257 | 254 |
| 258 return EXIT_SUCCESS; | 255 return EXIT_SUCCESS; |
| 259 } | 256 } |
| OLD | NEW |