pixelflux 1.4.3__tar.gz → 1.4.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pixelflux might be problematic. Click here for more details.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pixelflux
3
- Version: 1.4.3
3
+ Version: 1.4.4
4
4
  Summary: A performant web native pixel delivery pipeline for diverse sources, blending VNC-inspired parallel processing of pixel buffers with flexible modern encoding formats.
5
5
  Home-page: https://github.com/linuxserver/pixelflux
6
6
  Author: Linuxserver.io
@@ -32,6 +32,7 @@ This module relies on a native C++ extension that is compiled during installatio
32
32
  sudo apt-get update && \
33
33
  sudo apt-get install -y \
34
34
  g++ \
35
+ libavcodec-dev \
35
36
  libdrm-dev \
36
37
  libjpeg-turbo8-dev \
37
38
  libva-dev \
@@ -18,6 +18,7 @@ This module relies on a native C++ extension that is compiled during installatio
18
18
  sudo apt-get update && \
19
19
  sudo apt-get install -y \
20
20
  g++ \
21
+ libavcodec-dev \
21
22
  libdrm-dev \
22
23
  libjpeg-turbo8-dev \
23
24
  libva-dev \
@@ -1577,37 +1577,39 @@ StripeEncodeResult ScreenCaptureModule::encode_fullframe_vaapi(int width, int he
1577
1577
  if (ret < 0) {
1578
1578
  throw std::runtime_error("VAAPI_ENCODE_ERROR: Failed to send frame to encoder: " + std::to_string(ret));
1579
1579
  }
1580
- ret = avcodec_receive_packet(vaapi_state_.codec_ctx, vaapi_state_.packet);
1581
- if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF) {
1582
- return {};
1583
- } else if (ret < 0) {
1584
- throw std::runtime_error("VAAPI_ENCODE_ERROR: Failed to receive packet from encoder: " + std::to_string(ret));
1585
- }
1586
- StripeEncodeResult result;
1587
- result.type = StripeDataType::H264;
1588
- result.stripe_y_start = 0;
1589
- result.stripe_height = height;
1590
- result.frame_id = frame_counter;
1591
- if (vaapi_state_.packet->size > 0) {
1592
- const unsigned char TAG = 0x04;
1593
- unsigned char type_hdr = (vaapi_state_.packet->flags & AV_PKT_FLAG_KEY) ? 0x01 : 0x00;
1594
- int header_sz = 10;
1595
- result.data = new unsigned char[vaapi_state_.packet->size + header_sz];
1596
- result.size = vaapi_state_.packet->size + header_sz;
1597
- result.data[0] = TAG;
1598
- result.data[1] = type_hdr;
1599
- uint16_t net_val = htons(static_cast<uint16_t>(result.frame_id % 65536));
1600
- std::memcpy(result.data + 2, &net_val, 2);
1601
- net_val = htons(static_cast<uint16_t>(result.stripe_y_start));
1602
- std::memcpy(result.data + 4, &net_val, 2);
1603
- net_val = htons(static_cast<uint16_t>(width));
1604
- std::memcpy(result.data + 6, &net_val, 2);
1605
- net_val = htons(static_cast<uint16_t>(height));
1606
- std::memcpy(result.data + 8, &net_val, 2);
1607
- std::memcpy(result.data + header_sz, vaapi_state_.packet->data, vaapi_state_.packet->size);
1608
- }
1609
- av_packet_unref(vaapi_state_.packet);
1610
- return result;
1580
+ while (true) {
1581
+ ret = avcodec_receive_packet(vaapi_state_.codec_ctx, vaapi_state_.packet);
1582
+ if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF) {
1583
+ return {};
1584
+ } else if (ret < 0) {
1585
+ throw std::runtime_error("VAAPI_ENCODE_ERROR: Failed to receive packet from encoder: " + std::to_string(ret));
1586
+ }
1587
+ StripeEncodeResult result;
1588
+ result.type = StripeDataType::H264;
1589
+ result.stripe_y_start = 0;
1590
+ result.stripe_height = height;
1591
+ result.frame_id = frame_counter;
1592
+ if (vaapi_state_.packet->size > 0) {
1593
+ const unsigned char TAG = 0x04;
1594
+ unsigned char type_hdr = (vaapi_state_.packet->flags & AV_PKT_FLAG_KEY) ? 0x01 : 0x00;
1595
+ int header_sz = 10;
1596
+ result.data = new unsigned char[vaapi_state_.packet->size + header_sz];
1597
+ result.size = vaapi_state_.packet->size + header_sz;
1598
+ result.data[0] = TAG;
1599
+ result.data[1] = type_hdr;
1600
+ uint16_t net_val = htons(static_cast<uint16_t>(result.frame_id % 65536));
1601
+ std::memcpy(result.data + 2, &net_val, 2);
1602
+ net_val = htons(static_cast<uint16_t>(result.stripe_y_start));
1603
+ std::memcpy(result.data + 4, &net_val, 2);
1604
+ net_val = htons(static_cast<uint16_t>(width));
1605
+ std::memcpy(result.data + 6, &net_val, 2);
1606
+ net_val = htons(static_cast<uint16_t>(height));
1607
+ std::memcpy(result.data + 8, &net_val, 2);
1608
+ std::memcpy(result.data + header_sz, vaapi_state_.packet->data, vaapi_state_.packet->size);
1609
+ }
1610
+ av_packet_unref(vaapi_state_.packet);
1611
+ return result;
1612
+ }
1611
1613
  }
1612
1614
 
1613
1615
  /**
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pixelflux
3
- Version: 1.4.3
3
+ Version: 1.4.4
4
4
  Summary: A performant web native pixel delivery pipeline for diverse sources, blending VNC-inspired parallel processing of pixel buffers with flexible modern encoding formats.
5
5
  Home-page: https://github.com/linuxserver/pixelflux
6
6
  Author: Linuxserver.io
@@ -32,6 +32,7 @@ This module relies on a native C++ extension that is compiled during installatio
32
32
  sudo apt-get update && \
33
33
  sudo apt-get install -y \
34
34
  g++ \
35
+ libavcodec-dev \
35
36
  libdrm-dev \
36
37
  libjpeg-turbo8-dev \
37
38
  libva-dev \
@@ -48,7 +48,7 @@ with open("README.md", "r", encoding="utf-8") as fh:
48
48
  long_description = fh.read()
49
49
  setup(
50
50
  name="pixelflux",
51
- version="1.4.3",
51
+ version="1.4.4",
52
52
  author="Linuxserver.io",
53
53
  author_email="pypi@linuxserver.io",
54
54
  description="A performant web native pixel delivery pipeline for diverse sources, blending VNC-inspired parallel processing of pixel buffers with flexible modern encoding formats.",
File without changes
File without changes
File without changes
File without changes