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

Side by Side Diff: net/base/mime_util.cc

Issue 761903003: Update from https://crrev.com/306655 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 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
« no previous file with comments | « net/base/host_port_pair.cc ('k') | net/base/net_errors.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <algorithm> 5 #include <algorithm>
6 #include <iterator> 6 #include <iterator>
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 9
10 #include "base/containers/hash_tables.h" 10 #include "base/containers/hash_tables.h"
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 class MimeUtil : public PlatformMimeUtil { 52 class MimeUtil : public PlatformMimeUtil {
53 public: 53 public:
54 enum Codec { 54 enum Codec {
55 INVALID_CODEC, 55 INVALID_CODEC,
56 PCM, 56 PCM,
57 MP3, 57 MP3,
58 MPEG2_AAC_LC, 58 MPEG2_AAC_LC,
59 MPEG2_AAC_MAIN, 59 MPEG2_AAC_MAIN,
60 MPEG2_AAC_SSR, 60 MPEG2_AAC_SSR,
61 MPEG4_AAC_LC, 61 MPEG4_AAC_LC,
62 MPEG4_AAC_SBRv1, 62 MPEG4_AAC_SBR_v1,
63 MPEG4_AAC_SBR_PS_v2,
63 VORBIS, 64 VORBIS,
64 OPUS, 65 OPUS,
65 H264_BASELINE, 66 H264_BASELINE,
66 H264_MAIN, 67 H264_MAIN,
67 H264_HIGH, 68 H264_HIGH,
68 VP8, 69 VP8,
69 VP9, 70 VP9,
70 THEORA 71 THEORA
71 }; 72 };
72 73
(...skipping 395 matching lines...) Expand 10 before | Expand all | Expand 10 after
468 469
469 #if defined(OS_ANDROID) 470 #if defined(OS_ANDROID)
470 static bool IsCodecSupportedOnAndroid(MimeUtil::Codec codec) { 471 static bool IsCodecSupportedOnAndroid(MimeUtil::Codec codec) {
471 switch (codec) { 472 switch (codec) {
472 case MimeUtil::INVALID_CODEC: 473 case MimeUtil::INVALID_CODEC:
473 return false; 474 return false;
474 475
475 case MimeUtil::PCM: 476 case MimeUtil::PCM:
476 case MimeUtil::MP3: 477 case MimeUtil::MP3:
477 case MimeUtil::MPEG4_AAC_LC: 478 case MimeUtil::MPEG4_AAC_LC:
478 case MimeUtil::MPEG4_AAC_SBRv1: 479 case MimeUtil::MPEG4_AAC_SBR_v1:
480 case MimeUtil::MPEG4_AAC_SBR_PS_v2:
479 case MimeUtil::H264_BASELINE: 481 case MimeUtil::H264_BASELINE:
480 case MimeUtil::H264_MAIN: 482 case MimeUtil::H264_MAIN:
481 case MimeUtil::H264_HIGH: 483 case MimeUtil::H264_HIGH:
482 case MimeUtil::VP8: 484 case MimeUtil::VP8:
483 case MimeUtil::VORBIS: 485 case MimeUtil::VORBIS:
484 return true; 486 return true;
485 487
486 case MimeUtil::MPEG2_AAC_LC: 488 case MimeUtil::MPEG2_AAC_LC:
487 case MimeUtil::MPEG2_AAC_MAIN: 489 case MimeUtil::MPEG2_AAC_MAIN:
488 case MimeUtil::MPEG2_AAC_SSR: 490 case MimeUtil::MPEG2_AAC_SSR:
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
521 const char* codecs_list; 523 const char* codecs_list;
522 }; 524 };
523 525
524 // Following is the list of RFC 6381 compliant codecs: 526 // Following is the list of RFC 6381 compliant codecs:
525 // mp4a.66 - MPEG-2 AAC MAIN 527 // mp4a.66 - MPEG-2 AAC MAIN
526 // mp4a.67 - MPEG-2 AAC LC 528 // mp4a.67 - MPEG-2 AAC LC
527 // mp4a.68 - MPEG-2 AAC SSR 529 // mp4a.68 - MPEG-2 AAC SSR
528 // mp4a.69 - MPEG-2 extension to MPEG-1 530 // mp4a.69 - MPEG-2 extension to MPEG-1
529 // mp4a.6B - MPEG-1 audio 531 // mp4a.6B - MPEG-1 audio
530 // mp4a.40.2 - MPEG-4 AAC LC 532 // mp4a.40.2 - MPEG-4 AAC LC
531 // mp4a.40.5 - MPEG-4 AAC SBRv1 533 // mp4a.40.5 - MPEG-4 HE-AAC v1 (AAC LC + SBR)
534 // mp4a.40.29 - MPEG-4 HE-AAC v2 (AAC LC + SBR + PS)
532 // 535 //
533 // avc1.42E0xx - H.264 Baseline 536 // avc1.42E0xx - H.264 Baseline
534 // avc1.4D40xx - H.264 Main 537 // avc1.4D40xx - H.264 Main
535 // avc1.6400xx - H.264 High 538 // avc1.6400xx - H.264 High
536 static const char kMP4AudioCodecsExpression[] = 539 static const char kMP4AudioCodecsExpression[] =
537 "mp4a.66,mp4a.67,mp4a.68,mp4a.69,mp4a.6B,mp4a.40.2,mp4a.40.5"; 540 "mp4a.66,mp4a.67,mp4a.68,mp4a.69,mp4a.6B,mp4a.40.2,mp4a.40.5,mp4a.40.29";
538 static const char kMP4VideoCodecsExpression[] = 541 static const char kMP4VideoCodecsExpression[] =
539 "avc1.42E00A,avc1.4D400A,avc1.64000A," \ 542 "avc1.42E00A,avc1.4D400A,avc1.64000A," \
540 "mp4a.66,mp4a.67,mp4a.68,mp4a.69,mp4a.6B,mp4a.40.2,mp4a.40.5"; 543 "mp4a.66,mp4a.67,mp4a.68,mp4a.69,mp4a.6B,mp4a.40.2,mp4a.40.5,mp4a.40.29";
541 544
542 static const MediaFormatStrict format_codec_mappings[] = { 545 static const MediaFormatStrict format_codec_mappings[] = {
543 { "video/webm", "opus,vorbis,vp8,vp8.0,vp9,vp9.0" }, 546 { "video/webm", "opus,vorbis,vp8,vp8.0,vp9,vp9.0" },
544 { "audio/webm", "opus,vorbis" }, 547 { "audio/webm", "opus,vorbis" },
545 { "audio/wav", "1" }, 548 { "audio/wav", "1" },
546 { "audio/x-wav", "1" }, 549 { "audio/x-wav", "1" },
547 { "video/ogg", "opus,theora,vorbis" }, 550 { "video/ogg", "opus,theora,vorbis" },
548 { "audio/ogg", "opus,vorbis" }, 551 { "audio/ogg", "opus,vorbis" },
549 { "application/ogg", "opus,theora,vorbis" }, 552 { "application/ogg", "opus,theora,vorbis" },
550 { "audio/mpeg", "mp3" }, 553 { "audio/mpeg", "mp3" },
(...skipping 18 matching lines...) Expand all
569 // The "mp4a" strings come from RFC 6381. 572 // The "mp4a" strings come from RFC 6381.
570 static const CodecIDMappings kUnambiguousCodecIDs[] = { 573 static const CodecIDMappings kUnambiguousCodecIDs[] = {
571 { "1", MimeUtil::PCM }, // We only allow this for WAV so it isn't ambiguous. 574 { "1", MimeUtil::PCM }, // We only allow this for WAV so it isn't ambiguous.
572 { "mp3", MimeUtil::MP3 }, 575 { "mp3", MimeUtil::MP3 },
573 { "mp4a.66", MimeUtil::MPEG2_AAC_MAIN }, 576 { "mp4a.66", MimeUtil::MPEG2_AAC_MAIN },
574 { "mp4a.67", MimeUtil::MPEG2_AAC_LC }, 577 { "mp4a.67", MimeUtil::MPEG2_AAC_LC },
575 { "mp4a.68", MimeUtil::MPEG2_AAC_SSR }, 578 { "mp4a.68", MimeUtil::MPEG2_AAC_SSR },
576 { "mp4a.69", MimeUtil::MP3 }, 579 { "mp4a.69", MimeUtil::MP3 },
577 { "mp4a.6B", MimeUtil::MP3 }, 580 { "mp4a.6B", MimeUtil::MP3 },
578 { "mp4a.40.2", MimeUtil::MPEG4_AAC_LC }, 581 { "mp4a.40.2", MimeUtil::MPEG4_AAC_LC },
579 { "mp4a.40.5", MimeUtil::MPEG4_AAC_SBRv1 }, 582 { "mp4a.40.5", MimeUtil::MPEG4_AAC_SBR_v1 },
583 { "mp4a.40.29", MimeUtil::MPEG4_AAC_SBR_PS_v2 },
580 { "vorbis", MimeUtil::VORBIS }, 584 { "vorbis", MimeUtil::VORBIS },
581 { "opus", MimeUtil::OPUS }, 585 { "opus", MimeUtil::OPUS },
582 { "vp8", MimeUtil::VP8 }, 586 { "vp8", MimeUtil::VP8 },
583 { "vp8.0", MimeUtil::VP8 }, 587 { "vp8.0", MimeUtil::VP8 },
584 { "vp9", MimeUtil::VP9 }, 588 { "vp9", MimeUtil::VP9 },
585 { "vp9.0", MimeUtil::VP9 }, 589 { "vp9.0", MimeUtil::VP9 },
586 { "theora", MimeUtil::THEORA } 590 { "theora", MimeUtil::THEORA }
587 }; 591 };
588 592
589 // List of codec IDs that are ambiguous and don't provide 593 // List of codec IDs that are ambiguous and don't provide
(...skipping 447 matching lines...) Expand 10 before | Expand all | Expand 10 after
1037 } 1041 }
1038 1042
1039 bool MimeUtil::IsCodecProprietary(Codec codec) const { 1043 bool MimeUtil::IsCodecProprietary(Codec codec) const {
1040 switch (codec) { 1044 switch (codec) {
1041 case INVALID_CODEC: 1045 case INVALID_CODEC:
1042 case MP3: 1046 case MP3:
1043 case MPEG2_AAC_LC: 1047 case MPEG2_AAC_LC:
1044 case MPEG2_AAC_MAIN: 1048 case MPEG2_AAC_MAIN:
1045 case MPEG2_AAC_SSR: 1049 case MPEG2_AAC_SSR:
1046 case MPEG4_AAC_LC: 1050 case MPEG4_AAC_LC:
1047 case MPEG4_AAC_SBRv1: 1051 case MPEG4_AAC_SBR_v1:
1052 case MPEG4_AAC_SBR_PS_v2:
1048 case H264_BASELINE: 1053 case H264_BASELINE:
1049 case H264_MAIN: 1054 case H264_MAIN:
1050 case H264_HIGH: 1055 case H264_HIGH:
1051 return true; 1056 return true;
1052 1057
1053 case PCM: 1058 case PCM:
1054 case VORBIS: 1059 case VORBIS:
1055 case OPUS: 1060 case OPUS:
1056 case VP8: 1061 case VP8:
1057 case VP9: 1062 case VP9:
(...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after
1398 post_data->append("\r\n" + value + "\r\n"); 1403 post_data->append("\r\n" + value + "\r\n");
1399 } 1404 }
1400 1405
1401 void AddMultipartFinalDelimiterForUpload(const std::string& mime_boundary, 1406 void AddMultipartFinalDelimiterForUpload(const std::string& mime_boundary,
1402 std::string* post_data) { 1407 std::string* post_data) {
1403 DCHECK(post_data); 1408 DCHECK(post_data);
1404 post_data->append("--" + mime_boundary + "--\r\n"); 1409 post_data->append("--" + mime_boundary + "--\r\n");
1405 } 1410 }
1406 1411
1407 } // namespace net 1412 } // namespace net
OLDNEW
« no previous file with comments | « net/base/host_port_pair.cc ('k') | net/base/net_errors.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698