ext/track.c in rmov-0.1.2 vs ext/track.c in rmov-0.1.3
- old
+ new
@@ -30,11 +30,11 @@
*/
static VALUE track_load(VALUE obj, VALUE movie_obj, VALUE index_obj)
{
RTRACK(obj)->track = GetMovieIndTrack(MOVIE(movie_obj), NUM2INT(index_obj));
if (!RTRACK(obj)->track)
- rb_raise(eQuicktime, "Unable to fetch track for movie at index %d", NUM2INT(index_obj));
+ rb_raise(eQuickTime, "Unable to fetch track for movie at index %d", NUM2INT(index_obj));
return obj;
}
/*
@@ -81,10 +81,12 @@
GetMediaHandlerDescription(TRACK_MEDIA(obj), &media_type, 0, 0);
if (media_type == SoundMediaType) {
return ID2SYM(rb_intern("audio"));
} else if (media_type == VideoMediaType) {
return ID2SYM(rb_intern("video"));
+ } else if (media_type == TextMediaType) {
+ return ID2SYM(rb_intern("text"));
} else {
return Qnil;
}
}
@@ -186,16 +188,57 @@
{
SetTrackOffset(TRACK(obj), TRACK_TIME(obj, seconds));
return Qnil;
}
+/*
+ call-seq: new_video_media
+
+ Creates a new video media for this track.
+
+ Generally this method is not called directly, instead you can make a
+ new video track using Movie#new_video_track.
+*/
+static VALUE track_new_video_media(VALUE obj)
+{
+ NewTrackMedia(TRACK(obj), VideoMediaType, 600, 0, 0);
+ return obj;
+}
+/*
+ call-seq: new_audio_media
+
+ Creates a new audio media for this track.
+
+ Generally this method is not called directly, instead you can make a
+ new audio track using Movie#new_audio_track.
+*/
+static VALUE track_new_audio_media(VALUE obj)
+{
+ NewTrackMedia(TRACK(obj), SoundMediaType, 44100, 0, 0);
+ return obj;
+}
+
+/*
+ call-seq: new_text_media
+
+ Creates a new text media for this track.
+
+ Generally this method is not called directly, instead you can make a
+ new text track using Movie#new_text_track.
+*/
+static VALUE track_new_text_media(VALUE obj)
+{
+ NewTrackMedia(TRACK(obj), TextMediaType, 600, 0, 0);
+ return obj;
+}
+
void Init_quicktime_track()
{
- VALUE mQuicktime;
- mQuicktime = rb_define_module("Quicktime");
- cTrack = rb_define_class_under(mQuicktime, "Track", rb_cObject);
+ VALUE mQuickTime;
+ mQuickTime = rb_define_module("QuickTime");
+ cTrack = rb_define_class_under(mQuickTime, "Track", rb_cObject);
rb_define_alloc_func(cTrack, track_new);
rb_define_method(cTrack, "load_from_movie", track_load, 2);
rb_define_method(cTrack, "raw_duration", track_raw_duration, 0);
rb_define_method(cTrack, "time_scale", track_time_scale, 0);
rb_define_method(cTrack, "frame_count", track_frame_count, 0);
@@ -207,6 +250,9 @@
rb_define_method(cTrack, "disable", track_disable, 0);
rb_define_method(cTrack, "volume", track_get_volume, 0);
rb_define_method(cTrack, "volume=", track_set_volume, 1);
rb_define_method(cTrack, "offset", track_get_offset, 0);
rb_define_method(cTrack, "offset=", track_set_offset, 1);
+ rb_define_method(cTrack, "new_video_media", track_new_video_media, 0);
+ rb_define_method(cTrack, "new_audio_media", track_new_audio_media, 0);
+ rb_define_method(cTrack, "new_text_media", track_new_text_media, 0);
}