17 Commits

Author SHA1 Message Date
Nils Hasenbanck
1e54379141 Implemented the packet buffer.
Simply use two packet_buffers that are double-linked lists of
AVPacket structs. This way we can control which packets to feed
to the decoders at the right time.

This solves the playback problem with the MP4 files.
2020-01-08 20:44:00 +01:00
Nils Hasenbanck
c6309d963d Remove video fifo in ffmpeg core.
The video fifo can be removed, since we have a ring buffer in it's
place. This removes unneeded copy operations and as a positive side
improves overall decoding speed.

Makes 8k60p SW and 4k60p HW decoding possible on my system.

For now the ring buffer is 32 images deep. This limitation will
be removed, once audio and video decoder have their own
packet handling.
2019-12-23 16:07:34 +01:00
twinaphex
60b182b821 Promote tpool as libretro-common component 2019-12-18 18:21:03 +01:00
Nils Hasenbanck
417d1b7de7 Color space conversion using frame based MT.
Using a ordered ring buffer and a thread pool, the color space
conversion is not multi-threaded based on frames. I tried
to implement slice based threading, but libswscale did produced
highly distorted pictures without obvious reason.

This approach introduces some more "lag" when decoding and skipping,
but shouldn't be affect the user negatively, since movie
watching is not lag sensitive, as long as the A/V is synchronized.

Change default to software decoding.

SW decoding is the most robust and fasted method of decoding right now.
Users should enable hw based decoding if their system requires it
and it's actually beneficial for them.

Fix deadlocks when seeking and decrease RAM usage.

Decrease memory allocation by reusing AVFrames.
2019-12-18 11:46:49 +01:00
twinaphex
fbdc53f926 Update ffmpeg Makefile.common - see if it changes anything 2019-11-19 08:54:19 +01:00
orbea
28ff4b391a Clean up white space. 2019-02-03 16:00:50 -08:00
orbea
bfc366decc Squeeze extra blank lines with cat(1).
Example:

find . -type f -iname '*.c' | while read -r i; do
  cat -s "$i" > "$i.new"
  mv "$i.new" "$i"
done
2019-01-08 11:04:58 -08:00
twinaphex
8defa3b924 Update libretro-ffmpeg 2017-04-22 20:56:59 +02:00
twinaphex
2945605b61 Update ffmpeg 2016-09-07 13:19:28 +02:00
twinaphex
1b94fd2fce Update libretro-ffmpeg 2016-09-05 20:48:27 +02:00
twinaphex
a9d021cbfd (ffmpeg core) Update 2016-09-05 02:45:10 +02:00
twinaphex
bc7db98faf (ffmpeg core) Update 2016-09-05 00:36:04 +02:00
twinaphex
459acfe47d Update 2016-09-03 23:02:10 +02:00
twinaphex
e5eab961f2 (ffmpeg core) Add HAVE_LIBGSM ifdefs 2016-09-03 22:25:05 +02:00
twinaphex
63d1a30cf2 (ffmpeg core) Update 2016-09-03 22:19:20 +02:00
twinaphex
4dc0ed54d8 (ffmpeg core) Updates 2016-09-03 22:15:13 +02:00
twinaphex
249733b06d Update Makefiles / ffmpeg core 2016-09-03 21:59:52 +02:00