Mercurial > pt1.oyama
diff src/tssplitter_lite.c @ 143:e72dd5e8d53f
Number of samples per ADTS packet instead of 1000 and 1024.
author | Naoya OYAMA <naoya.oyama@gmail.com> |
---|---|
date | Sun, 29 Jul 2012 23:16:30 +0900 |
parents | 9c7bc6c0327e |
children | 066f33b2213a |
line wrap: on
line diff
--- a/src/tssplitter_lite.c Sun Jul 29 22:56:53 2012 +0900 +++ b/src/tssplitter_lite.c Sun Jul 29 23:16:30 2012 +0900 @@ -3,7 +3,7 @@ /* tssplitter_lite.c -- split TS stream. Copyright 2009 querulous - Copyright 2010 Naoya OYAMA <naoya.oyama@gmail.com> + Copyright 2010-2012 Naoya OYAMA <naoya.oyama@gmail.com> 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 @@ -1600,8 +1600,8 @@ * オーディオをファイル出力し始める条件(1. 2. を満たすこと) * 1. 動画の蓄積は開始されている * 2. 動画のGOPの1番目のIピクチャのPTSとオーディオのPTSを比較して以下のどちらかを満たすこと - * 2.1. 差分が11msec以内(1000*90k/AACのサンプリング周波数) - * 1000 : ADTSデータの1フレームのサンプル数 + * 2.1. 差分が11msec以内(1024*90k/AACのサンプリング周波数) + * 1024 : ADTSデータの1フレームのサンプル数 * 90k : PTSの周波数 * 2.2. 過ぎている(過ぎている場合はオーディオESの蓄積の継続と次のGOP狙いにする?) * #動画よりオーディオ側の方が先にESバッファの蓄積を始めるハズなので気にすること無いかなぁ… @@ -1621,7 +1621,7 @@ audio_lipsync_offset = 0; audio_pts = esbuf->pts; adts_freq = AnalyzeAdifHeader(esbuf); - adts_frame_time = (int64_t)((float)1000*90000/adts_freq); /* PTSは90KHz */ + adts_frame_time = (int64_t)((float)1024*90000/adts_freq); /* PTSは90KHz */ /* オーディオをフレーム単位で捨ててPTSを進める */ while ( (esbuf->Program->video_pts > audio_pts +adts_frame_time/2) ) { /* オーディオデータを捨てると audio_pts は1フレーム分大きくなる */