[tracker] tracker-extract: Added support for pixel-aspect-ratio to gstreamer extractor
- From: Philip Van Hoof <pvanhoof src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker] tracker-extract: Added support for pixel-aspect-ratio to gstreamer extractor
- Date: Thu, 11 Feb 2010 12:25:32 +0000 (UTC)
commit 89c19dde87bdfdbfb99748b7da0d5e7d40863927
Author: Philip Van Hoof <philip codeminded be>
Date: Thu Feb 11 13:24:17 2010 +0100
tracker-extract: Added support for pixel-aspect-ratio to gstreamer extractor
Bugfix for NB#156571
src/tracker-extract/tracker-extract-gstreamer.c | 13 ++++++++++++-
1 files changed, 12 insertions(+), 1 deletions(-)
---
diff --git a/src/tracker-extract/tracker-extract-gstreamer.c b/src/tracker-extract/tracker-extract-gstreamer.c
index d1c770a..7e184b9 100644
--- a/src/tracker-extract/tracker-extract-gstreamer.c
+++ b/src/tracker-extract/tracker-extract-gstreamer.c
@@ -113,6 +113,7 @@ typedef struct {
gint video_fps_d;
gint audio_channels;
gint audio_samplerate;
+ gint aspect_ratio;
/* Tags and data */
GstTagList *tagcache;
@@ -398,6 +399,8 @@ extract_stream_metadata_tagreadbin (MetadataExtractor *extractor,
if (extractor->mime == EXTRACT_MIME_AUDIO) {
add_time_gst_tag (metadata, uri, "nmm:length", extractor->tagcache, GST_TAG_DURATION);
}
+ } else {
+ add_int_gst_tag (metadata, uri, "nfo:aspectRatio", extractor->tagcache, GST_TAG_PIXEL_RATIO);
}
add_int_gst_tag (metadata, uri, "nfo:height", extractor->tagcache, GST_TAG_HEIGHT);
@@ -414,6 +417,7 @@ extract_stream_metadata_decodebin (MetadataExtractor *extractor,
TrackerSparqlBuilder *metadata)
{
if (extractor->mime != EXTRACT_MIME_IMAGE) {
+
if (extractor->audio_channels >= 0) {
add_uint_info (metadata, uri, "nfo:channels", extractor->audio_channels);
}
@@ -428,6 +432,10 @@ extract_stream_metadata_decodebin (MetadataExtractor *extractor,
add_int64_info (metadata, uri, "nmm:length", extractor->duration);
}
}
+ } else {
+ if (extractor->aspect_ratio >= 0) {
+ add_uint_info (metadata, uri, "nfo:aspectRatio", extractor->aspect_ratio);
+ }
}
if (extractor->video_height >= 0) {
@@ -694,6 +702,7 @@ extract_metadata (MetadataExtractor *extractor,
add_string_gst_tag (metadata, uri, "nfo:codec", extractor->tagcache, GST_TAG_AUDIO_CODEC);
}
+
if (use_tagreadbin) {
extract_stream_metadata_tagreadbin (extractor, uri, metadata);
} else {
@@ -798,7 +807,8 @@ add_stream_tag (void *obj, void *data_)
&extractor->video_fps_n,
&extractor->video_fps_d) ) &&
(gst_structure_get_int (s, "width", &extractor->video_width)) &&
- (gst_structure_get_int (s, "height", &extractor->video_height)))) {
+ (gst_structure_get_int (s, "height", &extractor->video_height)) &&
+ (gst_structure_get_int (s, "pixel-aspect-ratio", &extractor->aspect_ratio)))) {
return;
}
}
@@ -1029,6 +1039,7 @@ tracker_extract_gstreamer (const gchar *uri,
extractor->video_fps_n = extractor->video_fps_d = -1;
extractor->video_height = extractor->video_width = -1;
extractor->audio_channels = -1;
+ extractor->aspect_ratio = -1;
extractor->audio_samplerate = -1;
if (use_tagreadbin) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]