mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2024-11-24 12:09:55 +00:00
avformat/utils: add ff_parse_creation_time_metadata
Signed-off-by: Marton Balint <cus@passwd.hu>
This commit is contained in:
parent
f834f0cab6
commit
e942454daf
@ -554,4 +554,15 @@ int ffio_open2_wrapper(struct AVFormatContext *s, AVIOContext **pb, const char *
|
||||
*/
|
||||
void ff_format_io_close(AVFormatContext *s, AVIOContext **pb);
|
||||
|
||||
/**
|
||||
* Parse creation_time in AVFormatContext metadata if exists and warn if the
|
||||
* parsing fails.
|
||||
*
|
||||
* @param s AVFormatContext
|
||||
* @param timestamp parsed timestamp in microseconds, only set on successful parsing
|
||||
* @param return_seconds set this to get the number of seconds in timestamp instead of microseconds
|
||||
* @return 1 if OK, 0 if the metadata was not present, AVERROR(EINVAL) on parse error
|
||||
*/
|
||||
int ff_parse_creation_time_metadata(AVFormatContext *s, int64_t *timestamp, int return_seconds);
|
||||
|
||||
#endif /* AVFORMAT_INTERNAL_H */
|
||||
|
@ -4751,3 +4751,20 @@ void ff_format_io_close(AVFormatContext *s, AVIOContext **pb)
|
||||
s->io_close(s, *pb);
|
||||
*pb = NULL;
|
||||
}
|
||||
|
||||
int ff_parse_creation_time_metadata(AVFormatContext *s, int64_t *timestamp, int return_seconds)
|
||||
{
|
||||
AVDictionaryEntry *entry;
|
||||
int64_t parsed_timestamp;
|
||||
int ret;
|
||||
if ((entry = av_dict_get(s->metadata, "creation_time", NULL, 0))) {
|
||||
if ((ret = av_parse_time(&parsed_timestamp, entry->value, 0)) >= 0) {
|
||||
*timestamp = return_seconds ? parsed_timestamp / 1000000 : parsed_timestamp;
|
||||
return 1;
|
||||
} else {
|
||||
av_log(s, AV_LOG_WARNING, "Failed to parse creation_time %s\n", entry->value);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user