⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 common.c

📁 这个库实现了录象功能
💻 C
字号:
/******************************************************************************* common.c libquicktime - A library for reading and writing quicktime/avi/mp4 files. http://libquicktime.sourceforge.net Copyright (C) 2002 Heroine Virtual Ltd. Copyright (C) 2002-2007 Members of the libquicktime project. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA*******************************************************************************/ #include <stdio.h>#include <libintl.h>#include <config.h> // ONLY for the PACKAGE macro. Usually, applications never need                    // to include config.h#include <quicktime/lqt.h>#include <quicktime/colormodels.h>#include "common.h"#define _(str) dgettext(PACKAGE, str)void quicktime_print_info(quicktime_t * qtfile)  {  char * str;  int n, i, j, channels;  const lqt_channel_t * channel_setup;  char language[4];  int frame_duration, framerate_constant;  int pixel_width, pixel_height;  int cmodel;  uint32_t timecode_flags;  int timecode_rate;    printf(_("Type: %s\n"), lqt_file_type_to_string(lqt_get_file_type(qtfile)));    str = quicktime_get_copyright(qtfile);  if (str)    printf(_("    copyright: %s\n"),str);  str = quicktime_get_name(qtfile);  if (str)    printf(_("    name:      %s\n"),str);  str = quicktime_get_info(qtfile);  if (str)    printf(_("    info:      %s\n"),str);  str = lqt_get_author(qtfile);  if (str)    printf(_("    author:    %s\n"),str);  str = lqt_get_artist(qtfile);  if (str)    printf(_("    artist:    %s\n"),str);  str = lqt_get_album(qtfile);  if (str)    printf(_("    album:     %s\n"),str);  str = lqt_get_genre(qtfile);  if (str)    printf(_("    genre:     %s\n"),str);  str = lqt_get_track(qtfile);  if (str)    printf(_("    track:     %s\n"),str);  str = lqt_get_comment(qtfile);  if (str)    printf(_("    comment:   %s\n"),str);          n = quicktime_audio_tracks(qtfile);  printf(_("  %d audio tracks.\n"), n);  for(i = 0; i < n; i++) {  channels = quicktime_track_channels(qtfile, i);  channel_setup = lqt_get_channel_setup(qtfile, i);  printf(_("    %d channels, %d bits, sample rate %ld, length %ld samples, "),         channels,         quicktime_audio_bits(qtfile, i),         quicktime_sample_rate(qtfile, i),         quicktime_audio_length(qtfile, i));  if(lqt_is_avi(qtfile))    {    printf(_("wav_id 0x%02x.\n"), lqt_get_wav_id(qtfile, i));    }  else    {    printf(_("compressor %s.\n"), quicktime_audio_compressor(qtfile, i));    }  printf(_("    Sample format: %s.\n"),         lqt_sample_format_to_string(lqt_get_sample_format(qtfile, i)));  printf(_("    Channel setup: "));  if(channel_setup)    {    for(j = 0; j < channels; j++)      {      printf(lqt_channel_to_string(channel_setup[j]));      if(j < channels-1)        printf(_(", "));      }    printf(_("\n"));    }  else    printf(_("Not available\n"));  printf(_("    Language: "));  if(lqt_get_audio_language(qtfile, i, language))    printf("%c%c%c\n", language[0], language[1], language[2]);  else    printf(_("Not available\n"));  if(quicktime_supported_audio(qtfile, i))    printf(_("    supported.\n"));  else    printf(_("    not supported.\n"));  }          n = quicktime_video_tracks(qtfile);  printf(_("  %d video tracks.\n"), n);  for(i = 0; i < n; i++)    {    frame_duration = lqt_frame_duration(qtfile, i, &framerate_constant);    lqt_get_pixel_aspect(qtfile, i, &pixel_width, &pixel_height);    printf(_("    %dx%d, depth %d\n    rate %f [%d:%d] %s\n    length %ld frames\n    compressor %s.\n"),           quicktime_video_width(qtfile, i),           quicktime_video_height(qtfile, i),           quicktime_video_depth(qtfile, i),           quicktime_frame_rate(qtfile, i),           lqt_video_time_scale(qtfile, i),           frame_duration, (framerate_constant ? _("constant") : _("not constant")),           quicktime_video_length(qtfile, i),           quicktime_video_compressor(qtfile, i));    cmodel = lqt_get_cmodel(qtfile, i);    printf(_("    Native colormodel:  %s\n"),           lqt_colormodel_to_string(cmodel));    printf(_("    Interlace mode:     %s\n"),           lqt_interlace_mode_to_string(lqt_get_interlace_mode(qtfile, i)));    if(cmodel == BC_YUV420P)      printf(_("    Chroma placement: %s\n"), lqt_chroma_placement_to_string(lqt_get_chroma_placement(qtfile, i)));    if((pixel_width > 1) || (pixel_height > 1))      printf(_("    Pixel aspect ratio: %d:%d\n"), pixel_width, pixel_height);    if(lqt_has_timecode_track(qtfile, i, &timecode_flags, &timecode_rate))      printf(_("    Timecodes available (flags: %08x, rate: %d)\n"), timecode_flags,             timecode_rate);    else      printf(_("    No timecodes available\n"));              if(quicktime_supported_video(qtfile, i))      printf(_("    supported.\n"));    else      printf(_("    not supported.\n"));    }  n = lqt_text_tracks(qtfile);  printf(_("  %d text tracks.\n"), n);  for(i = 0; i < n; i++)    {    printf(_("    timescale: %d, length: %"PRId64", language: "),           lqt_text_time_scale(qtfile, i), lqt_text_samples(qtfile, i));     if(lqt_get_text_language(qtfile, i, language))      printf("%c%c%c, ", language[0], language[1], language[2]);    else      printf(_("Not available, "));    printf(_("type: %s\n"), lqt_is_chapter_track(qtfile, i) ? _("Chapters") : _("Subtitles") );    }  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -