[toc]
介绍H.264参数集与几种字节流格式的关系,以及in-band/out-of-band传递参数集的方式与容器格式、传输协议的关系,描述MP4格式、FLV格式处理参数集的一些兼容性问题。
#if 0 // self-compiling code: chmod +x this file and run it like a script | |
BINARY=vaapi_egl_interop_example | |
gcc -std=c99 -Wall -Wextra -pedantic -Werror -g -fsanitize=address -o $BINARY $0 \ | |
`pkg-config libavcodec libavformat libavutil libva gl egl libdrm --cflags --libs` \ | |
-lX11 -lva-x11 -lva-drm || exit 1 | |
test "$1" = "--compile-only" && exit 0 | |
exec env ASAN_OPTIONS=fast_unwind_on_malloc=0 ./$BINARY $* | |
#endif /* | |
Minimal example application for hardware video decoding on Linux and display |
================================================================= | |
==28728==ERROR: LeakSanitizer: detected memory leaks | |
Direct leak of 528 byte(s) in 2 object(s) allocated from: | |
#0 0x5648c5aae5e0 in __interceptor_posix_memalign (/mnt/src/src/ffmpeg-build/build/ffmpeg/ffmpeg+0x5d85e0) | |
#1 0x5648c8b9532a in av_malloc src/libavutil/mem.c:87 | |
#2 0x5648c63daa09 in avio_alloc_context src/libavformat/aviobuf.c:140 | |
#3 0x5648c63dfc8b in ffio_fdopen src/libavformat/aviobuf.c:1002 | |
#4 0x5648c63e1287 in ffio_open_whitelist src/libavformat/aviobuf.c:1171 | |
#5 0x5648c66cfaca in io_open_default src/libavformat/options.c:124 |
HLS协议的核心设计至少包括三点:大规模分发、多设备兼容和码率自适应。码率自适应包括自适应算法设计以及如何实现切换。HLS协议本身不负责自适应算法,它描述的是如何实现切换。一个基础问题:从a.m3u8切换到b.m3u8时,如何在b.m3u8中找到要播放的切片?
最简单、看起来最合理的方案:在b.m3u8中找匹配的sequence number。可能多数播放器是这么做的。
但是,HLS草案第9版(2012年9月)新增了这么一段描述:
https://datatracker.ietf.org/doc/html/draft-pantos-http-live-streaming-09
used to synchronize the old and new timelines precisely. A client MUST NOT assume that segments with the same media sequence number in
diff --git a/libavcodec/aarch64/videodsp.S b/libavcodec/aarch64/videodsp.S | |
index 24067cc2af..fe2da0658e 100644 | |
--- a/libavcodec/aarch64/videodsp.S | |
+++ b/libavcodec/aarch64/videodsp.S | |
@@ -19,10 +19,11 @@ | |
#include "libavutil/aarch64/asm.S" | |
function ff_prefetch_aarch64, export=1 | |
+1: | |
subs w2, w2, #2 |
Termux is an Android terminal emulator and Linux environment app that works directly with no rooting or setup required. A minimal base system is installed automatically - additional packages are available using the APT package manager.
diff --git a/modules/video_output/opengl/interop.c b/modules/video_output/opengl/interop.c | |
index 96d548519e..6ded931189 100644 | |
--- a/modules/video_output/opengl/interop.c | |
+++ b/modules/video_output/opengl/interop.c | |
@@ -321,6 +321,24 @@ interop_rgb_base_init(struct vlc_gl_interop *interop, GLenum tex_target, | |
break; | |
case VLC_CODEC_RGB32: | |
+ if (interop->fmt_in.i_rmask == 0x00ff0000 | |
+ && interop->fmt_in.i_gmask == 0x0000ff00 |
#include <stdio.h> | |
#include <stdlib.h> | |
#include <unordered_map> | |
static std::unordered_map<int, std::string> MacintoshLanguageCodes{ | |
{0, "English"}, {1, "French"}, | |
{2, "German"}, {3, "Italian"}, | |
{4, "Dutch"}, {5, "Swedish"}, | |
{6, "Spanish"}, {7, "Danish"}, |