00001 #include "funcprotos.h"
00002 #include "quicktime.h"
00003
00004 void quicktime_mdhd_init(quicktime_mdhd_t *mdhd)
00005 {
00006 mdhd->version = 0;
00007 mdhd->flags = 0;
00008 mdhd->creation_time = quicktime_current_time();
00009 mdhd->modification_time = quicktime_current_time();
00010 mdhd->time_scale = 0;
00011 mdhd->duration = 0;
00012 mdhd->language = 0;
00013 mdhd->quality = 100;
00014 }
00015
00016 void quicktime_mdhd_init_video(quicktime_t *file,
00017 quicktime_mdhd_t *mdhd,
00018 int frame_w,
00019 int frame_h,
00020 float frame_rate)
00021 {
00022 mdhd->time_scale = quicktime_get_timescale(frame_rate);
00023
00024 mdhd->duration = 0;
00025 }
00026
00027 void quicktime_mdhd_init_audio(quicktime_mdhd_t *mdhd,
00028 int sample_rate)
00029 {
00030 mdhd->time_scale = sample_rate;
00031 mdhd->duration = 0;
00032 }
00033
00034 void quicktime_mdhd_delete(quicktime_mdhd_t *mdhd)
00035 {
00036 }
00037
00038 void quicktime_read_mdhd(quicktime_t *file, quicktime_mdhd_t *mdhd)
00039 {
00040 mdhd->version = quicktime_read_char(file);
00041 mdhd->flags = quicktime_read_int24(file);
00042 mdhd->creation_time = quicktime_read_int32(file);
00043 mdhd->modification_time = quicktime_read_int32(file);
00044 mdhd->time_scale = quicktime_read_int32(file);
00045 mdhd->duration = quicktime_read_int32(file);
00046 mdhd->language = quicktime_read_int16(file);
00047 mdhd->quality = quicktime_read_int16(file);
00048 }
00049
00050 void quicktime_mdhd_dump(quicktime_mdhd_t *mdhd)
00051 {
00052 printf(" media header\n");
00053 printf(" version %d\n", mdhd->version);
00054 printf(" flags %d\n", mdhd->flags);
00055 printf(" creation_time %u\n", mdhd->creation_time);
00056 printf(" modification_time %u\n", mdhd->modification_time);
00057 printf(" time_scale %d\n", mdhd->time_scale);
00058 printf(" duration %d\n", mdhd->duration);
00059 printf(" language %d\n", mdhd->language);
00060 printf(" quality %d\n", mdhd->quality);
00061 }
00062
00063 void quicktime_write_mdhd(quicktime_t *file, quicktime_mdhd_t *mdhd)
00064 {
00065 quicktime_atom_t atom;
00066 quicktime_atom_write_header(file, &atom, "mdhd");
00067
00068 quicktime_write_char(file, mdhd->version);
00069 quicktime_write_int24(file, mdhd->flags);
00070 quicktime_write_int32(file, mdhd->creation_time);
00071 quicktime_write_int32(file, mdhd->modification_time);
00072 quicktime_write_int32(file, mdhd->time_scale);
00073 quicktime_write_int32(file, mdhd->duration);
00074 quicktime_write_int16(file, mdhd->language);
00075 quicktime_write_int16(file, mdhd->quality);
00076
00077 quicktime_atom_write_footer(file, &atom);
00078 }
00079