summaryrefslogtreecommitdiff
path: root/src/video-support/VideoMetadata.vala
blob: 02580f80ffb280c21dd1c7c2421980c5d86938b9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/* Copyright 2016 Software Freedom Conservancy Inc.
 *
 * This software is licensed under the GNU Lesser General Public License
 * (version 2.1 or later).  See the COPYING file in this distribution.
 */

public class VideoMetadata : MediaMetadata {

    private MetadataDateTime timestamp = null;
    private string title = null;
    private string comment = null;

    public VideoMetadata() {
    }

    ~VideoMetadata() {
    }

    public override void read_from_file(File file) throws Error {
        QuickTimeMetadataLoader quicktime = new QuickTimeMetadataLoader(file);
        if (quicktime.is_supported()) {
            timestamp = quicktime.get_creation_date_time();
            title = quicktime.get_title();
	        // TODO: is there an quicktime.get_comment ??
            comment = null;
            return;
        }
        AVIMetadataLoader avi = new AVIMetadataLoader(file);
        if (avi.is_supported()) {
            timestamp = avi.get_creation_date_time();
            title = avi.get_title();
            comment = null;
            return;
        }

        throw new IOError.NOT_SUPPORTED("File %s is not a supported video format", file.get_path());
    }

    public override MetadataDateTime? get_creation_date_time() {
        return timestamp;
    }

    public override string? get_title() {
        return title;
    }

    public override string? get_comment() {
        return comment;
    }

}