56
57
TotemMoviePropertiesPlugin,
57
58
totem_movie_properties_plugin)
60
/* used in update_properties_from_bvw() */
61
#define UPDATE_FROM_STRING(type, name) \
64
bacon_video_widget_get_metadata (BACON_VIDEO_WIDGET (bvw), \
66
if ((temp = g_value_get_string (&value)) != NULL) { \
67
bacon_video_widget_properties_set_label (props, name, \
70
g_value_unset (&value); \
73
#define UPDATE_FROM_INT(type, name, format, empty) \
76
bacon_video_widget_get_metadata (BACON_VIDEO_WIDGET (bvw), \
78
if (g_value_get_int (&value) != 0) \
79
temp = g_strdup_printf (gettext (format), \
80
g_value_get_int (&value)); \
82
temp = g_strdup (empty); \
83
bacon_video_widget_properties_set_label (props, name, temp); \
85
g_value_unset (&value); \
88
#define UPDATE_FROM_INT2(type1, type2, name, format) \
92
bacon_video_widget_get_metadata (BACON_VIDEO_WIDGET (bvw), \
94
x = g_value_get_int (&value); \
95
g_value_unset (&value); \
96
bacon_video_widget_get_metadata (BACON_VIDEO_WIDGET (bvw), \
98
y = g_value_get_int (&value); \
99
g_value_unset (&value); \
100
temp = g_strdup_printf (gettext (format), x, y); \
101
bacon_video_widget_properties_set_label (props, name, temp); \
106
update_properties_from_bvw (BaconVideoWidgetProperties *props,
109
GValue value = { 0, };
110
gboolean has_video, has_audio;
111
BaconVideoWidget *bvw;
113
g_return_if_fail (BACON_IS_VIDEO_WIDGET_PROPERTIES (props));
114
g_return_if_fail (BACON_IS_VIDEO_WIDGET (widget));
116
bvw = BACON_VIDEO_WIDGET (widget);
119
UPDATE_FROM_STRING (BVW_INFO_TITLE, "title");
120
UPDATE_FROM_STRING (BVW_INFO_ARTIST, "artist");
121
UPDATE_FROM_STRING (BVW_INFO_ALBUM, "album");
122
UPDATE_FROM_STRING (BVW_INFO_YEAR, "year");
123
UPDATE_FROM_STRING (BVW_INFO_COMMENT, "comment");
124
UPDATE_FROM_STRING (BVW_INFO_CONTAINER, "container");
126
bacon_video_widget_get_metadata (BACON_VIDEO_WIDGET (bvw),
127
BVW_INFO_DURATION, &value);
128
bacon_video_widget_properties_set_duration (props,
129
g_value_get_int (&value) * 1000);
130
g_value_unset (&value);
133
bacon_video_widget_get_metadata (BACON_VIDEO_WIDGET (bvw),
134
BVW_INFO_HAS_VIDEO, &value);
135
has_video = g_value_get_boolean (&value);
136
g_value_unset (&value);
138
bacon_video_widget_get_metadata (BACON_VIDEO_WIDGET (bvw),
139
BVW_INFO_HAS_AUDIO, &value);
140
has_audio = g_value_get_boolean (&value);
141
g_value_unset (&value);
143
bacon_video_widget_properties_set_has_type (props, has_video, has_audio);
146
if (has_video != FALSE)
148
UPDATE_FROM_INT2 (BVW_INFO_DIMENSION_X, BVW_INFO_DIMENSION_Y,
149
"dimensions", N_("%d x %d"));
150
UPDATE_FROM_STRING (BVW_INFO_VIDEO_CODEC, "vcodec");
151
UPDATE_FROM_INT (BVW_INFO_VIDEO_BITRATE, "video_bitrate",
152
N_("%d kbps"), C_("Stream bit rate", "N/A"));
154
bacon_video_widget_get_metadata (BACON_VIDEO_WIDGET (bvw), BVW_INFO_FPS, &value);
155
bacon_video_widget_properties_set_framerate (props, g_value_get_int (&value));
156
g_value_unset (&value);
160
if (has_audio != FALSE)
162
UPDATE_FROM_INT (BVW_INFO_AUDIO_BITRATE, "audio_bitrate",
163
N_("%d kbps"), C_("Stream bit rate", "N/A"));
164
UPDATE_FROM_STRING (BVW_INFO_AUDIO_CODEC, "acodec");
165
UPDATE_FROM_INT (BVW_INFO_AUDIO_SAMPLE_RATE, "samplerate",
166
N_("%d Hz"), C_("Sample rate", "N/A"));
167
UPDATE_FROM_STRING (BVW_INFO_AUDIO_CHANNELS, "channels");
170
#undef UPDATE_FROM_STRING
171
#undef UPDATE_FROM_INT
172
#undef UPDATE_FROM_INT2
60
178
stream_length_notify_cb (TotemObject *totem,