| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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 #ifndef MEDIA_BASE_MIME_UTIL_H_ | 5 #ifndef MEDIA_BASE_MIME_UTIL_H_ |
| 6 #define MEDIA_BASE_MIME_UTIL_H_ | 6 #define MEDIA_BASE_MIME_UTIL_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| 11 #include "media/base/audio_codecs.h" |
| 11 #include "media/base/media_export.h" | 12 #include "media/base/media_export.h" |
| 13 #include "media/base/video_codecs.h" |
| 12 | 14 |
| 13 namespace media { | 15 namespace media { |
| 14 | 16 |
| 15 // Check to see if a particular MIME type is in the list of | 17 // Check to see if a particular MIME type is in the list of |
| 16 // supported/recognized MIME types. | 18 // supported/recognized MIME types. |
| 17 MEDIA_EXPORT bool IsSupportedMediaMimeType(const std::string& mime_type); | 19 MEDIA_EXPORT bool IsSupportedMediaMimeType(const std::string& mime_type); |
| 18 | 20 |
| 19 // Splits various codecs into |codecs_out|, conditionally stripping the profile | 21 // Splits various codecs into |codecs_out|, conditionally stripping the profile |
| 20 // and level info when |strip| == true. For example, passed "aaa.b.c,dd.eee", if | 22 // and level info when |strip| == true. For example, passed "aaa.b.c,dd.eee", if |
| 21 // |strip| == true |codecs_out| will contain {"aaa", "dd"}, if |strip| == false | 23 // |strip| == true |codecs_out| will contain {"aaa", "dd"}, if |strip| == false |
| 22 // |codecs_out| will contain {"aaa.b.c", "dd.eee"}. | 24 // |codecs_out| will contain {"aaa.b.c", "dd.eee"}. |
| 23 // See http://www.ietf.org/rfc/rfc4281.txt. | 25 // See http://www.ietf.org/rfc/rfc4281.txt. |
| 24 MEDIA_EXPORT void SplitCodecsToVector(const std::string& codecs, | 26 MEDIA_EXPORT void SplitCodecsToVector(const std::string& codecs, |
| 25 std::vector<std::string>* codecs_out, | 27 std::vector<std::string>* codecs_out, |
| 26 bool strip); | 28 bool strip); |
| 27 | 29 |
| 30 // Returns true if successfully parsed the given |mime_type| and |codec_id|, |
| 31 // setting |out_*| arguments to the parsed video codec, profile, and level. |
| 32 // |out_is_ambiguous| will be true when the codec string is incomplete such that |
| 33 // some guessing was required to decide the codec, profile, or level. |
| 34 // Returns false if parsing fails (invalid string, or unrecognized video codec), |
| 35 // in which case values for |out_*| arguments are undefined. |
| 36 MEDIA_EXPORT bool ParseVideoCodecString(const std::string& mime_type, |
| 37 const std::string& codec_id, |
| 38 bool* out_is_ambiguous, |
| 39 VideoCodec* out_codec, |
| 40 VideoCodecProfile* out_profile, |
| 41 uint8_t* out_level, |
| 42 VideoColorSpace* out_colorspace); |
| 43 |
| 44 // Returns true if successfully parsed the given |mime_type| and |codec_id|, |
| 45 // setting |out_audio_codec| to found codec. |out_is_ambiguous| will be true |
| 46 // when the codec string is incomplete such that some guessing was required to |
| 47 // decide the codec. |
| 48 // Returns false if parsing fails (invalid string, or unrecognized audio codec), |
| 49 // in which case values for |out_*| arguments are undefined. |
| 50 MEDIA_EXPORT bool ParseAudioCodecString(const std::string& mime_type, |
| 51 const std::string& codec_id, |
| 52 bool* out_is_ambiguous, |
| 53 AudioCodec* out_codec); |
| 54 |
| 28 // Indicates that the MIME type and (possible codec string) are supported. | 55 // Indicates that the MIME type and (possible codec string) are supported. |
| 29 enum SupportsType { | 56 enum SupportsType { |
| 30 // The given MIME type and codec combination is not supported. | 57 // The given MIME type and codec combination is not supported. |
| 31 IsNotSupported, | 58 IsNotSupported, |
| 32 | 59 |
| 33 // The given MIME type and codec combination is supported. | 60 // The given MIME type and codec combination is supported. |
| 34 IsSupported, | 61 IsSupported, |
| 35 | 62 |
| 36 // There's not enough information to determine if the given MIME type and | 63 // There's not enough information to determine if the given MIME type and |
| 37 // codec combination can be rendered or not before actually trying to play it. | 64 // codec combination can be rendered or not before actually trying to play it. |
| (...skipping 22 matching lines...) Expand all Loading... |
| 60 | 87 |
| 61 // Test only method that removes proprietary media types and codecs from the | 88 // Test only method that removes proprietary media types and codecs from the |
| 62 // list of supported MIME types and codecs. These types and codecs must be | 89 // list of supported MIME types and codecs. These types and codecs must be |
| 63 // removed to ensure consistent layout test results across all Chromium | 90 // removed to ensure consistent layout test results across all Chromium |
| 64 // variations. | 91 // variations. |
| 65 MEDIA_EXPORT void RemoveProprietaryMediaTypesAndCodecsForTests(); | 92 MEDIA_EXPORT void RemoveProprietaryMediaTypesAndCodecsForTests(); |
| 66 | 93 |
| 67 } // namespace media | 94 } // namespace media |
| 68 | 95 |
| 69 #endif // MEDIA_BASE_MIME_UTIL_H_ | 96 #endif // MEDIA_BASE_MIME_UTIL_H_ |
| OLD | NEW |