Giter Site home page Giter Site logo

vlc-libde265's Introduction

vlc-libde265

Plugins for VLC 2.x to support HEVC decoding using libde265. For VLC versions below 2.1, a modified MKV demuxer is included which has support for HEVC streams. For VLC versions below 2.2, modified MPEG-TS and MP4 demuxers are included which have support for HEVC streams.

Building

Build Status

Execute the default configure / make steps:

$ ./configure
$ make

If you fetched vlc-libde265 from GitHub, you will need to generate the configure script first:

$ ./autogen.sh

Dependencies

In addition to a compiler, a couple of other packages must be installed in order to compile the plugin:

  • libvlccore-dev
  • libde265-dev (>= 0.7)
  • libebml-dev
  • libmatroska-dev
  • libdvbpsi-dev

These should be available from the package management on any recent version of Debian / Ubuntu.

Patches

See the patches folder for changes applied to the VLC source code of the demuxers to make them compile against older versions of VLC.

Settings

In the advanced settings of VLC, a couple of properties can be configured for the libde265 plugins (below "Demuxers" and "Video codecs"):

  • Framerate for raw bitstream demuxer (25 fps is assumed by default)
  • Number of threads to use for decoding ("auto" by default)
  • Whether the deblocking filter should be disabled (enabled by default)
  • Whether the sample-adaptive-offset filter should be disabled (enabled by default)

Packages

Binary packages for Ubuntu are available on Launchpad: https://launchpad.net/~strukturag/+archive/libde265

Copyright (c) 2014 struktur AG

vlc-libde265's People

Contributors

fancycode avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vlc-libde265's Issues

Broken package alert in synaptic

I'm on Mint Mate 17.3 and see this message when i want to install h265 for vlc (vlc-plugin-libde265):
version: 0.1.7-1ppa1~trusty1
Status: Broken

no makefile

After running ./configure you only get Makefile.in and makefile.am
command make reports: make: *** No targets specified and no makefile found. Stop.

One suggestion

The vlc-de265 is perfect.
can you change
set_description(N_("HEVC/H.265 video decoder using de265")) like this set_description(N_("HEVC/H.265 video decoder using de265")) ?

Compile Error in Ubuntu Bionic 18.04

Building the package vlc-plugin-libde265 does not work in Ubuntu Bionic 18.04 and Cosmic 18.10.
It works on all previous Ubuntu releases.

make[3]: Entering directory '/<<PKGBUILDDIR>>'
/bin/bash ./libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.  -DMODULE_STRING=\"de265\"  -D__PLUGIN__ -D_FILE_OFFSET_BITS=64 -D_REENTRANT -D_THREAD_SAFE -I/usr/include/vlc/plugins -Wdate-time -D_FORTIFY_SOURCE=2 -DMODULE_STRING=\"de265\"  -D__PLUGIN__ -D_FILE_OFFSET_BITS=64 -D_REENTRANT -D_THREAD_SAFE -I/usr/include/vlc/plugins -DVLC_MODULE_COPYRIGHT="\"Copyright \(c) struktur AG\"" -DVLC_MODULE_LICENSE=\"LGPL\" -c -o src/codec/libde265_plugin_la-libde265dec.lo `test -f 'src/codec/libde265dec.c' || echo './'`src/codec/libde265dec.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -DMODULE_STRING=\"de265\" -D__PLUGIN__ -D_FILE_OFFSET_BITS=64 -D_REENTRANT -D_THREAD_SAFE -I/usr/include/vlc/plugins -Wdate-time -D_FORTIFY_SOURCE=2 -DMODULE_STRING=\"de265\" -D__PLUGIN__ -D_FILE_OFFSET_BITS=64 -D_REENTRANT -D_THREAD_SAFE -I/usr/include/vlc/plugins "-DVLC_MODULE_COPYRIGHT=\"Copyright \\(c) struktur AG\"" -DVLC_MODULE_LICENSE=\"LGPL\" -c src/codec/libde265dec.c  -fPIC -DPIC -o src/codec/.libs/libde265_plugin_la-libde265dec.o
src/codec/libde265dec.c: In function ‘Decode’:
src/codec/libde265dec.c:384:13: error: ‘decoder_t {aka struct decoder_t}’ has no member named ‘b_pace_control’
     if (!dec->b_pace_control && (sys->late_frames > 0) &&
             ^~
src/codec/libde265dec.c:392:13: error: ‘decoder_t {aka struct decoder_t}’ has no member named ‘b_pace_control’
     if (!dec->b_pace_control &&
             ^~
src/codec/libde265dec.c: In function ‘Open’:
src/codec/libde265dec.c:879:10: error: ‘decoder_t {aka struct decoder_t}’ has no member named ‘pf_decode_video’; did you mean ‘pf_queue_video’?
     dec->pf_decode_video = Decode;
          ^~~~~~~~~~~~~~~
          pf_queue_video
src/codec/libde265dec.c:886:10: error: ‘decoder_t {aka struct decoder_t}’ has no member named ‘b_need_packetized’; did you mean ‘pf_packetize’?
     dec->b_need_packetized = true;
          ^~~~~~~~~~~~~~~~~
          pf_packetize
Makefile:832: recipe for target 'src/codec/libde265_plugin_la-libde265dec.lo' failed
make[3]: *** [src/codec/libde265_plugin_la-libde265dec.lo] Error 1
make[3]: Leaving directory '/<<PKGBUILDDIR>>'
make[3]: *** Waiting for unfinished jobs....
make[3]: Entering directory '/<<PKGBUILDDIR>>'
/bin/bash ./libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.  -DMODULE_STRING=\"de265demux\" -D__PLUGIN__ -D_FILE_OFFSET_BITS=64 -D_REENTRANT -D_THREAD_SAFE -I/usr/include/vlc/plugins -Wdate-time -D_FORTIFY_SOURCE=2 -DMODULE_STRING=\"de265demux\" -D__PLUGIN__ -D_FILE_OFFSET_BITS=64 -D_REENTRANT -D_THREAD_SAFE -I/usr/include/vlc/plugins -DVLC_MODULE_COPYRIGHT="\"Copyright \(c) struktur AG\"" -DVLC_MODULE_LICENSE=\"LGPL\" -c -o src/demux/libde265demux_plugin_la-libde265demux.lo `test -f 'src/demux/libde265demux.c' || echo './'`src/demux/libde265demux.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -DMODULE_STRING=\"de265demux\" -D__PLUGIN__ -D_FILE_OFFSET_BITS=64 -D_REENTRANT -D_THREAD_SAFE -I/usr/include/vlc/plugins -Wdate-time -D_FORTIFY_SOURCE=2 -DMODULE_STRING=\"de265demux\" -D__PLUGIN__ -D_FILE_OFFSET_BITS=64 -D_REENTRANT -D_THREAD_SAFE -I/usr/include/vlc/plugins "-DVLC_MODULE_COPYRIGHT=\"Copyright \\(c) struktur AG\"" -DVLC_MODULE_LICENSE=\"LGPL\" -c src/demux/libde265demux.c  -fPIC -DPIC -o src/demux/.libs/libde265demux_plugin_la-libde265demux.o
src/demux/libde265demux.c: In function ‘Open’:
src/demux/libde265demux.c:118:15: error: ‘demux_t {aka struct demux_t}’ has no member named ‘b_force’
     if (!demux->b_force) {
               ^~
src/demux/libde265demux.c:139:19: warning: implicit declaration of function ‘stream_Peek’; did you mean ‘stream_Size’? [-Wimplicit-function-declaration]
     buffer_size = stream_Peek(demux->s, &buffer, DETECT_BUFFER_SIZE);
                   ^~~~~~~~~~~
                   stream_Size
src/demux/libde265demux.c: In function ‘Demux’:
src/demux/libde265demux.c:362:20: warning: implicit declaration of function ‘stream_Block’; did you mean ‘vlc_stream_Block’? [-Wimplicit-function-declaration]
     if ((p_block = stream_Block(p_demux->s, end - start)) == NULL) {
                    ^~~~~~~~~~~~
                    vlc_stream_Block
src/demux/libde265demux.c:362:18: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
     if ((p_block = stream_Block(p_demux->s, end - start)) == NULL) {
                  ^
Makefile:853: recipe for target 'src/demux/libde265demux_plugin_la-libde265demux.lo' failed
make[3]: *** [src/demux/libde265demux_plugin_la-libde265demux.lo] Error 1
make[3]: Leaving directory '/<<PKGBUILDDIR>>'
Makefile:567: recipe for target 'all' failed
make[2]: *** [all] Error 2
dh_auto_build: make -j4 -O -j4 returned exit code 2
debian/rules:42: recipe for target 'override_dh_auto_build' failed
make[1]: *** [override_dh_auto_build] Error 25
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
debian/rules:39: recipe for target 'build' failed
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2

It looks like a structure definition problem in C and mismatch of function name ?

make Error

Recently, vlc crashed (segmentation fault (core dumped)) with HEVC encoded files. mpv, however, works fine. Since I am running Fedora 27, I couldn't install this plugin via apt-get, and when I attempted to install it from github, after running "./autogen.sh; ./configure", make has an error.

make all-am
make[1]: Entering directory '/vlc-libde265'
/bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -DMODULE_STRING="de265" -I/usr/include/vlc/plugins -D__PLUGIN__ -D_FILE_OFFSET_BITS=64 -D_REENTRANT -D_THREAD_SAFE -DMODULE_STRING="de265" -I/usr/include/vlc/plugins -D__PLUGIN__ -D_FILE_OFFSET_BITS=64 -D_REENTRANT -D_THREAD_SAFE -DVLC_MODULE_COPYRIGHT=""Copyright (c) struktur AG"" -DVLC_MODULE_LICENSE="LGPL" -MT src/codec/libde265_plugin_la-libde265dec.lo -MD -MP -MF src/codec/.deps/libde265_plugin_la-libde265dec.Tpo -c -o src/codec/libde265_plugin_la-libde265dec.lo test -f 'src/codec/libde265dec.c' || echo './'src/codec/libde265dec.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -DMODULE_STRING="de265" -I/usr/include/vlc/plugins -D__PLUGIN__ -D_FILE_OFFSET_BITS=64 -D_REENTRANT -D_THREAD_SAFE -DMODULE_STRING="de265" -I/usr/include/vlc/plugins -D__PLUGIN__ -D_FILE_OFFSET_BITS=64 -D_REENTRANT -D_THREAD_SAFE "-DVLC_MODULE_COPYRIGHT="Copyright \(c) struktur AG"" -DVLC_MODULE_LICENSE="LGPL" -MT src/codec/libde265_plugin_la-libde265dec.lo -MD -MP -MF src/codec/.deps/libde265_plugin_la-libde265dec.Tpo -c src/codec/libde265dec.c -fPIC -DPIC -o src/codec/.libs/libde265_plugin_la-libde265dec.o
src/codec/libde265dec.c: In function ‘Decode’:
src/codec/libde265dec.c:369:13: error: ‘decoder_t {aka struct decoder_t}’ has no member named ‘b_pace_control’
if (!dec->b_pace_control && (sys->late_frames > 0) &&
^~
src/codec/libde265dec.c:377:13: error: ‘decoder_t {aka struct decoder_t}’ has no member named ‘b_pace_control’
if (!dec->b_pace_control &&
^~
src/codec/libde265dec.c: In function ‘Open’:
src/codec/libde265dec.c:864:10: error: ‘decoder_t {aka struct decoder_t}’ has no member named ‘pf_decode_video’; did you mean ‘pf_queue_video’?
dec->pf_decode_video = Decode;
^~~~~~~~~~~~~~~
pf_queue_video
src/codec/libde265dec.c:871:10: error: ‘decoder_t {aka struct decoder_t}’ has no member named ‘b_need_packetized’; did you mean ‘pf_packetize’?
dec->b_need_packetized = true;
^~~~~~~~~~~~~~~~~
pf_packetize
make[1]: *** [Makefile:827: src/codec/libde265_plugin_la-libde265dec.lo] Error 1
make[1]: Leaving directory '/vlc-libde265'
make: *** [Makefile:566: all] Error 2

error report about libde265dec.c

On 03.05.2014 18:20, YouXiaoquan wrote:

     Today, I git clone the strukturag/vlc-2.1 from 

https://github.com/strukturag/vlc-2.1.git, and found your code is
faster than ffmpeg when decode 4k-hevc.mkv files. But there are some
error when decode ts file or raw-hevc file, with the error msg like
“Buffer underrun while pushing data (-278888384 > 425275)”.

Please tell how to solve it, Thank you.

The ts file you can download from http://www.elecard.com/assets/files/other/clips/bbb_360p_c.ts

Not playing x265 output?

Hi, I'm a bit new to HEVC but I'm having an interesting issue and I thought you may be able to help.

Using VLC media player 2.2.4 Weatherwax (revision 2.2.3-37-g888b7e89) on Debian Jessie, Kernel 4.7.0

I compiled your plugin and copied the two .so files to /usr/lib/vlc/plugins path:

charles@box:/usr/lib/vlc/plugins$ md5sum codec/libde265_plugin.so
3e001fec3976dba4d0ae136a43270370 codec/libde265_plugin.so
charles@box:/usr/lib/vlc/plugins$ md5sum demux/libde265demux_plugin.so
8ad1b7a0e955713a469b4ca496e021b5 demux/libde265demux_plugin.so

As a test, I downloaded the "Tears of Steel" video from http://www.libde265.org/downloads-videos/ and it plays great!

I am now trying to create my own HEVC encoded video and VLC is not playing it. Instead it shows a blank screen for about a second and then hits the "EOF".

In a nutshell, I am recording from /dev/video0 with ffmpeg:

ffmpeg -i /dev/video0 -c:v rawvideo out.yuv

Encoding it with x265:

x265 out.yuv --input-res 640x480 --fps 30 -o out.mkv

And playing it back with your Plugin on VLC:

cvlc out.mkv

The VLC Log is quite verbose but I have pasted it here: http://pastebin.com/JdaXJzz1

I understand that you do not support x265, but I'm hoping you can give me some guidance as to what I may be doing wrong overall.

Thanks,
Charles

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.