Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Xiph.Org
aom-rav1e
Commits
50cbe24c
Commit
50cbe24c
authored
Jan 21, 2016
by
Jim Bankoski
Browse files
remove more vp8 and vp9 only code
Change-Id: I774bc9e371bf77137d411cb906c59807a4c73ed7
parent
1f303c27
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
examples.mk
View file @
50cbe24c
...
...
@@ -97,22 +97,6 @@ ifeq ($(CONFIG_WEBM_IO),yes)
endif
vpxenc.GUID
=
548DEC74-7A15-4B2B-AFC3-AA102E7C25C1
vpxenc.DESCRIPTION
=
Full featured encoder
ifeq
($(CONFIG_SPATIAL_SVC),yes)
EXAMPLES-$(CONFIG_VP9_ENCODER)
+=
vp9_spatial_svc_encoder.c
vp9_spatial_svc_encoder.SRCS
+=
args.c args.h
vp9_spatial_svc_encoder.SRCS
+=
ivfenc.c ivfenc.h
vp9_spatial_svc_encoder.SRCS
+=
tools_common.c tools_common.h
vp9_spatial_svc_encoder.SRCS
+=
video_common.h
vp9_spatial_svc_encoder.SRCS
+=
video_writer.h video_writer.c
vp9_spatial_svc_encoder.SRCS
+=
vpx_ports/msvc.h
vp9_spatial_svc_encoder.SRCS
+=
vpxstats.c vpxstats.h
vp9_spatial_svc_encoder.GUID
=
4A38598D-627D-4505-9C7B-D4020C84100D
vp9_spatial_svc_encoder.DESCRIPTION
=
VP9 Spatial SVC Encoder
endif
ifneq
($(CONFIG_SHARED),yes)
EXAMPLES-$(CONFIG_VP9_ENCODER)
+=
resize_util.c
endif
EXAMPLES-$(CONFIG_ENCODERS)
+=
vpx_temporal_svc_encoder.c
vpx_temporal_svc_encoder.SRCS
+=
ivfenc.c ivfenc.h
...
...
@@ -161,14 +145,6 @@ simple_encoder.SRCS += video_writer.h video_writer.c
simple_encoder.SRCS
+=
vpx_ports/msvc.h
simple_encoder.GUID
=
4607D299-8A71-4D2C-9B1D-071899B6FBFD
simple_encoder.DESCRIPTION
=
Simplified encoder loop
EXAMPLES-$(CONFIG_VP9_ENCODER)
+=
vp9_lossless_encoder.c
vp9_lossless_encoder.SRCS
+=
ivfenc.h ivfenc.c
vp9_lossless_encoder.SRCS
+=
tools_common.h tools_common.c
vp9_lossless_encoder.SRCS
+=
video_common.h
vp9_lossless_encoder.SRCS
+=
video_writer.h video_writer.c
vp9_lossless_encoder.SRCS
+=
vpx_ports/msvc.h
vp9_lossless_encoder.GUID
=
B63C7C88-5348-46DC-A5A6-CC151EF93366
vp9_lossless_encoder.DESCRIPTION
=
Simplified lossless VP9 encoder
EXAMPLES-$(CONFIG_ENCODERS)
+=
twopass_encoder.c
twopass_encoder.SRCS
+=
ivfenc.h ivfenc.c
twopass_encoder.SRCS
+=
tools_common.h tools_common.c
...
...
@@ -195,40 +171,17 @@ set_maps.SRCS += video_writer.h video_writer.c
set_maps.SRCS
+=
vpx_ports/msvc.h
set_maps.GUID
=
ECB2D24D-98B8-4015-A465-A4AF3DCC145F
set_maps.DESCRIPTION
=
Set active and ROI maps
EXAMPLES-$(CONFIG_VP8_ENCODER)
+=
vp8cx_set_ref.c
vp8cx_set_ref.SRCS
+=
ivfenc.h ivfenc.c
vp8cx_set_ref.SRCS
+=
tools_common.h tools_common.c
vp8cx_set_ref.SRCS
+=
video_common.h
vp8cx_set_ref.SRCS
+=
video_writer.h video_writer.c
vp8cx_set_ref.SRCS
+=
vpx_ports/msvc.h
vp8cx_set_ref.GUID
=
C5E31F7F-96F6-48BD-BD3E-10EBF6E8057A
vp8cx_set_ref.DESCRIPTION
=
VP8
set
encoder reference frame
ifeq
($(CONFIG_MULTI_RES_ENCODING),yes)
ifeq
($(CONFIG_LIBYUV),yes)
EXAMPLES-$(CONFIG_VP8_ENCODER)
+=
vp8_multi_resolution_encoder.c
vp8_multi_resolution_encoder.SRCS
+=
ivfenc.h ivfenc.c
vp8_multi_resolution_encoder.SRCS
+=
tools_common.h tools_common.c
vp8_multi_resolution_encoder.SRCS
+=
video_writer.h video_writer.c
vp8_multi_resolution_encoder.SRCS
+=
vpx_ports/msvc.h
vp8_multi_resolution_encoder.SRCS
+=
$(LIBYUV_SRCS)
vp8_multi_resolution_encoder.GUID
=
04f8738e-63c8-423b-90fa-7c2703a374de
vp8_multi_resolution_encoder.DESCRIPTION
=
VP8 Multiple-resolution Encoding
endif
endif
# Handle extra library flags depending on codec configuration
# We should not link to math library (libm) on RVCT
# when building for bare-metal targets
ifeq
($(CONFIG_OS_SUPPORT), yes)
CODEC_EXTRA_LIBS-$(CONFIG_VP8)
+=
m
CODEC_EXTRA_LIBS-$(CONFIG_VP9)
+=
m
CODEC_EXTRA_LIBS-$(CONFIG_VP10)
+=
m
else
ifeq
($(CONFIG_GCC), yes)
CODEC_EXTRA_LIBS-$(CONFIG_VP8)
+=
m
CODEC_EXTRA_LIBS-$(CONFIG_VP9)
+=
m
CODEC_EXTRA_LIBS-$(CONFIG_VP10)
+=
m
endif
endif
#
...
...
@@ -245,10 +198,8 @@ ifeq ($(HAVE_ALT_TREE_LAYOUT),yes)
INC_PATH-yes
:=
$(SRC_PATH_BARE)
/../include
else
LIB_PATH-yes
+=
$(
if
$(BUILD_PFX)
,
$(BUILD_PFX)
,.
)
INC_PATH-$(CONFIG_VP8_DECODER)
+=
$(SRC_PATH_BARE)
/vp8
INC_PATH-$(CONFIG_VP8_ENCODER)
+=
$(SRC_PATH_BARE)
/vp8
INC_PATH-$(CONFIG_VP9_DECODER)
+=
$(SRC_PATH_BARE)
/vp9
INC_PATH-$(CONFIG_VP9_ENCODER)
+=
$(SRC_PATH_BARE)
/vp9
INC_PATH-$(CONFIG_VP10_DECODER)
+=
$(SRC_PATH_BARE)
/vp10
INC_PATH-$(CONFIG_VP10_ENCODER)
+=
$(SRC_PATH_BARE)
/vp10
endif
INC_PATH-$(CONFIG_LIBYUV)
+=
$(SRC_PATH_BARE)
/third_party/libyuv/include
LIB_PATH
:=
$(
call
enabled,LIB_PATH
)
...
...
examples/resize_util.c
deleted
100644 → 0
View file @
1f303c27
/*
* Copyright (c) 2014 The WebM 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.
*/
#include <assert.h>
#include <limits.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "../tools_common.h"
#include "../vp9/encoder/vp9_resize.h"
static
const
char
*
exec_name
=
NULL
;
static
void
usage
()
{
printf
(
"Usage:
\n
"
);
printf
(
"%s <input_yuv> <width>x<height> <target_width>x<target_height> "
,
exec_name
);
printf
(
"<output_yuv> [<frames>]
\n
"
);
}
void
usage_exit
(
void
)
{
usage
();
exit
(
EXIT_FAILURE
);
}
static
int
parse_dim
(
char
*
v
,
int
*
width
,
int
*
height
)
{
char
*
x
=
strchr
(
v
,
'x'
);
if
(
x
==
NULL
)
x
=
strchr
(
v
,
'X'
);
if
(
x
==
NULL
)
return
0
;
*
width
=
atoi
(
v
);
*
height
=
atoi
(
&
x
[
1
]);
if
(
*
width
<=
0
||
*
height
<=
0
)
return
0
;
else
return
1
;
}
int
main
(
int
argc
,
char
*
argv
[])
{
char
*
fin
,
*
fout
;
FILE
*
fpin
,
*
fpout
;
uint8_t
*
inbuf
,
*
outbuf
;
uint8_t
*
inbuf_u
,
*
outbuf_u
;
uint8_t
*
inbuf_v
,
*
outbuf_v
;
int
f
,
frames
;
int
width
,
height
,
target_width
,
target_height
;
exec_name
=
argv
[
0
];
if
(
argc
<
5
)
{
printf
(
"Incorrect parameters:
\n
"
);
usage
();
return
1
;
}
fin
=
argv
[
1
];
fout
=
argv
[
4
];
if
(
!
parse_dim
(
argv
[
2
],
&
width
,
&
height
))
{
printf
(
"Incorrect parameters: %s
\n
"
,
argv
[
2
]);
usage
();
return
1
;
}
if
(
!
parse_dim
(
argv
[
3
],
&
target_width
,
&
target_height
))
{
printf
(
"Incorrect parameters: %s
\n
"
,
argv
[
3
]);
usage
();
return
1
;
}
fpin
=
fopen
(
fin
,
"rb"
);
if
(
fpin
==
NULL
)
{
printf
(
"Can't open file %s to read
\n
"
,
fin
);
usage
();
return
1
;
}
fpout
=
fopen
(
fout
,
"wb"
);
if
(
fpout
==
NULL
)
{
printf
(
"Can't open file %s to write
\n
"
,
fout
);
usage
();
return
1
;
}
if
(
argc
>=
6
)
frames
=
atoi
(
argv
[
5
]);
else
frames
=
INT_MAX
;
printf
(
"Input size: %dx%d
\n
"
,
width
,
height
);
printf
(
"Target size: %dx%d, Frames: "
,
target_width
,
target_height
);
if
(
frames
==
INT_MAX
)
printf
(
"All
\n
"
);
else
printf
(
"%d
\n
"
,
frames
);
inbuf
=
(
uint8_t
*
)
malloc
(
width
*
height
*
3
/
2
);
outbuf
=
(
uint8_t
*
)
malloc
(
target_width
*
target_height
*
3
/
2
);
inbuf_u
=
inbuf
+
width
*
height
;
inbuf_v
=
inbuf_u
+
width
*
height
/
4
;
outbuf_u
=
outbuf
+
target_width
*
target_height
;
outbuf_v
=
outbuf_u
+
target_width
*
target_height
/
4
;
f
=
0
;
while
(
f
<
frames
)
{
if
(
fread
(
inbuf
,
width
*
height
*
3
/
2
,
1
,
fpin
)
!=
1
)
break
;
vp9_resize_frame420
(
inbuf
,
width
,
inbuf_u
,
inbuf_v
,
width
/
2
,
height
,
width
,
outbuf
,
target_width
,
outbuf_u
,
outbuf_v
,
target_width
/
2
,
target_height
,
target_width
);
fwrite
(
outbuf
,
target_width
*
target_height
*
3
/
2
,
1
,
fpout
);
f
++
;
}
printf
(
"%d frames processed
\n
"
,
f
);
fclose
(
fpin
);
fclose
(
fpout
);
free
(
inbuf
);
free
(
outbuf
);
return
0
;
}
examples/vp8_multi_resolution_encoder.c
deleted
100644 → 0
View file @
1f303c27
This diff is collapsed.
Click to expand it.
examples/vp8cx_set_ref.c
deleted
100644 → 0
View file @
1f303c27
/*
* Copyright (c) 2010 The WebM 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.
*/
// VP8 Set Reference Frame
// =======================
//
// This is an example demonstrating how to overwrite the VP8 encoder's
// internal reference frame. In the sample we set the last frame to the
// current frame. If this is done at a cut scene it will avoid a keyframe.
// This technique could be used to bounce between two cameras.
//
// Note that the decoder would also have to set the reference frame to the
// same value on the same frame, or the video will become corrupt.
//
// Usage
// -----
// This example adds a single argument to the `simple_encoder` example,
// which specifies the frame number to update the reference frame on.
// The parameter is parsed as follows:
//
//
// Extra Variables
// ---------------
// This example maintains the frame number passed on the command line
// in the `update_frame_num` variable.
//
//
// Configuration
// -------------
//
// The reference frame is updated on the frame specified on the command
// line.
//
// Observing The Effects
// ---------------------
// Use the `simple_encoder` example to encode a sample with a cut scene.
// Determine the frame number of the cut scene by looking for a generated
// key-frame (indicated by a 'K'). Supply that frame number as an argument
// to this example, and observe that no key-frame is generated.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "vpx/vp8cx.h"
#include "vpx/vpx_encoder.h"
#include "../tools_common.h"
#include "../video_writer.h"
static
const
char
*
exec_name
;
void
usage_exit
(
void
)
{
fprintf
(
stderr
,
"Usage: %s <width> <height> <infile> <outfile> <frame>
\n
"
,
exec_name
);
exit
(
EXIT_FAILURE
);
}
static
int
encode_frame
(
vpx_codec_ctx_t
*
codec
,
vpx_image_t
*
img
,
int
frame_index
,
VpxVideoWriter
*
writer
)
{
int
got_pkts
=
0
;
vpx_codec_iter_t
iter
=
NULL
;
const
vpx_codec_cx_pkt_t
*
pkt
=
NULL
;
const
vpx_codec_err_t
res
=
vpx_codec_encode
(
codec
,
img
,
frame_index
,
1
,
0
,
VPX_DL_GOOD_QUALITY
);
if
(
res
!=
VPX_CODEC_OK
)
die_codec
(
codec
,
"Failed to encode frame"
);
while
((
pkt
=
vpx_codec_get_cx_data
(
codec
,
&
iter
))
!=
NULL
)
{
got_pkts
=
1
;
if
(
pkt
->
kind
==
VPX_CODEC_CX_FRAME_PKT
)
{
const
int
keyframe
=
(
pkt
->
data
.
frame
.
flags
&
VPX_FRAME_IS_KEY
)
!=
0
;
if
(
!
vpx_video_writer_write_frame
(
writer
,
pkt
->
data
.
frame
.
buf
,
pkt
->
data
.
frame
.
sz
,
pkt
->
data
.
frame
.
pts
))
{
die_codec
(
codec
,
"Failed to write compressed frame"
);
}
printf
(
keyframe
?
"K"
:
"."
);
fflush
(
stdout
);
}
}
return
got_pkts
;
}
int
main
(
int
argc
,
char
**
argv
)
{
FILE
*
infile
=
NULL
;
vpx_codec_ctx_t
codec
=
{
0
};
vpx_codec_enc_cfg_t
cfg
=
{
0
};
int
frame_count
=
0
;
vpx_image_t
raw
;
vpx_codec_err_t
res
;
VpxVideoInfo
info
=
{
0
};
VpxVideoWriter
*
writer
=
NULL
;
const
VpxInterface
*
encoder
=
NULL
;
int
update_frame_num
=
0
;
const
int
fps
=
30
;
// TODO(dkovalev) add command line argument
const
int
bitrate
=
200
;
// kbit/s TODO(dkovalev) add command line argument
exec_name
=
argv
[
0
];
if
(
argc
!=
6
)
die
(
"Invalid number of arguments"
);
// TODO(dkovalev): add vp9 support and rename the file accordingly
encoder
=
get_vpx_encoder_by_name
(
"vp8"
);
if
(
!
encoder
)
die
(
"Unsupported codec."
);
update_frame_num
=
atoi
(
argv
[
5
]);
if
(
!
update_frame_num
)
die
(
"Couldn't parse frame number '%s'
\n
"
,
argv
[
5
]);
info
.
codec_fourcc
=
encoder
->
fourcc
;
info
.
frame_width
=
strtol
(
argv
[
1
],
NULL
,
0
);
info
.
frame_height
=
strtol
(
argv
[
2
],
NULL
,
0
);
info
.
time_base
.
numerator
=
1
;
info
.
time_base
.
denominator
=
fps
;
if
(
info
.
frame_width
<=
0
||
info
.
frame_height
<=
0
||
(
info
.
frame_width
%
2
)
!=
0
||
(
info
.
frame_height
%
2
)
!=
0
)
{
die
(
"Invalid frame size: %dx%d"
,
info
.
frame_width
,
info
.
frame_height
);
}
if
(
!
vpx_img_alloc
(
&
raw
,
VPX_IMG_FMT_I420
,
info
.
frame_width
,
info
.
frame_height
,
1
))
{
die
(
"Failed to allocate image."
);
}
printf
(
"Using %s
\n
"
,
vpx_codec_iface_name
(
encoder
->
codec_interface
()));
res
=
vpx_codec_enc_config_default
(
encoder
->
codec_interface
(),
&
cfg
,
0
);
if
(
res
)
die_codec
(
&
codec
,
"Failed to get default codec config."
);
cfg
.
g_w
=
info
.
frame_width
;
cfg
.
g_h
=
info
.
frame_height
;
cfg
.
g_timebase
.
num
=
info
.
time_base
.
numerator
;
cfg
.
g_timebase
.
den
=
info
.
time_base
.
denominator
;
cfg
.
rc_target_bitrate
=
bitrate
;
writer
=
vpx_video_writer_open
(
argv
[
4
],
kContainerIVF
,
&
info
);
if
(
!
writer
)
die
(
"Failed to open %s for writing."
,
argv
[
4
]);
if
(
!
(
infile
=
fopen
(
argv
[
3
],
"rb"
)))
die
(
"Failed to open %s for reading."
,
argv
[
3
]);
if
(
vpx_codec_enc_init
(
&
codec
,
encoder
->
codec_interface
(),
&
cfg
,
0
))
die_codec
(
&
codec
,
"Failed to initialize encoder"
);
// Encode frames.
while
(
vpx_img_read
(
&
raw
,
infile
))
{
if
(
frame_count
+
1
==
update_frame_num
)
{
vpx_ref_frame_t
ref
;
ref
.
frame_type
=
VP8_LAST_FRAME
;
ref
.
img
=
raw
;
if
(
vpx_codec_control
(
&
codec
,
VP8_SET_REFERENCE
,
&
ref
))
die_codec
(
&
codec
,
"Failed to set reference frame"
);
}
encode_frame
(
&
codec
,
&
raw
,
frame_count
++
,
writer
);
}
// Flush encoder.
while
(
encode_frame
(
&
codec
,
NULL
,
-
1
,
writer
))
{}
printf
(
"
\n
"
);
fclose
(
infile
);
printf
(
"Processed %d frames.
\n
"
,
frame_count
);
vpx_img_free
(
&
raw
);
if
(
vpx_codec_destroy
(
&
codec
))
die_codec
(
&
codec
,
"Failed to destroy codec."
);
vpx_video_writer_close
(
writer
);
return
EXIT_SUCCESS
;
}
examples/vp9_lossless_encoder.c
deleted
100644 → 0
View file @
1f303c27
/*
* Copyright (c) 2014 The WebM 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.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "vpx/vpx_encoder.h"
#include "vpx/vp8cx.h"
#include "../tools_common.h"
#include "../video_writer.h"
static
const
char
*
exec_name
;
void
usage_exit
(
void
)
{
fprintf
(
stderr
,
"vp9_lossless_encoder: Example demonstrating VP9 lossless "
"encoding feature. Supports raw input only.
\n
"
);
fprintf
(
stderr
,
"Usage: %s <width> <height> <infile> <outfile>
\n
"
,
exec_name
);
exit
(
EXIT_FAILURE
);
}
static
int
encode_frame
(
vpx_codec_ctx_t
*
codec
,
vpx_image_t
*
img
,
int
frame_index
,
int
flags
,
VpxVideoWriter
*
writer
)
{
int
got_pkts
=
0
;
vpx_codec_iter_t
iter
=
NULL
;
const
vpx_codec_cx_pkt_t
*
pkt
=
NULL
;
const
vpx_codec_err_t
res
=
vpx_codec_encode
(
codec
,
img
,
frame_index
,
1
,
flags
,
VPX_DL_GOOD_QUALITY
);
if
(
res
!=
VPX_CODEC_OK
)
die_codec
(
codec
,
"Failed to encode frame"
);
while
((
pkt
=
vpx_codec_get_cx_data
(
codec
,
&
iter
))
!=
NULL
)
{
got_pkts
=
1
;
if
(
pkt
->
kind
==
VPX_CODEC_CX_FRAME_PKT
)
{
const
int
keyframe
=
(
pkt
->
data
.
frame
.
flags
&
VPX_FRAME_IS_KEY
)
!=
0
;
if
(
!
vpx_video_writer_write_frame
(
writer
,
pkt
->
data
.
frame
.
buf
,
pkt
->
data
.
frame
.
sz
,
pkt
->
data
.
frame
.
pts
))
{
die_codec
(
codec
,
"Failed to write compressed frame"
);
}
printf
(
keyframe
?
"K"
:
"."
);
fflush
(
stdout
);
}
}
return
got_pkts
;
}
int
main
(
int
argc
,
char
**
argv
)
{
FILE
*
infile
=
NULL
;
vpx_codec_ctx_t
codec
;
vpx_codec_enc_cfg_t
cfg
;
int
frame_count
=
0
;
vpx_image_t
raw
;
vpx_codec_err_t
res
;
VpxVideoInfo
info
=
{
0
};
VpxVideoWriter
*
writer
=
NULL
;
const
VpxInterface
*
encoder
=
NULL
;
const
int
fps
=
30
;
exec_name
=
argv
[
0
];
if
(
argc
<
5
)
die
(
"Invalid number of arguments"
);
encoder
=
get_vpx_encoder_by_name
(
"vp9"
);
if
(
!
encoder
)
die
(
"Unsupported codec."
);
info
.
codec_fourcc
=
encoder
->
fourcc
;
info
.
frame_width
=
strtol
(
argv
[
1
],
NULL
,
0
);
info
.
frame_height
=
strtol
(
argv
[
2
],
NULL
,
0
);
info
.
time_base
.
numerator
=
1
;
info
.
time_base
.
denominator
=
fps
;
if
(
info
.
frame_width
<=
0
||
info
.
frame_height
<=
0
||
(
info
.
frame_width
%
2
)
!=
0
||
(
info
.
frame_height
%
2
)
!=
0
)
{
die
(
"Invalid frame size: %dx%d"
,
info
.
frame_width
,
info
.
frame_height
);
}
if
(
!
vpx_img_alloc
(
&
raw
,
VPX_IMG_FMT_I420
,
info
.
frame_width
,
info
.
frame_height
,
1
))
{
die
(
"Failed to allocate image."
);
}
printf
(
"Using %s
\n
"
,
vpx_codec_iface_name
(
encoder
->
codec_interface
()));
res
=
vpx_codec_enc_config_default
(
encoder
->
codec_interface
(),
&
cfg
,
0
);
if
(
res
)
die_codec
(
&
codec
,
"Failed to get default codec config."
);
cfg
.
g_w
=
info
.
frame_width
;
cfg
.
g_h
=
info
.
frame_height
;
cfg
.
g_timebase
.
num
=
info
.
time_base
.
numerator
;
cfg
.
g_timebase
.
den
=
info
.
time_base
.
denominator
;
writer
=
vpx_video_writer_open
(
argv
[
4
],
kContainerIVF
,
&
info
);
if
(
!
writer
)
die
(
"Failed to open %s for writing."
,
argv
[
4
]);
if
(
!
(
infile
=
fopen
(
argv
[
3
],
"rb"
)))
die
(
"Failed to open %s for reading."
,
argv
[
3
]);
if
(
vpx_codec_enc_init
(
&
codec
,
encoder
->
codec_interface
(),
&
cfg
,
0
))
die_codec
(
&
codec
,
"Failed to initialize encoder"
);
if
(
vpx_codec_control_
(
&
codec
,
VP9E_SET_LOSSLESS
,
1
))
die_codec
(
&
codec
,
"Failed to use lossless mode"
);
// Encode frames.
while
(
vpx_img_read
(
&
raw
,
infile
))
{
encode_frame
(
&
codec
,
&
raw
,
frame_count
++
,
0
,
writer
);
}
// Flush encoder.
while
(
encode_frame
(
&
codec
,
NULL
,
-
1
,
0
,
writer
))
{}
printf
(
"
\n
"
);
fclose
(
infile
);
printf
(
"Processed %d frames.
\n
"
,
frame_count
);
vpx_img_free
(
&
raw
);
if
(
vpx_codec_destroy
(
&
codec
))
die_codec
(
&
codec
,
"Failed to destroy codec."
);
vpx_video_writer_close
(
writer
);
return
EXIT_SUCCESS
;
}
examples/vp9_spatial_svc_encoder.c
deleted
100644 → 0
View file @
1f303c27
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment