From 4dea247ceeec0a4022010cf476acf4ee23e390cb Mon Sep 17 00:00:00 2001 From: Philippe Saint-Pierre Date: Sun, 24 Jun 2012 20:47:39 -0400 Subject: [PATCH] ffmpeg: implement Copyright() (resolves TODO) + typo fix --- .../media/plugins/ffmpeg/AVFormatReader.cpp | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/add-ons/media/plugins/ffmpeg/AVFormatReader.cpp b/src/add-ons/media/plugins/ffmpeg/AVFormatReader.cpp index 9b3de2d213..bb12197dfc 100644 --- a/src/add-ons/media/plugins/ffmpeg/AVFormatReader.cpp +++ b/src/add-ons/media/plugins/ffmpeg/AVFormatReader.cpp @@ -17,10 +17,13 @@ #include #include #include +#include +#include extern "C" { #include "avcodec.h" #include "avformat.h" + #include "dict.h" } #include "DemuxerTable.h" @@ -1478,12 +1481,14 @@ AVFormatReader::~AVFormatReader() const char* AVFormatReader::Copyright() { -// TODO: Could not find the equivalent in libavformat >= version 53. -// Use metadata API instead! -// if (fStreams != NULL && fStreams[0] != NULL) -// return fStreams[0]->Context()->copyright; - // TODO: Return copyright of the file instead! - return "Copyright 2009, Stephan Aßmus"; + BMessage* message = new BMessage(); + if (GetMetaData(message) == B_OK) { + const char* copyright; + if (message->FindString("copyright", ©right) == B_OK) + return copyright; + } + delete message; + return ""; } @@ -1638,9 +1643,9 @@ AVFormatReader::GetMetaData(BMessage* _data) // Add program info for (unsigned i = 0; i < context->nb_programs; i++) { - BMessage progamData; - avdictionary_to_message(context->programs[i]->metadata, &progamData); - _data->AddMessage("be:program", &progamData); + BMessage programData; + avdictionary_to_message(context->programs[i]->metadata, &programData); + _data->AddMessage("be:program", &programData); } return B_OK;