Merge pull request #3711 from HiassofT/le92-kodi-rpi4

Kodi (RPi4): update to latest leia_pi4 version
This commit is contained in:
MilhouseVH 2019-08-29 23:36:35 +01:00 committed by GitHub
commit 0225a0342b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 10 deletions

View File

@ -19,8 +19,8 @@ case $KODI_VENDOR in
PKG_SOURCE_NAME="kodi-$KODI_VENDOR-$PKG_VERSION.tar.gz"
;;
raspberrypi4)
PKG_VERSION="932b08f071fd6cf8d95d01fe0c9e186821a38983" # 18.3-Leia
PKG_SHA256="4f678f48baedca0b6bfacec451424d38a8b8b04c47490899c656305de72f8a15"
PKG_VERSION="b0e4133d0f26c0dd2f305c689c8c6b3ea084d7b1" # 18.3-Leia
PKG_SHA256="9e4d2b0cc597ae3b8ad3352e6a2a306b268ccb3974d2cfa52dedff8c3de73982"
PKG_URL="https://github.com/popcornmix/xbmc/archive/$PKG_VERSION.tar.gz"
PKG_SOURCE_NAME="kodi-$KODI_VENDOR-$PKG_VERSION.tar.gz"
;;

View File

@ -1020,10 +1020,10 @@ index 0000000000..6a1d95f195
+#endif // __CTRL_FILES_H__
diff --git a/libavcodec/rpi_hevc.c b/libavcodec/rpi_hevc.c
new file mode 100644
index 0000000000..a000077f33
index 0000000000..fcf03d849c
--- /dev/null
+++ b/libavcodec/rpi_hevc.c
@@ -0,0 +1,1065 @@
@@ -0,0 +1,1075 @@
+// FFMPEG HEVC decoder hardware accelerator
+// Andrew Holme, Argon Design Ltd
+// Copyright (c) June 2017 Raspberry Pi Ltd
@ -1331,6 +1331,12 @@ index 0000000000..a000077f33
+
+static int check_status(RPI_T *rpi) {
+ int status, c, p;
+
+ // this is the definition of successful completion of phase 1
+ // it assures that status register is zero and all blocks in each tile have completed
+ if (rpi->apb_read(rpi->id, RPI_CFSTATUS) == rpi->apb_read(rpi->id, RPI_CFNUM))
+ return 0;
+
+ status = rpi->apb_read(rpi->id, RPI_STATUS);
+ p = (status>>4)&1;
+ c = (status>>3)&1;
@ -1340,7 +1346,7 @@ index 0000000000..a000077f33
+ if (c) rpi->max_coeff64 += rpi->max_coeff64/2;
+ return 1;
+ }
+ return 0;
+ return 2;
+}
+
+//////////////////////////////////////////////////////////////////////////////
@ -1697,6 +1703,7 @@ index 0000000000..a000077f33
+
+ int i, a64, x;
+ char *buf;
+ int status = 1;
+
+ // End of phase 1 command compilation
+ if (pps->entropy_coding_sync_enabled_flag) {
@ -1725,7 +1732,8 @@ index 0000000000..a000077f33
+ rpi->axi_dump(rpi->id, ((uint64_t)a64)<<6, rpi->cmd_len * sizeof(struct RPI_CMD));
+ rpi->apb_write_addr(rpi->id, RPI_CFBASE, a64);
+ rpi->wait_interrupt(rpi->id, 1);
+ if (check_status(rpi)==0) break; // No PU/COEFF overflow?
+ status = check_status(rpi);
+ if (status != 1) break; // No PU/COEFF overflow?
+ }
+ pthread_mutex_unlock(&rpi->mutex_phase1);
+
@ -1830,10 +1838,12 @@ index 0000000000..a000077f33
+
+ rpi->apb_dump_regs(rpi->id, 0x0, 32);
+ rpi->apb_dump_regs(rpi->id, 0x8000, 24);
+ rpi->apb_write(rpi->id, RPI_NUMROWS, rpi->PicHeightInCtbsY);
+ rpi->apb_read_drop(rpi->id, RPI_NUMROWS); // Read back to confirm write has reached block
+ rpi->wait_interrupt(rpi->id, 2);
+
+ // only do phase if phase 1 completed without errors
+ if (status == 0) {
+ rpi->apb_write(rpi->id, RPI_NUMROWS, rpi->PicHeightInCtbsY);
+ rpi->apb_read_drop(rpi->id, RPI_NUMROWS); // Read back to confirm write has reached block
+ rpi->wait_interrupt(rpi->id, 2);
+ }
+//printf("%s: %dx%d %d\n", __FUNCTION__, f->width, f->height, f->linesize[0]);
+#if defined(AXI_BUFFERS)
+ // Copy YUV output frame