Index: source/libvpx/examples/decode_to_md5.c |
=================================================================== |
--- source/libvpx/examples/decode_to_md5.c (revision 251189) |
+++ source/libvpx/examples/decode_to_md5.c (working copy) |
@@ -38,9 +38,9 @@ |
#include "vpx/vp8dx.h" |
#include "vpx/vpx_decoder.h" |
-#include "./ivfdec.h" |
#include "./md5_utils.h" |
#include "./tools_common.h" |
+#include "./video_reader.h" |
#include "./vpx_config.h" |
static void get_image_md5(const vpx_image_t *img, unsigned char digest[16]) { |
@@ -79,41 +79,42 @@ |
} |
int main(int argc, char **argv) { |
- FILE *infile, *outfile; |
+ int frame_cnt = 0; |
+ FILE *outfile = NULL; |
vpx_codec_ctx_t codec; |
- vpx_codec_iface_t *iface; |
- int flags = 0, frame_cnt = 0; |
- vpx_video_t *video; |
+ VpxVideoReader *reader = NULL; |
+ const VpxVideoInfo *info = NULL; |
+ const VpxInterface *decoder = NULL; |
exec_name = argv[0]; |
if (argc != 3) |
- die("Invalid number of arguments"); |
+ die("Invalid number of arguments."); |
- if (!(infile = fopen(argv[1], "rb"))) |
- die("Failed to open %s for reading", argv[1]); |
+ reader = vpx_video_reader_open(argv[1]); |
+ if (!reader) |
+ die("Failed to open %s for reading.", argv[1]); |
if (!(outfile = fopen(argv[2], "wb"))) |
- die("Failed to open %s for writing", argv[2]); |
+ die("Failed to open %s for writing.", argv[2]); |
- video = vpx_video_open_file(infile); |
- if (!video) |
- die("%s is not an IVF file.", argv[1]); |
+ info = vpx_video_reader_get_info(reader); |
- iface = get_codec_interface(vpx_video_get_fourcc(video)); |
- if (!iface) |
- die("Unknown FOURCC code."); |
+ decoder = get_vpx_decoder_by_fourcc(info->codec_fourcc); |
+ if (!decoder) |
+ die("Unknown input codec."); |
- printf("Using %s\n", vpx_codec_iface_name(iface)); |
+ printf("Using %s\n", vpx_codec_iface_name(decoder->interface())); |
- if (vpx_codec_dec_init(&codec, iface, NULL, flags)) |
+ if (vpx_codec_dec_init(&codec, decoder->interface(), NULL, 0)) |
die_codec(&codec, "Failed to initialize decoder"); |
- while (vpx_video_read_frame(video)) { |
+ while (vpx_video_reader_read_frame(reader)) { |
vpx_codec_iter_t iter = NULL; |
vpx_image_t *img = NULL; |
size_t frame_size = 0; |
- const unsigned char *frame = vpx_video_get_frame(video, &frame_size); |
+ const unsigned char *frame = vpx_video_reader_get_frame(reader, |
+ &frame_size); |
if (vpx_codec_decode(&codec, frame, frame_size, NULL, 0)) |
die_codec(&codec, "Failed to decode frame"); |
@@ -129,11 +130,10 @@ |
printf("Processed %d frames.\n", frame_cnt); |
if (vpx_codec_destroy(&codec)) |
- die_codec(&codec, "Failed to destroy codec"); |
+ die_codec(&codec, "Failed to destroy codec."); |
- vpx_video_close(video); |
+ vpx_video_reader_close(reader); |
fclose(outfile); |
- fclose(infile); |
return EXIT_SUCCESS; |
} |