Skip to content

Instantly share code, notes, and snippets.

View tchakabam's full-sized avatar

Stephan Hesse tchakabam

View GitHub Profile
@tchakabam
tchakabam / git-log-tags-deco.sh
Created August 29, 2022 19:39
Git command list tags in log order with date and commit hash (formatting adaptable at wish)
git log --tags --format="%ai %h %d" --decorate --simplify-by-decoration
# https://git-scm.com/docs/pretty-formats#_pretty_formats
@tchakabam
tchakabam / web-audio-api-resources.md
Last active November 6, 2018 13:46
WebAudio API learning material
@tchakabam
tchakabam / hls-m3u8-parser.java
Created August 23, 2018 13:34
HLS M3u8 parser in plain standard Java
/**
*
* @author Stephan Hesse <tchakabam@gmail.com>
* Copyright (c) 2018
*
* Java M3u8 Parser
*
*/
/**
@tchakabam
tchakabam / Logger.ts
Created August 16, 2018 16:22
Categorized and leveled logger in Typescript
/**
*
* Categorized `Logger` in Typescript
* @author Stephan Hesse <tchakabam@gmail.com>
* @copyright 2018, 2017
*
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@tchakabam
tchakabam / log.txt
Created August 7, 2018 22:21
avfassetsrc deadlock
WARNING: no real random source present!
0:00:00.097867000 50087 0x7ffbea8662f0 LOG   playbin gstplaybin2.c:3020:void gst_play_bin_deep_element_added(GstBin *, GstBin *, GstElement *):<GstPlayBin@0x7ffbe9a30240> element <playsink> was added to <GstPlayBin@0x7ffbe9a30240>
0:00:00.097966000 50087 0x7ffbea8662f0 LOG   playbin gstplaybin2.c:3020:void gst_play_bin_deep_element_added(GstBin *, GstBin *, GstElement *):<GstPlayBin@0x7ffbe9a30240> element <streamsynchronizer0> was added to <playsink>
0:00:00.098131000 50087 0x7ffbea8662f0 LOG   playsink gstplaysink.c:976:void gst_play_sink_set_filter(GstPlaySink *, GstPlaySinkType, GstElement *):<playsink> Setting filter <scaletempo0> as filter type 0
0:00:00.098141000 50087 0x7ffbea8662f0 LOG   playsink gstplaysink.c:978:void gst_play_sink_set_filter(GstPlaySink *, GstPlaySinkType,
@tchakabam
tchakabam / buffer-switch-streams.html
Last active August 16, 2018 16:23
Example / Benchmark for switching MSE SourceBuffers content while playing
<!--
*
* Example / Benchmark for switching MSE SourceBuffers content while playing
*
* Logs time needed for operations to browser console
*
* Replace the MEDIA_LIST array with resources present in your environment (fragmented mp4s with video expected)
*
*
@tchakabam
tchakabam / bandwidth_limiter.bash
Created November 21, 2016 14:23
Bandwidth / latency limiter for player development in Mac OSX
#!/bin/bash
#
# author: Stephan Hesse (disparat@gmail.com)
#
echo ""
echo "************ tape.tv CDN testing tool *************"
echo ""
echo "Author: Stephan Hesse <disparat@gmail.com>"
echo ""
var Hls = require('hls.js');
var P2PWrapper = require('hlsjs-p2p-wrapper');
...
// creating Hls.js instance via wrapper vs classic instantiation via constructor
var hls = withP2P ? new P2PWrapper(Hls).createPlayer(myHlsjsConfig, myP2PConfig) : new Hls(myHlsjsConfig);
#include <glib.h>
#include <gst.h>
#include <gst/app/gstappsink.h>
#define DEFAULT_PORT 5000
typedef void (*received_frame) (RtpReceiver* r, unsigned char* data, gsize size, gboolean eos) RtpReceiverCallback;
typedef struct _RtpReceiver {
@tchakabam
tchakabam / gist:11d1bb0f76d669a196ee
Created March 31, 2015 12:36
Using MediaCodec through GStreamer (gst-amcaudiodec) crashes in SoftFFmpegAudioDecoder::openDecoder
D/SoftFFmpegAudio(16716): SoftFFmpegAudio component: OMX.ffmpeg.mp3.decoder mMode: 2 mHighResAudioEnabled: 1
D/GStreamer+amcaudiodec(16716): 0:00:03.098108904 0x77ebb380 gstamcaudiodec.c:391:gst_amc_audio_dec_open:<amcaudiodec-omxffmpegmp3decoder0> Opened decoder
I/GStreamer+hlsdemux(16716): 0:00:03.098907446 0x77ebb380 gsthlsdemux.c:554:gst_hls_demux_src_query:<hlsdemux0> GST_QUERY_DURATION returns FALSE with duration 99:99:99.999999999
I/GStreamer+hlsdemux(16716): 0:00:03.099356196 0x77ebb380 gsthlsdemux.c:571:gst_hls_demux_src_query:<hlsdemux0> Received GST_QUERY_SEEKING with format 2
I/GStreamer+hlsdemux(16716): 0:00:03.099506612 0x77ebb380 gsthlsdemux.c:554:gst_hls_demux_src_query:<hlsdemux0> GST_QUERY_DURATION returns TRUE with duration 0:02:51.203588000
D/GStreamer+amcaudiodec(16716): 0:00:03.100511716 0x77ebb430 gstamcaudiodec.c:926:gst_amc_audio_dec_set_format:<amcaudiodec-omxffmpegmp3decoder0> Setting new caps audio/mpeg, mpegversion=(int)1, mpegaudioversion=(int)1, layer=(int)3, rate=(int)44100, ch