mkvparser: read track language information
Track::GetLanguageAsUTF8 is implemented to allow the user to choose between available audio and subtitle tracks. Change-Id: I5ec9b1c1c00182da759681ba486cbace46e9b63f
This commit is contained in:
		 Patrik Carlsson
					Patrik Carlsson
				
			
				
					committed by
					
						 Johan Redestig
						Johan Redestig
					
				
			
			
				
	
			
			
			 Johan Redestig
						Johan Redestig
					
				
			
						parent
						
							1274be1184
						
					
				
				
					commit
					3980cf4159
				
			| @@ -5440,6 +5440,7 @@ long Track::Create( | ||||
|  | ||||
| Track::Info::Info(): | ||||
|     nameAsUTF8(NULL), | ||||
|     language(NULL), | ||||
|     codecId(NULL), | ||||
|     codecNameAsUTF8(NULL), | ||||
|     codecPrivate(NULL), | ||||
| @@ -5457,6 +5458,9 @@ void Track::Info::Clear() | ||||
|     delete[] nameAsUTF8; | ||||
|     nameAsUTF8 = NULL; | ||||
|  | ||||
|     delete[] language; | ||||
|     language = NULL; | ||||
|  | ||||
|     delete[] codecId; | ||||
|     codecId = NULL; | ||||
|  | ||||
| @@ -5516,6 +5520,9 @@ int Track::Info::Copy(Info& dst) const | ||||
|     if (int status = CopyStr(&Info::nameAsUTF8, dst)) | ||||
|         return status; | ||||
|  | ||||
|     if (int status = CopyStr(&Info::language, dst)) | ||||
|         return status; | ||||
|  | ||||
|     if (int status = CopyStr(&Info::codecId, dst)) | ||||
|         return status; | ||||
|  | ||||
| @@ -5570,6 +5577,11 @@ const char* Track::GetNameAsUTF8() const | ||||
|     return m_info.nameAsUTF8; | ||||
| } | ||||
|  | ||||
| const char* Track::GetLanguage() const | ||||
| { | ||||
|     return m_info.language; | ||||
| } | ||||
|  | ||||
| const char* Track::GetCodecNameAsUTF8() const | ||||
| { | ||||
|     return m_info.codecNameAsUTF8; | ||||
| @@ -6607,6 +6619,17 @@ long Tracks::ParseTrackEntry( | ||||
|             if (status) | ||||
|                 return status; | ||||
|         } | ||||
|         else if (id == 0x02B59C)  //Track Language | ||||
|         { | ||||
|             const long status = UnserializeString( | ||||
|                                     pReader, | ||||
|                                     pos, | ||||
|                                     size, | ||||
|                                     info.language); | ||||
|  | ||||
|             if (status) | ||||
|                 return status; | ||||
|         } | ||||
|         else if (id == 0x06)  //CodecID | ||||
|         { | ||||
|             const long status = UnserializeString( | ||||
|   | ||||
| @@ -334,6 +334,7 @@ public: | ||||
|     long GetNumber() const; | ||||
|     unsigned long long GetUid() const; | ||||
|     const char* GetNameAsUTF8() const; | ||||
|     const char* GetLanguage() const; | ||||
|     const char* GetCodecNameAsUTF8() const; | ||||
|     const char* GetCodecId() const; | ||||
|     const unsigned char* GetCodecPrivate(size_t&) const; | ||||
| @@ -362,6 +363,7 @@ public: | ||||
|         long number; | ||||
|         unsigned long long uid; | ||||
|         char* nameAsUTF8; | ||||
|         char* language; | ||||
|         char* codecId; | ||||
|         char* codecNameAsUTF8; | ||||
|         unsigned char* codecPrivate; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user