mirror of
https://github.com/zotanmew/nginx-rtmp-module.git
synced 2024-05-19 01:31:09 +02:00
Merge pull request #5 from berg/parse-scaling-list
Parse scaling list from SPS
This commit is contained in:
commit
859540db60
|
@ -359,7 +359,8 @@ ngx_rtmp_codec_parse_avc_header(ngx_rtmp_session_t *s, ngx_chain_t *in)
|
|||
{
|
||||
ngx_uint_t profile_idc, width, height, crop_left, crop_right,
|
||||
crop_top, crop_bottom, frame_mbs_only, n, cf_idc,
|
||||
num_ref_frames;
|
||||
num_ref_frames, sl_size, sl_index, sl_udelta;
|
||||
ngx_int_t sl_last, sl_next, sl_delta;
|
||||
ngx_rtmp_codec_ctx_t *ctx;
|
||||
ngx_rtmp_bit_reader_t br;
|
||||
|
||||
|
@ -437,11 +438,34 @@ ngx_rtmp_codec_parse_avc_header(ngx_rtmp_session_t *s, ngx_chain_t *in)
|
|||
/* seq scaling list present */
|
||||
if (ngx_rtmp_bit_read(&br, 1)) {
|
||||
|
||||
/* TODO: scaling_list()
|
||||
/* scaling list */
|
||||
if (n < 6) {
|
||||
sl_size = 16;
|
||||
} else {
|
||||
sl_size = 64;
|
||||
}
|
||||
|
||||
sl_last = 8;
|
||||
sl_next = 8;
|
||||
|
||||
for (sl_index = 0; sl_index < sl_size; sl_index++) {
|
||||
|
||||
if (sl_next != 0) {
|
||||
|
||||
/* convert to signed: (-1)**k+1 * ceil(k/2) */
|
||||
sl_udelta = ngx_rtmp_bit_read_golomb(&br);
|
||||
sl_delta = (sl_udelta + 1) >> 1;
|
||||
if ((sl_udelta & 1) == 0) {
|
||||
sl_delta = -sl_delta;
|
||||
}
|
||||
|
||||
sl_next = (sl_last + sl_delta + 256) % 256;
|
||||
|
||||
if (sl_next != 0) {
|
||||
sl_last = sl_next;
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue