Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Apr 25 2018 07:30
    hirohitokato closed #6
  • Oct 20 2017 05:16

    hirohitokato on master

    Update README.md (compare)

  • Oct 20 2017 05:15

    hirohitokato on master

    Update README.md (compare)

  • Oct 20 2017 02:51
    hirohitokato closed #8
  • Oct 20 2017 02:51
    hirohitokato commented #8
  • Oct 20 2017 02:50
    hirohitokato closed #7
  • Oct 20 2017 02:50
    hirohitokato commented #7
  • Oct 19 2017 11:15

    hirohitokato on 0.6.0

    (compare)

  • Oct 19 2017 11:14

    hirohitokato on v0.6.1

    (compare)

  • Oct 19 2017 11:14

    hirohitokato on 0.8.0

    (compare)

  • Oct 19 2017 11:13

    hirohitokato on master

    Bump the version, update README… (compare)

  • Oct 19 2017 11:07

    hirohitokato on swift4

    (compare)

  • Oct 19 2017 11:07

    hirohitokato on master

    Update build setting to swift4 protocol `Printable,DebugPrinta… `CMSampleBufferRef` to `CMSampl… and 29 more (compare)

  • Oct 19 2017 11:07
    hirohitokato closed #9
  • Oct 19 2017 11:07
    hirohitokato assigned #9
  • Oct 19 2017 11:07
    hirohitokato opened #9
  • Oct 19 2017 11:06

    hirohitokato on swift4

    Resolve fatal error(1): Add pri… Reconnect IBActions Update copyright year and 1 more (compare)

  • Oct 19 2017 10:35

    hirohitokato on swift4

    Update build setting to swift4 protocol `Printable,DebugPrinta… `CMSampleBufferRef` to `CMSampl… and 24 more (compare)

  • Jun 08 2017 07:51
    iosfitness opened #8
  • Nov 30 2015 18:44
    jainanshul commented #7
Hirohito Kato
@hirohitokato
ビルドが通らないっていうのは、どのあたりでしょうか。こちらではライブラリ・アプリ共に通っているので謎です。私の今の環境のように、もう1回ビルドすると通ったりしないですか。
あ、ちょっと分かりかけたので見てみます。
Norio Nomura
@norio-nomura
試してるのは 1280e8aed59bfce549c4da7eb8ddc3152e2c0ab3 で
/Users/norio/Documents/workspace/github/SimpleGaplessPlayer/HKLAVGaplessPlayer/HKLAVGaplessPlayer/StreamFrameProducer.swift:413:5: warning: declaring a public instance method for an internal class
    public func getPositionOf(position:Float) -> (index:Int, time:CMTime)? {
    ^~~~~~
    internal
/Users/norio/Documents/workspace/github/SimpleGaplessPlayer/HKLAVGaplessPlayer/HKLAVGaplessPlayer/StreamFrameProducer.swift:412:1: error: extension of internal class cannot be declared public
public extension StreamFrameProducer {
^~~~~~
Hirohito Kato
@hirohitokato
う”、すみません、底にちょうど気付きました。デバッグで外出ししていたのをコミットしていました…
Norio Nomura
@norio-nomura
通った。
Hirohito Kato
@hirohitokato
すみませんすみません
Norio Nomura
@norio-nomura
:+1:
Norio Nomura
@norio-nomura
親方たちのSwift本にnumericCast()って記述ある?
Hirohito Kato
@hirohitokato
PDFを検索してみましたが、ないようです。何か気になったところがあるのですか?
Norio Nomura
@norio-nomura
数値の型をキャストするときに、文脈から期待される型に変換する関数らしい。
Hirohito Kato
@hirohitokato
無理な変換しようとすると実行時エラーになるようですね。使いどころがありそうで、むしろ明示的に指定すべきシチュエーションの方が多そうなのでなさそうな。
Norio Nomura
@norio-nomura
将来のSwiftの仕様変更に強くなるかもね。と思ったけど、そんな大きな仕様変更はもうなさそうな気がする。Appleの開発部隊には今まで必要だったと想像。
Hirohito Kato
@hirohitokato

メモ:
カメラで撮影したムービーでも、時折、アセットにtrackが何もないという事態に陥ることがあるようです。

Documents内に保存したムービーをOrganizerのDownload containerで手に入れてみると、問題なくQT Player Xで再生できて、なおかつ検証用の別アプリでそのムービーを読むと、普通に読めるという謎の事態。問題が発生しているときは、何度そのプロパティにアクセスしても読めないのに。

もしかしたらAVAssetから作り直さないとダメかも、と書いていて気付きました。

Hirohito Kato
@hirohitokato
予想は当たっていて、AVAssetから作り直すとうまく読み込んでくれました。
Norio Nomura
@norio-nomura
勘違いしてました。シリアルキューはメインスレッドで実行されるのですね(今更)
Hirohito Kato
@hirohitokato
やや、シリアルキューをインスタンス化時に作っていて、そいつに全部流し込むようにしてますよ?
Norio Nomura
@norio-nomura
作成したシリアルキューはメインスレッドで実行されてるように見えます。
Instrumentsでもデバッガでも
iOS 7.1.2でも同じだった。
Hirohito Kato
@hirohitokato
えーっ?!後で私も確認してみます…。
Norio Nomura
@norio-nomura
iOS 6.1.3も…
Norio Nomura
@norio-nomura
わかった。dispatch_sync()だと呼び出し側スレッドで実行されて、dispatch_async()だと別スレッドになるんだ。これはシリアルでもコンカレントでも同じ。
なのでシリアルキューを使ったからといって、一つのスレッドで実行されるようにはならないぽい。
Norio Nomura
@norio-nomura
どちらにしても、ずっと誤解してた。
Hirohito Kato
@hirohitokato
あぁ、私も勘違いしていました。。。
Norio Nomura
@norio-nomura
libdispatch-442.1.4のソースを読んでました。
dispatch_queue_tには「特定のスレッドで実行する」っていう属性があって、それらにたいしてdispatch_sync()した場合は、ちゃんとそのスレッドで実行されます。
その属性を持つキューはソースを読む限りでは"com.apple.main-thread”, "com.apple.libdispatch-manager”, "runloop-queue”の3つ。

なので

dispatch_sync(dispatch_get_main_queue()){
  // メインスレッドで実行したい!
}

はメインスレッドで実行されます。

Norio Nomura
@norio-nomura
ツイッターにも書いた
Norio Nomura
@norio-nomura
dispatch_sync()の話は「SimpleGaplessPlayer.appはほとんどメインスレッドで動いてるけど何故?」からでした。
Hirohito Kato
@hirohitokato
音沙汰なくすみません。dispatch_queue_create()で作るキューは、スレッドを決めるものではなく、識別子程度に捉えた方がよさそうだと分かりました。copyNextSampleBuffer()が必要なときに時間をかけて、なおかつメインスレッドで実行するのはもったいないので、先読みするワーカースレッドを1個作るようにしてみます。とても参考になります。
Hirohito Kato
@hirohitokato
katokichisoft/SimpleGaplessPlayer@e413844 でひとまず別スレッドに逃がしました。もう少し進めますが、ひとまずご報告です。
Norio Nomura
@norio-nomura
本命のプロジェクトの方でどれくらいメインスレッドに負荷がかかるのか知らないのでなんとも言えませんが、displayLinkのrunloopごと移せないのなら、copyNextSampleBufferを無理に別スレッドへ持って行く必要はない気がします。OpenGLによる描画をメインスレッド以外から出来るなら移せると思うけど。
Hirohito Kato
@hirohitokato
ありがとうございます。描画が結構重いようなので、可能なものは可能な限り背後に回したいところです。とはいえ効果のないことをしてもしょうがないのも確かですので、アドバイスに従って、今のソースでまたパフォーマンスを調べてみます。
Norio Nomura
@norio-nomura
ここでEXC_BREAKPOINT
Hirohito Kato
@hirohitokato
うわ、またもやすみません…
Norio Nomura
@norio-nomura
テンプレートに入れるbenchmark更新した。
Hirohito Kato
@hirohitokato
おお、また参考にします!
Norio Nomura
@norio-nomura
Swift 1.2対応はブランチ切った方が良いのでは。
Hirohito Kato
@hirohitokato
深く考えずにコミットを重ねてしまいました…。1.1と1.2両方のメンテナンスは大変なので、大して知られていない今のうちに、1.2に上げてしまいたいところです。
Norio Nomura
@norio-nomura
Swift 1.2がいつリリースなのか。とりあえず、Apple Watchのリリースには間に合わないと考えるのが普通だよね。
Hirohito Kato
@hirohitokato
はい、WWDCあたりかなあと思います。
Norio Nomura
@norio-nomura
WWDC15でSwift 2.0のベータが始まって…
Hirohito Kato
@hirohitokato
しかも1.2のソースがコンパイルできないという流れですね…
Norio Nomura
@norio-nomura
w
Norio Nomura
@norio-nomura
おや?bitbucket移行?
Hirohito Kato
@hirohitokato
remoteにBitBucketを追加しただけですー。で、そっちのREADMEエディタで軽く編集したら、そういうコメントが残ってしまったというw
Norio Nomura
@norio-nomura
なるほど。
Carthage compatibleバッジ決まったぽいよ。
Carthage/Carthage#179
Carthage compatible