Mercurial > pt1
comparison recpt1/tssplitter_lite.c @ 128:9e9dbb17b70f
cosmetic
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Thu, 15 Mar 2012 16:51:05 +0900 |
parents | 8e0f7191b92e |
children | 9783d247d1c9 |
comparison
equal
deleted
inserted
replaced
127:8e0f7191b92e | 128:9e9dbb17b70f |
---|---|
206 * TS 解析処理 | 206 * TS 解析処理 |
207 * | 207 * |
208 * 対象のチャンネル番号のみの PAT の再構築と出力対象 PID の抽出を行う | 208 * 対象のチャンネル番号のみの PAT の再構築と出力対象 PID の抽出を行う |
209 */ | 209 */ |
210 static int ReadTs(splitter *sp, ARIB_STD_B25_BUFFER *sbuf) | 210 static int ReadTs(splitter *sp, ARIB_STD_B25_BUFFER *sbuf) |
211 { | |
212 #if 0 | 211 #if 0 |
213 unsigned char **pat, // [out] PAT 情報(再構築後) | 212 unsigned char **pat, // [out] PAT 情報(再構築後) |
214 unsigned char* pids, // [out] 出力対象 PID 情報 | 213 unsigned char* pids, // [out] 出力対象 PID 情報 |
215 char** sid_list, // [in] 出力対象サービス ID のリスト | 214 char** sid_list, // [in] 出力対象サービス ID のリスト |
216 unsigned char* pmt_pids, // [in] 出力対象PIDのPMT PID | 215 unsigned char* pmt_pids, // [in] 出力対象PIDのPMT PID |
217 , // [in] pt1_drvの入力TS | 216 , // [in] pt1_drvの入力TS |
218 int* pmt_retain, // [in] 残すべきPMTの数 | 217 int* pmt_retain, // [in] 残すべきPMTの数 |
219 int* pmt_counter // [out] 残したPMTの数 | 218 int* pmt_counter // [out] 残したPMTの数 |
220 #endif | 219 #endif |
221 | 220 { |
222 int length = sbuf->size; | 221 int length = sbuf->size; |
223 int pid; | 222 int pid; |
224 int result = TSS_ERROR; | 223 int result = TSS_ERROR; |
225 int index; | 224 int index; |
226 int analyze_result = 0; | 225 int analyze_result = 0; |
288 if (splitter->pmt_retain == splitter->pmt_counter) { | 287 if (splitter->pmt_retain == splitter->pmt_counter) { |
289 result = TSS_SUCCESS; | 288 result = TSS_SUCCESS; |
290 for (i = 0; MAX_PID > i; i++) { | 289 for (i = 0; MAX_PID > i; i++) { |
291 if (splitter->pids[i] > 0) { | 290 if (splitter->pids[i] > 0) { |
292 splitter->pids[i] -= 1; | 291 splitter->pids[i] -= 1; |
293 } | 292 } |
294 } | 293 } |
295 fprintf(stderr, "Rescan PID End\n"); | 294 fprintf(stderr, "Rescan PID End\n"); |
296 } | 295 } |
297 | 296 |
298 return result; | 297 return result; |
348 default: | 347 default: |
349 if(0 != splitter->pmt_pids[pid]) { | 348 if(0 != splitter->pmt_pids[pid]) { |
350 //PMT | 349 //PMT |
351 if ((sptr + s_offset)[1] & 0x40) { // PES開始インジケータ | 350 if ((sptr + s_offset)[1] & 0x40) { // PES開始インジケータ |
352 // バージョンチェック | 351 // バージョンチェック |
353 for(pmts = 0; splitter->pmt_retain > pmts; pmts++) { | 352 for(pmts = 0; splitter->pmt_retain > pmts; pmts++) { |
354 if (splitter->pmt_version[pmts].pid == pid) { | 353 if (splitter->pmt_version[pmts].pid == pid) { |
355 version = splitter->pmt_version[pmts].version; | 354 version = splitter->pmt_version[pmts].version; |
356 break; | 355 break; |
357 } | 356 } |
358 } | 357 } |
359 if((version != ((sptr + s_offset)[10] & 0x3e)) | 358 if((version != ((sptr + s_offset)[10] & 0x3e)) |
360 ||(splitter->pmt_retain != splitter->pmt_counter)) { | 359 ||(splitter->pmt_retain != splitter->pmt_counter)) { |
361 // 再チェック | 360 // 再チェック |
362 result = RescanPID(splitter, sptr + s_offset); | 361 result = RescanPID(splitter, sptr + s_offset); |
363 } | 362 } |
364 } | 363 } |
365 else { | 364 else { |
366 if (splitter->pmt_retain != splitter->pmt_counter) { | 365 if (splitter->pmt_retain != splitter->pmt_counter) { |
367 // 再チェック | 366 // 再チェック |
368 result = RescanPID(splitter, sptr + s_offset); | 367 result = RescanPID(splitter, sptr + s_offset); |
395 unsigned char** pat, // [out] PAT 情報(再構築後) | 394 unsigned char** pat, // [out] PAT 情報(再構築後) |
396 unsigned char* pids, // [out] 出力対象 PID 情報 | 395 unsigned char* pids, // [out] 出力対象 PID 情報 |
397 char** sid_list, // [in] 出力対象サービス ID のリスト | 396 char** sid_list, // [in] 出力対象サービス ID のリスト |
398 unsigned char* pmt_pids, // [out] サービス ID に対応する PMT の PID | 397 unsigned char* pmt_pids, // [out] サービス ID に対応する PMT の PID |
399 int* pmt_retain // [out] 残すPMTの数 | 398 int* pmt_retain // [out] 残すPMTの数 |
400 | |
401 #endif | 399 #endif |
402 { | 400 { |
403 int pos[MAX_PID]; | 401 int pos[MAX_PID]; |
404 int service_id; | 402 int service_id; |
405 int i, j, k; | 403 int i, j, k; |