use new metadata API in nut demuxer

Originally committed as revision 17652 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Aurelien Jacobs 2009-02-27 23:10:34 +00:00
parent c27516003f
commit 00798e4563

View File

@ -20,6 +20,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include <strings.h>
#include "libavutil/avstring.h"
#include "libavutil/bswap.h"
#include "libavutil/tree.h"
@ -395,6 +396,7 @@ static int decode_info_header(NUTContext *nut){
char name[256], str_value[1024], type_str[256];
const char *type;
AVChapter *chapter= NULL;
AVStream *st= NULL;
end= get_packetheader(nut, bc, 1, INFO_STARTCODE);
end += url_ftell(bc);
@ -410,7 +412,8 @@ static int decode_info_header(NUTContext *nut){
chapter= ff_new_chapter(s, chapter_id,
nut->time_base[chapter_start % nut->time_base_count],
start, start + chapter_len, NULL);
}
} else if(stream_id_plus1)
st= s->streams[stream_id_plus1 - 1];
for(i=0; i<count; i++){
get_str(bc, name, sizeof(name));
@ -440,21 +443,16 @@ static int decode_info_header(NUTContext *nut){
continue;
}
if(chapter_id==0 && !strcmp(type, "UTF-8")){
if (!strcmp(name, "Author"))
av_strlcpy(s->author , str_value, sizeof(s->author));
else if(!strcmp(name, "Title"))
av_strlcpy(s->title , str_value, sizeof(s->title));
else if(!strcmp(name, "Copyright"))
av_strlcpy(s->copyright, str_value, sizeof(s->copyright));
else if(!strcmp(name, "Description"))
av_strlcpy(s->comment , str_value, sizeof(s->comment));
else if(!strcmp(name, "Disposition"))
if(!strcmp(type, "UTF-8")){
AVMetadata **metadata = NULL;
if(chapter_id==0 && !strcmp(name, "Disposition"))
set_disposition_bits(s, str_value, stream_id_plus1 - 1);
}
if(chapter && !strcmp(type, "UTF-8")){
if(!strcmp(name, "Title"))
chapter->title= av_strdup(str_value);
else if(chapter) metadata= &chapter->metadata;
else if(stream_id_plus1) metadata= &st->metadata;
else metadata= &s->metadata;
if(metadata && strcasecmp(name,"Uses")
&& strcasecmp(name,"Depends") && strcasecmp(name,"Replaces"))
av_metadata_set(metadata, name, str_value);
}
}