319 desc += pDecoder? pDecoder->name : tr("unknown"); |
319 desc += pDecoder? pDecoder->name : tr("unknown"); |
320 desc += "\n"; |
320 desc += "\n"; |
321 } |
321 } |
322 AVDictionaryEntry* pComment = av_dict_get(pContext->metadata, "comment", NULL, 0); |
322 AVDictionaryEntry* pComment = av_dict_get(pContext->metadata, "comment", NULL, 0); |
323 if (pComment) |
323 if (pComment) |
324 desc += QString("\n") + pComment->value; |
324 { |
|
325 // Video comment. We expect a simple key value storage in a particular format |
|
326 // and parse it here so the key names can be localized. |
|
327 desc += QString("\n"); |
|
328 QStringList strings = QString(pComment->value).split('\n'); |
|
329 QString sPlayer, sTheme, sMap, sRecord; |
|
330 for(int i=0; i < strings.count(); i++) |
|
331 { |
|
332 QString s = strings.at(i); |
|
333 // Original key names are in English, like: |
|
334 // Key: Value |
|
335 if (s.startsWith("Player: ")) |
|
336 sPlayer = QString(s.mid(8)); |
|
337 else if (s.startsWith("Theme: ")) |
|
338 sTheme = QString(s.mid(7)); |
|
339 else if (s.startsWith("Map: ")) |
|
340 sMap = QString(s.mid(5)); |
|
341 else if (s.startsWith("Record: ")) |
|
342 sRecord = QString(s.mid(8)); |
|
343 } |
|
344 if(!sPlayer.isNull()) |
|
345 desc += QString(tr("Player: %1")).arg(sPlayer) + "\n"; |
|
346 if(!sTheme.isNull()) |
|
347 desc += QString(tr("Theme: %1")).arg(sTheme) + "\n"; |
|
348 if(!sMap.isNull()) |
|
349 desc += QString(tr("Map: %1")).arg(sMap) + "\n"; |
|
350 if(!sRecord.isNull()) |
|
351 //: As in ‘recording’ |
|
352 desc += QString(tr("Record: %1")).arg(sRecord); |
|
353 } |
325 avformat_close_input(&pContext); |
354 avformat_close_input(&pContext); |
326 return desc; |
355 return desc; |
327 } |
356 } |
328 |
357 |
329 #else |
358 #else |