亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pbc.c

?? linux下的MPEG1
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*    $Id: pbc.c,v 1.3 2005/01/01 02:43:59 rockyb Exp $    Copyright (C) 2000, 2004 Herbert Valerio Riedel <hvr@gnu.org>    This program is free software; you can redistribute it and/or modify    it under the terms of the GNU General Public License as published by    the Free Software Foundation; either version 2 of the License, or    (at your option) any later version.    This program 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 General Public License for more details.    You should have received a copy of the GNU General Public License    along with this program; if not, write to the Free Software    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA*/#ifdef HAVE_CONFIG_H# include "config.h"#endif#include <string.h>#include <stddef.h>#include <math.h>#include <cdio/cdio.h>#include <cdio/bytesex.h>/* Public headers */#include <libvcd/logging.h>#include <libvcd/files.h>#include <libvcd/types.h>#include <libvcd/info.h>/* FIXME! Make this really private. */#include <libvcd/files_private.h>/* Private headers */#include "vcd_assert.h"#include "obj.h"#include "pbc.h"#include "util.h"static const char _rcsid[] = "$Id: pbc.c,v 1.3 2005/01/01 02:43:59 rockyb Exp $";static uint8_t_wtime (int seconds){  if (seconds < 0)    return 255;  if (seconds <= 60)    return seconds;  if (seconds <= 2000)    {      double _tmp;      _tmp = seconds;      _tmp -= 60;      _tmp /= 10;      _tmp += 60;      return rint (_tmp);    }  vcd_warn ("wait time of %ds clipped to 2000s", seconds);  return 254;}static pbc_t *_vcd_pbc_byid(const VcdObj *obj, const char item_id[]){  CdioListNode *node;  _CDIO_LIST_FOREACH (node, obj->pbc_list)    {      pbc_t *_pbc = _cdio_list_node_data (node);      if (_pbc->id && !strcmp (item_id, _pbc->id))	return _pbc;    }  /* not found */  return NULL;}unsigned_vcd_pbc_lid_lookup (const VcdObj *obj, const char item_id[]){  CdioListNode *node;  unsigned n = 1;  _CDIO_LIST_FOREACH (node, obj->pbc_list)    {      pbc_t *_pbc = _cdio_list_node_data (node);      vcd_assert (n < 0x8000);      if (_pbc->id && !strcmp (item_id, _pbc->id))	return n;      n++;    }  /* not found */  return 0;}static void_set_area_helper (pbc_area_t *dest, const pbc_area_t *src, const char sel_id[]){  memset (dest, 0, sizeof (pbc_area_t));    if (src)    {      if (src->x1 || src->x2 || src->y1 || src->y2) /* not disabled */	{	  if (src->x1 >= src->x2)	    vcd_error ("selection '%s': area x1 >= x2 (%d >= %d)",		       sel_id, src->x1, src->x2);	  if (src->y1 >= src->y2)	    vcd_error ("selection '%s': area y1 >= y2 (%d >= %d)",		       sel_id, src->y1, src->y2);	}        *dest = *src;    }}enum item_type_t_vcd_pbc_lookup (const VcdObj *obj, const char item_id[]){  unsigned id;  vcd_assert (item_id != NULL);  if ((id = _vcd_pbc_pin_lookup (obj, item_id)))    {      if (id < 2)	return ITEM_TYPE_NOTFOUND;      else if (id < MIN_ENCODED_TRACK_NUM)	return ITEM_TYPE_TRACK;      else if (id < 600)	return ITEM_TYPE_ENTRY;      else if (id <= MAX_ENCODED_SEGMENT_NUM)	return ITEM_TYPE_SEGMENT;      else 	vcd_assert_not_reached ();    }  else if (_vcd_pbc_lid_lookup (obj, item_id))    return ITEM_TYPE_PBC;  return ITEM_TYPE_NOTFOUND;}uint16_t_vcd_pbc_pin_lookup (const VcdObj *obj, const char item_id[]){  int n;  CdioListNode *node;  if (!item_id)    return 0;  /* check sequence items */  n = 0;  _CDIO_LIST_FOREACH (node, obj->mpeg_sequence_list)    {      mpeg_sequence_t *_sequence = _cdio_list_node_data (node);      vcd_assert (n < 98);      if (_sequence->id && !strcmp (item_id, _sequence->id))	return n + 2;      n++;    }  /* check entry points */  n = 0;  _CDIO_LIST_FOREACH (node, obj->mpeg_sequence_list)    {      mpeg_sequence_t *_sequence = _cdio_list_node_data (node);      CdioListNode *node2;      /* default entry point */      if (_sequence->default_entry_id 	  && !strcmp (item_id, _sequence->default_entry_id))	return n + 100;      n++;      /* additional entry points */      _CDIO_LIST_FOREACH (node2, _sequence->entry_list)	{	  entry_t *_entry = _cdio_list_node_data (node2);	  vcd_assert (n < 500);	  if (_entry->id && !strcmp (item_id, _entry->id))	    return n + 100;	  n++;	}    }  /* check sequence items */  n = 0;  _CDIO_LIST_FOREACH (node, obj->mpeg_segment_list)    {      mpeg_segment_t *_segment = _cdio_list_node_data (node);      vcd_assert (n < 1980);      if (_segment->id && !strcmp (item_id, _segment->id))	return n + MIN_ENCODED_SEGMENT_NUM;      n += _segment->segment_count;    }  return 0;}bool_vcd_pbc_available (const VcdObj *obj){  vcd_assert (obj != NULL);  vcd_assert (obj->pbc_list != NULL);  if (!_cdio_list_length (obj->pbc_list))    return false;  if (!_vcd_obj_has_cap_p (obj, _CAP_PBC))    {      vcd_warn ("PBC list not empty but VCD type not capable of PBC!");      return false;    }  return true;}uint16_t_vcd_pbc_max_lid (const VcdObj *obj){  uint16_t retval = 0;    if (_vcd_pbc_available (obj))    retval = _cdio_list_length (obj->pbc_list);  return retval;}static size_t_vcd_pbc_node_length (const VcdObj *obj, const pbc_t *_pbc, bool extended){  size_t retval = 0;  if (extended)    vcd_assert (_vcd_obj_has_cap_p (obj, _CAP_PBC_X));  switch (_pbc->type)    {      int n;    case PBC_PLAYLIST:      n = _cdio_list_length (_pbc->item_id_list);      retval = __cd_offsetof (_PsdPlayListDescriptor, itemid[n]);      break;    case PBC_SELECTION:      n = _cdio_list_length (_pbc->select_id_list);      retval = __cd_offsetof (PsdSelectionListDescriptor_t, ofs[n]);      if (extended || _vcd_obj_has_cap_p (obj, _CAP_4C_SVCD))	retval += __cd_offsetof (PsdSelectionListDescriptorExtended, area[n]);      break;          case PBC_END:      retval = sizeof (PsdEndListDescriptor);      break;    default:      vcd_assert_not_reached ();      break;    }  return retval;}static uint16_t _lookup_psd_offset (const VcdObj *obj, const char item_id[], bool extended){  CdioListNode *node;  if (extended)    vcd_assert (_vcd_obj_has_cap_p (obj, _CAP_PBC_X));  /* disable it */  if (!item_id)    return PSD_OFS_DISABLED;  _CDIO_LIST_FOREACH (node, obj->pbc_list)    {      pbc_t *_pbc = _cdio_list_node_data (node);      if (!_pbc->id || strcmp (item_id, _pbc->id))	continue;	      return (extended ? _pbc->offset_ext : _pbc->offset) / INFO_OFFSET_MULT;    }  vcd_error ("PSD: referenced PSD '%s' not found", item_id);	      /* not found */  return PSD_OFS_DISABLED;}static void_vcd_pin_mark_id (const VcdObj *obj, const char _id[]){  mpeg_sequence_t *_seq;  mpeg_segment_t *_seg;  vcd_assert (obj != NULL);  if (!_id)    return;  if ((_seq = _vcd_obj_get_sequence_by_id ((VcdObj *) obj, _id)))    _seq->referenced = true;  if ((_seg = _vcd_obj_get_segment_by_id ((VcdObj *) obj, _id)))    _seg->referenced = true;}static void_vcd_pbc_mark_id (const VcdObj *obj, const char _id[]){  pbc_t *_pbc;  vcd_assert (obj != NULL);  if (!_id)    return;  _pbc = _vcd_pbc_byid (obj, _id);  if (!_pbc) /* not found */    return;  if (_pbc->referenced) /* already marked */    return;  _pbc->referenced = true;  switch (_pbc->type)    {    case PBC_PLAYLIST:      {	CdioListNode *node;		_vcd_pbc_mark_id (obj, _pbc->prev_id);	_vcd_pbc_mark_id (obj, _pbc->next_id);	_vcd_pbc_mark_id (obj, _pbc->retn_id);	_CDIO_LIST_FOREACH (node, _pbc->item_id_list)	  {	    const char *_id = _cdio_list_node_data (node);	    _vcd_pin_mark_id (obj, _id);	  }      }      break;    case PBC_SELECTION:      {	CdioListNode *node;	_vcd_pbc_mark_id (obj, _pbc->prev_id);	_vcd_pbc_mark_id (obj, _pbc->next_id);	_vcd_pbc_mark_id (obj, _pbc->retn_id);		if (_pbc->selection_type == _SEL_NORMAL)	  _vcd_pbc_mark_id (obj, _pbc->default_id);	_vcd_pbc_mark_id (obj, _pbc->timeout_id);	_vcd_pin_mark_id (obj, _pbc->item_id);	_CDIO_LIST_FOREACH (node, _pbc->select_id_list)	  {	    const char *_id = _cdio_list_node_data (node);	    _vcd_pbc_mark_id (obj, _id);	  }      }            break;    case PBC_END:      _vcd_pin_mark_id (obj, _pbc->image_id);      break;    default:      vcd_assert_not_reached ();      break;    }}void_vcd_pbc_check_unreferenced (const VcdObj *obj){  CdioListNode *node;  /* clear all flags */  _CDIO_LIST_FOREACH (node, obj->pbc_list)    {      pbc_t *_pbc = _cdio_list_node_data (node);      _pbc->referenced = false;    }  _CDIO_LIST_FOREACH (node, obj->mpeg_sequence_list)    {      mpeg_sequence_t *_sequence = _cdio_list_node_data (node);      _sequence->referenced = false;    }  _CDIO_LIST_FOREACH (node, obj->mpeg_segment_list)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲与欧洲av电影| 国产女主播视频一区二区| 国产成人亚洲精品狼色在线 | 在线视频你懂得一区二区三区| 91啪亚洲精品| 在线观看中文字幕不卡| 亚洲精品乱码久久久久久黑人| 免费看欧美美女黄的网站| 欧美三级日韩三级| 一本高清dvd不卡在线观看| 欧美一级日韩免费不卡| 国产精品久久免费看| 亚洲v日本v欧美v久久精品| 国产成人午夜精品5599| 欧美激情一区二区三区四区| 五月天激情综合| av在线不卡电影| 日韩欧美一级精品久久| 中文字幕一区二区三区不卡| 国产一二精品视频| 7777精品伊人久久久大香线蕉的 | 欧美一区二区啪啪| 老司机午夜精品| 色嗨嗨av一区二区三区| 欧美韩日一区二区三区四区| 91麻豆成人久久精品二区三区| 一级女性全黄久久生活片免费| 国产成人三级在线观看| 亚洲精品午夜久久久| 日韩精品中文字幕一区| 波多野结衣的一区二区三区| 性做久久久久久久免费看| 久久夜色精品国产噜噜av| 秋霞国产午夜精品免费视频| 国产蜜臀97一区二区三区 | 亚洲成av人片在线观看无码| 337p粉嫩大胆噜噜噜噜噜91av | 日韩综合小视频| 欧美精品自拍偷拍动漫精品| 午夜精品久久久久久久久| 久久色成人在线| 欧美另类videos死尸| 风间由美性色一区二区三区| 精品国产在天天线2019| 国产在线精品一区在线观看麻豆| 日韩视频在线你懂得| 久久99精品久久久久久国产越南| 久久综合资源网| 欧美视频三区在线播放| 青青草国产精品97视觉盛宴| 亚洲三级在线免费观看| 欧美日韩在线播放三区四区| 风间由美中文字幕在线看视频国产欧美| 一区二区不卡在线视频 午夜欧美不卡在| 欧美成人bangbros| 国产成人在线免费| 日本vs亚洲vs韩国一区三区二区 | 欧美主播一区二区三区| 国产成人免费网站| 麻豆成人综合网| 国产精品久久777777| 26uuu色噜噜精品一区| 91精品国产福利在线观看 | 丝袜亚洲另类欧美综合| 亚洲女人****多毛耸耸8| 欧美精品在线一区二区三区| 91猫先生在线| 不卡的av在线| 日韩av网站在线观看| 国产日韩一级二级三级| 日韩欧美国产一区二区三区 | 在线看不卡av| 色婷婷激情综合| 91网站在线播放| 91蜜桃在线观看| 91小视频在线免费看| 成人高清av在线| 成人av网站在线| 不卡的电视剧免费网站有什么| 国产suv精品一区二区6| 国产91清纯白嫩初高中在线观看| 国产成人免费高清| 成人黄色一级视频| 不卡av电影在线播放| 不卡的av电影| 色哟哟国产精品| 欧美无乱码久久久免费午夜一区| 欧美伊人久久久久久午夜久久久久| 91久久人澡人人添人人爽欧美| 一本久久精品一区二区| 欧美亚洲精品一区| 欧美老女人第四色| 日韩欧美亚洲国产精品字幕久久久 | 久久成人免费日本黄色| 国模冰冰炮一区二区| 国产很黄免费观看久久| 日韩电影免费在线看| 国产在线麻豆精品观看| aaa亚洲精品一二三区| 色域天天综合网| 欧美一二三区精品| 国产亚洲制服色| 精品国产伦一区二区三区观看体验| 欧美精品一区男女天堂| 国产精品视频九色porn| 26uuu国产日韩综合| 国产精品素人视频| 亚洲激情网站免费观看| 美脚の诱脚舐め脚责91| 国产99久久久国产精品免费看 | a亚洲天堂av| 欧美日韩国产精选| 日本乱人伦aⅴ精品| 欧美高清激情brazzers| 久久免费电影网| 26uuu另类欧美| 成人欧美一区二区三区小说| 亚洲欧美日韩一区二区三区在线观看| 午夜免费欧美电影| 国产成人av一区| 欧美性大战xxxxx久久久| 精品久久99ma| 亚洲精品视频免费看| 狠狠色狠狠色综合系列| 色综合视频一区二区三区高清| 日韩亚洲欧美一区| 亚洲欧洲精品天堂一级| 久久国产福利国产秒拍| 欧美最新大片在线看| 欧美成人性战久久| 一区二区三区久久| 国产黄色精品网站| 欧美一区二区三区啪啪| 亚洲乱码中文字幕综合| 国产综合色视频| 欧美高清你懂得| 亚洲蜜桃精久久久久久久| 国产综合久久久久影院| 欧美久久久久免费| 亚洲人快播电影网| 国产激情一区二区三区桃花岛亚洲| 欧美精品免费视频| 亚洲精品免费看| 成人看片黄a免费看在线| 99re成人精品视频| 欧美日韩国产成人在线91| 国产精品天天看| 奇米888四色在线精品| 91久久久免费一区二区| 国产精品乱人伦| 国产精品77777| 不卡欧美aaaaa| 欧美激情一区二区三区不卡 | 午夜精品视频在线观看| 99久久精品国产精品久久| 久久久午夜电影| 国产做a爰片久久毛片| 日韩一区二区免费在线电影 | 精品久久久久久最新网址| 视频精品一区二区| 色噜噜偷拍精品综合在线| 亚洲视频1区2区| 99re视频这里只有精品| 中文字幕免费不卡| 成人毛片视频在线观看| 日本一区二区视频在线| 国产精品99久久久久久似苏梦涵| 日韩欧美成人一区| 日本一不卡视频| 91精品国产入口| 青青草国产精品97视觉盛宴| 777久久久精品| 另类小说综合欧美亚洲| 精品少妇一区二区三区在线播放| 免费在线看成人av| 2021国产精品久久精品| 丁香激情综合国产| 国产精品美女久久久久久久| www.日韩av| 樱花草国产18久久久久| 欧美影院一区二区三区| 亚洲一区二区三区四区在线免费观看 | 色狠狠一区二区| 亚洲第四色夜色| 91精品国产91综合久久蜜臀| 美国十次综合导航| 久久亚洲二区三区| 99在线精品视频| 亚洲成人在线观看视频| 51精品秘密在线观看| 久久99精品视频| 一色屋精品亚洲香蕉网站| 在线观看亚洲精品| 天堂资源在线中文精品| 色综合天天综合给合国产| 日韩欧美自拍偷拍| 国产呦萝稀缺另类资源| 1024成人网| 波多野结衣中文字幕一区二区三区| 亚洲国产高清aⅴ视频|