mdhd.c
上传用户:luping1608
上传日期:2007-01-06
资源大小:38k
文件大小:2k
源码类别:

多媒体

开发平台:

Unix_Linux

  1. #include "quicktime.h"
  2. int quicktime_mdhd_init(quicktime_mdhd_t *mdhd)
  3. {
  4. mdhd->version = 0;
  5. mdhd->flags = 0;
  6. mdhd->creation_time = quicktime_current_time();
  7. mdhd->modification_time = quicktime_current_time();
  8. mdhd->time_scale = 0;
  9. mdhd->duration = 0;
  10. mdhd->language = 0;
  11. mdhd->quality = 0;
  12. }
  13. int quicktime_mdhd_init_video(quicktime_t *file, 
  14. quicktime_mdhd_t *mdhd, 
  15. int frame_w,
  16. int frame_h, 
  17. float frame_rate)
  18. {
  19. mdhd->time_scale = quicktime_get_timescale(frame_rate);
  20. mdhd->duration = 0;      // set this when closing
  21. }
  22. int quicktime_mdhd_init_audio(quicktime_t *file, 
  23. quicktime_mdhd_t *mdhd, 
  24. int channels, 
  25. int sample_rate, 
  26. int bits, 
  27. char *compressor)
  28. {
  29. mdhd->time_scale = sample_rate;
  30. mdhd->duration = 0;      // set this when closing
  31. }
  32. quicktime_mdhd_delete(quicktime_mdhd_t *mdhd)
  33. {
  34. }
  35. int quicktime_read_mdhd(quicktime_t *file, quicktime_mdhd_t *mdhd)
  36. {
  37. mdhd->version = quicktime_read_char(file);
  38. mdhd->flags = quicktime_read_int24(file);
  39. mdhd->creation_time = quicktime_read_int32(file);
  40. mdhd->modification_time = quicktime_read_int32(file);
  41. mdhd->time_scale = quicktime_read_int32(file);
  42. mdhd->duration = quicktime_read_int32(file);
  43. mdhd->language = quicktime_read_int16(file);
  44. mdhd->quality = quicktime_read_int16(file);
  45. }
  46. int quicktime_mdhd_dump(quicktime_mdhd_t *mdhd)
  47. {
  48. printf("   media headern");
  49. printf("    version %dn", mdhd->version);
  50. printf("    flags %dn", mdhd->flags);
  51. printf("    creation_time %un", mdhd->creation_time);
  52. printf("    modification_time %un", mdhd->modification_time);
  53. printf("    time_scale %dn", mdhd->time_scale);
  54. printf("    duration %dn", mdhd->duration);
  55. printf("    language %dn", mdhd->language);
  56. printf("    quality %dn", mdhd->quality);
  57. }
  58. int quicktime_write_mdhd(quicktime_t *file, quicktime_mdhd_t *mdhd)
  59. {
  60. quicktime_atom_t atom;
  61. quicktime_atom_write_header(file, &atom, "mdhd");
  62. quicktime_write_char(file, mdhd->version);
  63. quicktime_write_int24(file, mdhd->flags);
  64. quicktime_write_int32(file, mdhd->creation_time);
  65. quicktime_write_int32(file, mdhd->modification_time);
  66. quicktime_write_int32(file, mdhd->time_scale);
  67. quicktime_write_int32(file, mdhd->duration);
  68. quicktime_write_int16(file, mdhd->language);
  69. quicktime_write_int16(file, mdhd->quality);
  70. quicktime_atom_write_footer(file, &atom);
  71. }