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

Side by Side Diff: source/libvpx/vpxdec.c

Issue 232133009: libvpx: Pull from upstream (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/libvpx/
Patch Set: Created 6 years, 8 months 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_scale/vpx_scale_rtcd.sh ('k') | source/libvpx/vpxenc.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 } 211 }
212 *bytes_read = frame_size; 212 *bytes_read = frame_size;
213 } 213 }
214 214
215 return 0; 215 return 0;
216 } 216 }
217 217
218 static int read_frame(struct VpxDecInputContext *input, uint8_t **buf, 218 static int read_frame(struct VpxDecInputContext *input, uint8_t **buf,
219 size_t *bytes_in_buffer, size_t *buffer_size) { 219 size_t *bytes_in_buffer, size_t *buffer_size) {
220 switch (input->vpx_input_ctx->file_type) { 220 switch (input->vpx_input_ctx->file_type) {
221 #if CONFIG_WEBM_IO
221 case FILE_TYPE_WEBM: 222 case FILE_TYPE_WEBM:
222 return webm_read_frame(input->webm_ctx, 223 return webm_read_frame(input->webm_ctx,
223 buf, bytes_in_buffer, buffer_size); 224 buf, bytes_in_buffer, buffer_size);
225 #endif
224 case FILE_TYPE_RAW: 226 case FILE_TYPE_RAW:
225 return raw_read_frame(input->vpx_input_ctx->file, 227 return raw_read_frame(input->vpx_input_ctx->file,
226 buf, bytes_in_buffer, buffer_size); 228 buf, bytes_in_buffer, buffer_size);
227 case FILE_TYPE_IVF: 229 case FILE_TYPE_IVF:
228 return ivf_read_frame(input->vpx_input_ctx->file, 230 return ivf_read_frame(input->vpx_input_ctx->file,
229 buf, bytes_in_buffer, buffer_size); 231 buf, bytes_in_buffer, buffer_size);
230 default: 232 default:
231 return 1; 233 return 1;
232 } 234 }
233 } 235 }
(...skipping 422 matching lines...) Expand 10 before | Expand all | Expand 10 after
656 if (!outfile_pattern && isatty(fileno(stdout)) && !do_md5 && !noblit) { 658 if (!outfile_pattern && isatty(fileno(stdout)) && !do_md5 && !noblit) {
657 fprintf(stderr, 659 fprintf(stderr,
658 "Not dumping raw video to your terminal. Use '-o -' to " 660 "Not dumping raw video to your terminal. Use '-o -' to "
659 "override.\n"); 661 "override.\n");
660 return EXIT_FAILURE; 662 return EXIT_FAILURE;
661 } 663 }
662 #endif 664 #endif
663 input.vpx_input_ctx->file = infile; 665 input.vpx_input_ctx->file = infile;
664 if (file_is_ivf(input.vpx_input_ctx)) 666 if (file_is_ivf(input.vpx_input_ctx))
665 input.vpx_input_ctx->file_type = FILE_TYPE_IVF; 667 input.vpx_input_ctx->file_type = FILE_TYPE_IVF;
668 #if CONFIG_WEBM_IO
666 else if (file_is_webm(input.webm_ctx, input.vpx_input_ctx)) 669 else if (file_is_webm(input.webm_ctx, input.vpx_input_ctx))
667 input.vpx_input_ctx->file_type = FILE_TYPE_WEBM; 670 input.vpx_input_ctx->file_type = FILE_TYPE_WEBM;
671 #endif
668 else if (file_is_raw(input.vpx_input_ctx)) 672 else if (file_is_raw(input.vpx_input_ctx))
669 input.vpx_input_ctx->file_type = FILE_TYPE_RAW; 673 input.vpx_input_ctx->file_type = FILE_TYPE_RAW;
670 else { 674 else {
671 fprintf(stderr, "Unrecognized input file type.\n"); 675 fprintf(stderr, "Unrecognized input file type.\n");
676 #if !CONFIG_WEBM_IO
677 fprintf(stderr, "vpxdec was built without WebM container support.\n");
678 #endif
672 return EXIT_FAILURE; 679 return EXIT_FAILURE;
673 } 680 }
674 681
675 outfile_pattern = outfile_pattern ? outfile_pattern : "-"; 682 outfile_pattern = outfile_pattern ? outfile_pattern : "-";
676 single_file = is_single_file(outfile_pattern); 683 single_file = is_single_file(outfile_pattern);
677 684
678 if (!noblit && single_file) { 685 if (!noblit && single_file) {
679 generate_filename(outfile_pattern, outfile_name, PATH_MAX, 686 generate_filename(outfile_pattern, outfile_name, PATH_MAX,
680 vpx_input_ctx.width, vpx_input_ctx.height, 0); 687 vpx_input_ctx.width, vpx_input_ctx.height, 0);
681 if (do_md5) 688 if (do_md5)
682 MD5Init(&md5_ctx); 689 MD5Init(&md5_ctx);
683 else 690 else
684 outfile = open_outfile(outfile_name); 691 outfile = open_outfile(outfile_name);
685 } 692 }
686 693
687 if (use_y4m && !noblit) { 694 if (use_y4m && !noblit) {
688 if (!single_file) { 695 if (!single_file) {
689 fprintf(stderr, "YUV4MPEG2 not supported with output patterns," 696 fprintf(stderr, "YUV4MPEG2 not supported with output patterns,"
690 " try --i420 or --yv12.\n"); 697 " try --i420 or --yv12.\n");
691 return EXIT_FAILURE; 698 return EXIT_FAILURE;
692 } 699 }
693 700
701 #if CONFIG_WEBM_IO
694 if (vpx_input_ctx.file_type == FILE_TYPE_WEBM) { 702 if (vpx_input_ctx.file_type == FILE_TYPE_WEBM) {
695 if (webm_guess_framerate(input.webm_ctx, input.vpx_input_ctx)) { 703 if (webm_guess_framerate(input.webm_ctx, input.vpx_input_ctx)) {
696 fprintf(stderr, "Failed to guess framerate -- error parsing " 704 fprintf(stderr, "Failed to guess framerate -- error parsing "
697 "webm file?\n"); 705 "webm file?\n");
698 return EXIT_FAILURE; 706 return EXIT_FAILURE;
699 } 707 }
700 } 708 }
709 #endif
701 } 710 }
702 711
703 fourcc_interface = get_vpx_decoder_by_fourcc(vpx_input_ctx.fourcc); 712 fourcc_interface = get_vpx_decoder_by_fourcc(vpx_input_ctx.fourcc);
704 if (interface && fourcc_interface && interface != fourcc_interface) 713 if (interface && fourcc_interface && interface != fourcc_interface)
705 warn("Header indicates codec: %s\n", fourcc_interface->name); 714 warn("Header indicates codec: %s\n", fourcc_interface->name);
706 else 715 else
707 interface = fourcc_interface; 716 interface = fourcc_interface;
708 717
709 if (!interface) 718 if (!interface)
710 interface = get_vpx_decoder_by_index(0); 719 interface = get_vpx_decoder_by_index(0);
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
934 943
935 if (!noblit && single_file) { 944 if (!noblit && single_file) {
936 if (do_md5) { 945 if (do_md5) {
937 MD5Final(md5_digest, &md5_ctx); 946 MD5Final(md5_digest, &md5_ctx);
938 print_md5(md5_digest, outfile_name); 947 print_md5(md5_digest, outfile_name);
939 } else { 948 } else {
940 fclose(outfile); 949 fclose(outfile);
941 } 950 }
942 } 951 }
943 952
953 #if CONFIG_WEBM_IO
944 if (input.vpx_input_ctx->file_type == FILE_TYPE_WEBM) 954 if (input.vpx_input_ctx->file_type == FILE_TYPE_WEBM)
945 webm_free(input.webm_ctx); 955 webm_free(input.webm_ctx);
946 else 956 #endif
957
958 if (input.vpx_input_ctx->file_type != FILE_TYPE_WEBM)
947 free(buf); 959 free(buf);
948 960
949 if (scaled_img) vpx_img_free(scaled_img); 961 if (scaled_img) vpx_img_free(scaled_img);
950 962
951 for (i = 0; i < ext_fb_list.num_external_frame_buffers; ++i) { 963 for (i = 0; i < ext_fb_list.num_external_frame_buffers; ++i) {
952 free(ext_fb_list.ext_fb[i].data); 964 free(ext_fb_list.ext_fb[i].data);
953 } 965 }
954 free(ext_fb_list.ext_fb); 966 free(ext_fb_list.ext_fb);
955 967
956 fclose(infile); 968 fclose(infile);
(...skipping 16 matching lines...) Expand all
973 if (arg_match(&arg, &looparg, argi)) { 985 if (arg_match(&arg, &looparg, argi)) {
974 loops = arg_parse_uint(&arg); 986 loops = arg_parse_uint(&arg);
975 break; 987 break;
976 } 988 }
977 } 989 }
978 free(argv); 990 free(argv);
979 for (i = 0; !error && i < loops; i++) 991 for (i = 0; !error && i < loops; i++)
980 error = main_loop(argc, argv_); 992 error = main_loop(argc, argv_);
981 return error; 993 return error;
982 } 994 }
OLDNEW
« no previous file with comments | « source/libvpx/vpx_scale/vpx_scale_rtcd.sh ('k') | source/libvpx/vpxenc.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698