{"id":13435494,"url":"https://github.com/kirushyk/gst-instruments","last_synced_at":"2025-03-18T11:31:12.647Z","repository":{"id":36348038,"uuid":"40652787","full_name":"kirushyk/gst-instruments","owner":"kirushyk","description":"Easy-to-use profiler for GStreamer","archived":false,"fork":false,"pushed_at":"2025-01-06T11:48:08.000Z","size":360,"stargazers_count":135,"open_issues_count":14,"forks_count":41,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-01-06T12:31:37.800Z","etag":null,"topics":["cpu-profiling","gst-instruments","gstreamer","gtk","memory-allocation","memory-leak","meson","multimedia","profiler","streaming","trace"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kirushyk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-08-13T10:23:32.000Z","updated_at":"2025-01-06T11:33:13.000Z","dependencies_parsed_at":"2024-10-27T18:13:41.650Z","dependency_job_id":"b7b45998-550b-4681-a6be-2f0c1da38deb","html_url":"https://github.com/kirushyk/gst-instruments","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kirushyk%2Fgst-instruments","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kirushyk%2Fgst-instruments/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kirushyk%2Fgst-instruments/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kirushyk%2Fgst-instruments/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kirushyk","download_url":"https://codeload.github.com/kirushyk/gst-instruments/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244210961,"owners_count":20416560,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpu-profiling","gst-instruments","gstreamer","gtk","memory-allocation","memory-leak","meson","multimedia","profiler","streaming","trace"],"created_at":"2024-07-31T03:00:36.187Z","updated_at":"2025-03-18T11:31:12.641Z","avatar_url":"https://github.com/kirushyk.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"# GStreamer Instruments\n\nSet of performance profiling and data flow inspection tools for GStreamer pipelines.\n\n## gst-top\n\nInspired by top and perf-top, this utility displays performance report for the particular command, analyzing GStreamer ABI calls.\n\n\t$ gst-top-1.0 gst-launch-1.0 audiotestsrc num-buffers=1000 ! vorbisenc ! vorbisdec ! fakesink\n\tSetting pipeline to PAUSED ...\n\tPipeline is PREROLLING ...\n\tRedistribute latency...\n\tPipeline is PREROLLED ...\n\tSetting pipeline to PLAYING ...\n\tNew clock: GstSystemClock\n\tGot EOS from element \"pipeline0\".\n\tExecution ended after 0:00:00.225688000\n\tSetting pipeline to PAUSED ...\n\tSetting pipeline to READY ...\n\tSetting pipeline to NULL ...\n\tFreeing pipeline ...\n\tELEMENT        %CPU   %TIME   TIME\n\tvorbisenc0      73.8   74.3    172 ms\n\tvorbisdec0      13.5   13.6   31.4 ms\n\taudiotestsrc0    8.1    8.2   18.9 ms\n\tfakesink0        4.0    4.0   9.21 ms\n\tpipeline0        0.0    0.0      0 ns\n\t$\n\n## Generating the trace file\n\nIntercepts GStreamer ABI calls and records communication between the app and GStreamer into the trace file.\n\n### macOS example\n\n    $ DYLD_INSERT_LIBRARIES=/usr/local/lib/libgstintercept.dylib \\\n        DYLD_FORCE_FLAT_NAMESPACE= \\\n        GST_DEBUG_DUMP_TRACE_DIR=. \\\n        gst-launch-1.0 audiotestsrc num-buffers=1000 ! vorbisenc ! vorbisdec ! fakesink\n    Setting pipeline to PAUSED ...\n    [...]\n    Freeing pipeline ...\n    $ ls *.gsttrace\n    pipeline0.gsttrace\n\n### Linux example\n\n    $ LD_PRELOAD=/usr/lib/libgstintercept.so \\\n        GST_DEBUG_DUMP_TRACE_DIR=. \\\n        gst-launch-1.0 audiotestsrc num-buffers=1000 ! vorbisenc ! vorbisdec ! fakesink\n    Setting pipeline to PAUSED ...\n    [...]\n    Freeing pipeline ...\n    $ ls *.gsttrace\n    pipeline0.gsttrace\n\n## gst-report\n\nGenerates performance report for input trace file.\n\n\t$ gst-report-1.0 playbin.gsttrace\n\tELEMENT               %CPU   %TIME   TIME\n\tmad0                   33.4   26.5    806 ms\n\tsource                 10.5    8.3    253 ms\n\taconv                   9.8    7.8    237 ms\n\tstreamsynchronizer0     8.4    6.6    202 ms\n\tmpegaudioparse0         8.2    6.5    197 ms\n\ttypefind                7.1    5.7    172 ms\n\tinputselector0          7.1    5.6    171 ms\n\tid3demux0               7.0    5.5    168 ms\n\tvolume                  6.9    5.5    166 ms\n\tresample                6.7    5.3    161 ms\n\tplaysink                5.9    4.7    142 ms\n\taqueue                  5.6    4.5    136 ms\n\tfakesink0               5.3    4.2    127 ms\n\tabin                    4.2    3.4    102 ms\n\turidecodebin0           0.0    0.0    161 us\n\tconv                    0.0    0.0   20.0 us\n\taudiotee                0.0    0.0      0 ns\n\tidentity                0.0    0.0      0 ns\n\tdecodebin0              0.0    0.0      0 ns\n\tplaybin                 0.0    0.0      0 ns\n\t$\n\nYou can generate performance graph in DOT format:\n\n\tgst-report-1.0 --dot playbin.gsttrace | dot -Tsvg \u003e perf.svg\n\n## License\n\nCopyright \u0026copy; 2015 Kyrylo Polezhaiev. All rights reserved.\n\n**gst-instruments** is released under the [LGPL](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkirushyk%2Fgst-instruments","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkirushyk%2Fgst-instruments","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkirushyk%2Fgst-instruments/lists"}