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

Side by Side Diff: source/libvpx/vpx/svc_context.h

Issue 111463005: libvpx: Pull from upstream (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/libvpx/
Patch Set: Created 7 years 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « source/libvpx/vpx/src/vpx_decoder.c ('k') | source/libvpx/vpx/vp8cx.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 /*
2 * Copyright (c) 2013 The WebM project authors. All Rights Reserved.
3 *
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
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11 /**
12 * SvcContext - input parameters and state to encode a multi-layered
13 * spatial SVC frame
14 */
15
16 #ifndef VPX_SVC_CONTEXT_H_
17 #define VPX_SVC_CONTEXT_H_
18
19 #include "vpx/vp8cx.h"
20 #include "vpx/vpx_encoder.h"
21
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25
26 typedef enum SVC_ENCODING_MODE {
27 INTER_LAYER_PREDICTION_I,
28 ALT_INTER_LAYER_PREDICTION_IP,
29 INTER_LAYER_PREDICTION_IP,
30 USE_GOLDEN_FRAME
31 } SVC_ENCODING_MODE;
32
33 typedef enum SVC_LOG_LEVEL {
34 SVC_LOG_ERROR,
35 SVC_LOG_INFO,
36 SVC_LOG_DEBUG
37 } SVC_LOG_LEVEL;
38
39 typedef struct {
40 // public interface to svc_command options
41 int spatial_layers; // number of layers
42 SVC_ENCODING_MODE encoding_mode; // svc encoding strategy
43 SVC_LOG_LEVEL log_level; // amount of information to display
44 int log_print; // when set, printf log messages instead of returning the
45 // message with svc_get_message
46
47 // private storage for vpx_svc_encode
48 void *internal;
49 } SvcContext;
50
51 /**
52 * Set SVC options
53 * options are supplied as a single string separated by spaces
54 * Format: encoding-mode=<i|ip|alt-ip|gf>
55 * layers=<layer_count>
56 * scaling-factors=<n1>/<d1>,<n2>/<d2>,...
57 * quantizers=<q1>,<q2>,...
58 */
59 vpx_codec_err_t vpx_svc_set_options(SvcContext *svc_ctx, const char *options);
60
61 /**
62 * Set SVC quantizer values
63 * values comma separated, ordered from lowest resolution to highest
64 * e.g., "60,53,39,33,27"
65 */
66 vpx_codec_err_t vpx_svc_set_quantizers(SvcContext *svc_ctx,
67 const char *quantizer_values);
68
69 /**
70 * Set SVC scale factors
71 * values comma separated, ordered from lowest resolution to highest
72 * e.g., "4/16,5/16,7/16,11/16,16/16"
73 */
74 vpx_codec_err_t vpx_svc_set_scale_factors(SvcContext *svc_ctx,
75 const char *scale_factors);
76
77 /**
78 * initialize SVC encoding
79 */
80 vpx_codec_err_t vpx_svc_init(SvcContext *svc_ctx, vpx_codec_ctx_t *codec_ctx,
81 vpx_codec_iface_t *iface,
82 vpx_codec_enc_cfg_t *cfg);
83 /**
84 * encode a frame of video with multiple layers
85 */
86 vpx_codec_err_t vpx_svc_encode(SvcContext *svc_ctx, vpx_codec_ctx_t *codec_ctx,
87 struct vpx_image *rawimg, vpx_codec_pts_t pts,
88 int64_t duration, int deadline);
89
90 /**
91 * finished with svc encoding, release allocated resources
92 */
93 void vpx_svc_release(SvcContext *svc_ctx);
94
95 /**
96 * dump accumulated statistics and reset accumulated values
97 */
98 const char *vpx_svc_dump_statistics(SvcContext *svc_ctx);
99
100 /**
101 * get status message from previous encode
102 */
103 const char *vpx_svc_get_message(const SvcContext *svc_ctx);
104
105 /**
106 * return size of encoded data to be returned by vpx_svc_get_buffer
107 */
108 size_t vpx_svc_get_frame_size(const SvcContext *svc_ctx);
109
110 /**
111 * return buffer with encoded data
112 */
113 void *vpx_svc_get_buffer(const SvcContext *svc_ctx);
114
115 /**
116 * return spatial resolution of the specified layer
117 */
118 vpx_codec_err_t vpx_svc_get_layer_resolution(const SvcContext *svc_ctx,
119 int layer,
120 unsigned int *width,
121 unsigned int *height);
122 /**
123 * return number of frames that have been encoded
124 */
125 int vpx_svc_get_encode_frame_count(const SvcContext *svc_ctx);
126
127 /**
128 * return 1 if last encoded frame was a keyframe
129 */
130 int vpx_svc_is_keyframe(const SvcContext *svc_ctx);
131
132 /**
133 * force the next frame to be a keyframe
134 */
135 void vpx_svc_set_keyframe(SvcContext *svc_ctx);
136
137 #ifdef __cplusplus
138 } // extern "C"
139 #endif
140
141 #endif /* VPX_SVC_CONTEXT_H_ */
OLDNEW
« no previous file with comments | « source/libvpx/vpx/src/vpx_decoder.c ('k') | source/libvpx/vpx/vp8cx.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698