Skip to content

Instantly share code, notes, and snippets.

View bikegriffith's full-sized avatar

Mike Griffith bikegriffith

View GitHub Profile
[log] > loadSource:https://recordings.boxcast.com/recordings/i9kwk4ihamcz4lsga1x9/45/49/all.m3u8
08:13:21.048 logger.js:37 [log] > trigger BUFFER_RESET
08:13:21.049 logger.js:37 [log] > set autoLevelCapping:-1
08:13:21.049 logger.js:37 [log] > attachMedia
08:13:21.068 logger.js:37 [log] > manifest loaded,4 level(s) found, first bitrate:1076400
08:13:21.069 logger.js:37 [log] > startLoad(-1)
08:13:21.071 logger.js:37 [log] > switching to level 0
08:13:21.075 logger.js:37 [log] > main stream:STOPPED->IDLE
08:13:21.079 logger.js:37 [log] > audio tracks updated
08:13:21.081 logger.js:37 [log] > subtitle tracks updated
import React from 'react';
import ReactDOM from 'react-dom';
import { Events, UICorePlugin } from 'clappr';
class MyComponent extends React.Component {
render() {
return <div>Hello World!</div>
}
}
import React from 'react';
import ClapprPlayer from './clappr-player.jsx';
class HelloWorld extends React.Component {
render() {
return <div>
<h1>Hello World</h1>
<ClapprPlayer source="http://www.streambox.fr/playlists/x36xhzz/x36xhzz.m3u8" />
</div>;
}
import React from 'react';
import Clappr from 'clappr';
export default React.createClass({
propTypes: {
source: React.PropTypes.string
},
shouldComponentUpdate: function(nextProps, nextState) {
let changed = (nextProps.source != this.props.source);
pes = ((guint64) (*data++ & 0x0E)) << 29;
pes |= ((guint64) (*data++ )) << 22;
pes |= ((guint64) (*data++ & 0xFE)) << 14;
pes |= ((guint64) (*data++ )) << 7;
pes |= ((guint64) (*data++ & 0xFE)) >> 1;
if (flags & 0xC0) {
var i = 8, pts;
pts = (data[++i] & 0x0E) * 536870912
+ (data[++i] & 0xFF) * 4194304
+ (data[++i] & 0xFE) * 16384
+ (data[++i] & 0xFF) * 128
+ (data[++i] & 0xFE) / 2;
if (pes > 4294967295) {
pts -= 8589934592;
}
if (flags & 0xC0) {
var i = 8, pts;
pts = (data[++i] & 0x0E) << 27
| (data[++i] & 0xFF) << 20
| (data[++i] & 0xFE) << 12
| (data[++i] & 0xFF) << 5
| (data[++i] & 0xFE) >>> 3;
pts *= 4;
pts += (data[i] & 0x06) >>> 1;
}
@bikegriffith
bikegriffith / stathat.php
Created January 26, 2015 16:00
StatHat PHP Script
<?php
//
// Post monitored server metrics for a basic LAMP stack server to the StatHat API.
//
// This should be wired into a cron entry to run once per minute, for example:
//
// * * * * * php /path/to/stathat.php >/dev/null 2>&1
//
// NOTE: This script must be run as root.
//
@bikegriffith
bikegriffith / gist:8289025
Created January 6, 2014 20:09
Cannot create folder inside bucket with AWS SDK for PHP
$s3->putObject(['Bucket'=>'MyBucket', 'Key'=>'MyFolder/', 'Body'=>'', 'ContentLength'=>0]);
PHP Fatal error: Uncaught exception 'Guzzle\Http\Exception\CurlException' with message '[curl] 35: [url] https://s3.amazonaws.com/MyBucket/MyFolder/' in /home/mike/src/awstest/vendor/guzzle/guzzle/src/Guzzle/Http/Curl/CurlMulti.php:338
Stack trace:
#0 /home/mike/src/awstest/vendor/guzzle/guzzle/src/Guzzle/Http/Curl/CurlMulti.php(279): Guzzle\Http\Curl\CurlMulti->isCurlException(Object(Guzzle\Http\Message\EntityEnclosingRequest), Object(Guzzle\Http\Curl\CurlHandle), Array)
#1 /home/mike/src/awstest/vendor/guzzle/guzzle/src/Guzzle/Http/Curl/CurlMulti.php(244): Guzzle\Http\Curl\CurlMulti->processResponse(Object(Guzzle\Http\Message\EntityEnclosingRequest), Object(Guzzle\Http\Curl\CurlHandle), Array)
#2 /home/mike/src/awstest/vendor/guzzle/guzzle/src/Guzzle/Http/Curl/CurlMulti.php(227): Guzzle\Http\Curl\CurlMulti->processMessages()
#3 /home/mike/src/awstest/vendor/guzzle/guzzle/src/Guzzle/Http/Curl/CurlMulti.php(211): Guz