树莓派之通过代理翻墙更新 2019-04-20

树莓派之通过代理翻墙更新

准备工作 ...
Windows 10 翻墙环境比如:蓝灯,无界等 
ccproxy 代理软件
局域网内树莓派一个
第一步:打开无界确认Win10已经可以翻墙 ...
第二步:打开 ccproxy 设置代理 ...
第三步:设置代理 export http_proxy=http://192.168.1.8:808
第四步:更新 apt-get update

Linux之通过udev规则指定网络设备 2019-04-11

Linux之通过udev规则指定网络设备

sudo udevadm control --reload // 任何规则文件及相关脚本修改后都需要执行 ...
// 查询udev数据库中的设备信息
udevadm info -a -p /sys/class/net/eth0


// 获取到的设备信息 ...
looking at device '/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1/1-1.1.1/1-1.1.1:1.0/net/eth0':
KERNEL=="eth0"
SUBSYSTEM=="net"
DRIVER==""
ATTR{addr_assign_type}=="0"
ATTR{addr_len}=="6"
ATTR{address}=="b8:27:eb:a7:c3:e6"
ATTR{broadcast}=="ff:ff:ff:ff:ff:ff"
ATTR{carrier}=="0"
ATTR{carrier_changes}=="1"
ATTR{dev_id}=="0x0"
ATTR{dev_port}=="0"
ATTR{dormant}=="0"
ATTR{duplex}=="half"
ATTR{flags}=="0x1003"
ATTR{gro_flush_timeout}=="0"
ATTR{ifalias}==""
ATTR{ifindex}=="2"
ATTR{iflink}=="2"
ATTR{link_mode}=="0"
ATTR{mtu}=="1500"
ATTR{netdev_group}=="0"
ATTR{operstate}=="down"
ATTR{proto_down}=="0"
ATTR{speed}=="10"
ATTR{tx_queue_len}=="1000"
ATTR{type}=="1"

树莓派之编译与定制OMXPlayer 2019-04-03

树莓派之编译与定制OMXPlayer

下载源码

https://github.com/popcornmix/omxplayer

Build FFmepg

树莓派之hello_video循环播放视频 2019-01-09

树莓派之hello_video循环播放视频

// Video deocode demo using OpenMAX IL though the ilcient helper library

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "bcm_host.h"
#include "ilclient.h"

static int video_decode_test(char *filename)
{
   OMX_VIDEO_PARAM_PORTFORMATTYPE format;
   OMX_TIME_CONFIG_CLOCKSTATETYPE cstate;
   COMPONENT_T *video_decode = NULL, *video_scheduler = NULL, *video_render = NULL, *clock = NULL;
   COMPONENT_T *list[5];
   TUNNEL_T tunnel[4];
   ILCLIENT_T *client;
   FILE *in;
   int status = 0;
   unsigned int data_len = 0;

SDL2之stb_image代替sdl2_image方法 2019-01-09

SDL2之stb_image代替sdl2_image方法

// https://www.libsdl.org/projects/SDL_image/
// 常用的 SDL Image 加载图片一般这样 ...
SDL_Surface * image = IMG_Load("/home/danoo/aaa.png");
// 使用 stb image 代替 sdl image 不再需要安装三方库
// 直接把 stb_image.h 文件导入到项目中即可使用 ...
https://github.com/nulijiabei/stb/blob/master/stb_image.h
// 同时也是官方推荐 ...
// https://wiki.libsdl.org/SDL_CreateRGBSurfaceFrom

树莓派之自定义开机启动画面 2018-12-26

树莓派之自定义开机启动画面

// 我的系统版本
root@raspberrypi:~# lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 9.4 (stretch)
Release:    9.4
Codename:   stretch
// 准备工作
// 1. 禁用颜色测试
/boot/config.txt 中添加 disable_splash=1
// 2. 禁用角落 LOGO
/boot/cmdline.txt 中添加 logo.nologo

树莓派之安装GStreamer与gst-omx教程 2018-11-26

树莓派之安装GStreamer与gst-omx教程

Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 9.4 (stretch)
Release:    9.4
Codename:   stretch
# /etc/apt/sources.list
deb http://mirrors.aliyun.com/raspbian/raspbian/ stretch main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
deb-src http://mirrors.aliyun.com/raspbian/raspbian/ stretch main contrib non-free rpi

树莓派中手动编译sdl_image无法加载jpeg解决方案 2018-11-01

树莓派中手动编译sdl_image无法加载jpeg解决方案


如果你是因为忘记安装 libjpeg 造成 sdl2 image 无法加载 jpg 请离开 ....
如果你不准备使用 opengl es 版本的 sdl2
或者你仅仅只是单独使用 sdl2 image 的
一条命令解决你的烦恼
apt-get install libsdl2-2.0-0 libsdl2-dev libsdl2-image-2.0-0 libsdl2-image-dev

树莓派之SDL2.0_OpenGLES_FFmpeg硬解视频播放 2018-10-12

树莓派之SDL2.0_OpenGLES_FFmpeg硬解视频播放

// 如何编译 FFmpeg h264_mmal 请看本博客对应博文
// 首先下载好 SDL 2.0 源码等待编译
http://www.libsdl.org/download-2.0.php

// 编译一版 OpenGL ES 的 SDL ...
./configure --prefix=/usr/local \
   --disable-video-x11 \
   --disable-pulseaudio \
   --disable-esd \
   --disable-video-opengl

Qt之QOpenGLWidget使用QPainter绘制FFmpeg解码的YUV420P帧 2018-10-05

Qt之QOpenGLWidget使用QPainter绘制FFmpeg解码的YUV420P帧

#ifndef GLWIDGET_H
#define GLWIDGET_H

#include <QOpenGLWidget>
#include <QPainter>
#include <QDebug>
#include <QTimer>
#include <QTime>
#include <QString>
#include <QtDebug>
#include "decoder.h"

class GLWidget : public QOpenGLWidget
{
    Q_OBJECT
public:
    GLWidget();
    ~GLWidget() override;
    void decoder(Decoder*);
private:
    QTimer *m_t_update = nullptr;
    Decoder *m_decoder = nullptr;
    int m_t_num = -1;
    QTime m_t_fps;
public slots:
    void uuu();