Lưu ý
Mục đích của file này là để độc giả tiếng Việt có thể đọc và hiểu tài liệu nhân kernel dễ dàng hơn, không phải để tạo ra một nhánh tài liệu riêng. Nếu bạn có bất kỳ nhận xét hoặc cập nhật nào cho file này, vui lòng thử cập nhật file tiếng Anh gốc trước. Nếu bạn thấy có sự khác biệt giữa bản dịch và bản gốc, hoặc có vấn đề về bản dịch, vui lòng gửi góp ý hoặc patch cho người dịch của file này, hoặc nhờ người bảo trì và người review tài liệu tiếng Việt giúp đỡ.
- Bản gốc:
- Người dịch:
Google Translate (machine translation)
- Phiên bản gốc:
8541d8f725c6
Cảnh báo
Tài liệu này được dịch tự động bằng máy và chưa được review bởi người dịch. Nội dung có thể không chính xác hoặc khó hiểu ở một số chỗ. Khi có sự khác biệt với bản gốc, bản gốc luôn là chuẩn. Bản dịch chất lượng cao (được review) được đặt trong thư mục vi_VN/.
6.2.3.1. Thiết bị video DVB¶
Chú ý
Do not use in new drivers! See: General Notes
Thiết bị video DVB điều khiển bộ giải mã video MPEG2 của DVB phần cứng. Nó có thể được truy cập thông qua ZZ0000ZZ. dữ liệu các loại và định nghĩa ioctl có thể được truy cập bằng cách bao gồm ZZ0001ZZ trong ứng dụng của bạn.
Lưu ý rằng thiết bị video DVB chỉ điều khiển việc giải mã video MPEG phát trực tiếp chứ không phải trình chiếu trên TV hoặc màn hình máy tính. Trên PC cái này thường được xử lý bởi một thiết bị video4linux được liên kết, ví dụ: ZZ0000ZZ, cho phép chia tỷ lệ và xác định cửa sổ đầu ra.
Hầu hết các thẻ DVB không có bộ giải mã MPEG riêng, điều này dẫn đến thiếu sót thiết bị âm thanh và video cũng như video4linux thiết bị.
Các ioctl này cũng được V4L2 sử dụng để điều khiển bộ giải mã MPEG được triển khai trong V4L2. Việc sử dụng các ioctls này cho mục đích đó đã trở nên lỗi thời và các ioctls hoặc điều khiển V4L2 thích hợp đã được tạo để thay thế điều đó chức năng. Sử dụng ZZ0000ZZ cho trình điều khiển mới!
6.2.3.1.1. Các loại dữ liệu video¶
6.2.3.1.1.1. video_format_t¶
6.2.3.1.1.1.1. Tóm tắt¶
typedef enum {
VIDEO_FORMAT_4_3,
VIDEO_FORMAT_16_9,
VIDEO_FORMAT_221_1
} video_format_t;
6.2.3.1.1.1.2. Hằng số¶
|
Select 4:3 format. |
|
Select 16:9 format. |
|
Select 2.21:1 format. |
6.2.3.1.1.1.3. Sự miêu tả¶
Kiểu dữ liệu ZZ0000ZZ được sử dụng trong chức năng ZZ0001ZZ để báo cho người lái xe biết tỷ lệ khung hình mà phần cứng đầu ra (ví dụ: TV) có. Nó cũng được sử dụng trong cấu trúc dữ liệu ZZ0002ZZ được trả về bởi ZZ0003ZZ và ZZ0004ZZ được trả về bởi ZZ0005ZZ báo cáo về định dạng hiển thị của luồng video hiện tại.
6.2.3.1.1.2. video_displayformat_t¶
6.2.3.1.1.2.1. Tóm tắt¶
typedef enum {
VIDEO_PAN_SCAN,
VIDEO_LETTER_BOX,
VIDEO_CENTER_CUT_OUT
} video_displayformat_t;
6.2.3.1.1.2.2. Hằng số¶
|
Use pan and scan format. |
|
Use letterbox format. |
|
Use center cut out format. |
6.2.3.1.1.2.3. Sự miêu tả¶
Trong trường hợp định dạng hiển thị của luồng video và của màn hình phần cứng khác nhau mà ứng dụng phải chỉ định cách xử lý cắt xén hình ảnh. Điều này có thể được thực hiện bằng cách sử dụng Cuộc gọi ZZ0000ZZ chấp nhận enum này làm đối số.
6.2.3.1.1.3. video_size_t¶
6.2.3.1.1.3.1. Tóm tắt¶
typedef struct {
int w;
int h;
video_format_t aspect_ratio;
} video_size_t;
6.2.3.1.1.3.2. Biến¶
|
Video width in pixels. |
|
Video height in pixels. |
video_format_t |
Aspect ratio. |
6.2.3.1.1.3.3. Sự miêu tả¶
Được sử dụng trong cấu trúc ZZ0000ZZ. Nó lưu trữ độ phân giải và tỷ lệ khung hình của video.
6.2.3.1.1.4. video_stream_source_t¶
6.2.3.1.1.4.1. Tóm tắt¶
typedef enum {
VIDEO_SOURCE_DEMUX,
VIDEO_SOURCE_MEMORY
} video_stream_source_t;
6.2.3.1.1.4.2. Hằng số¶
|
Select the demux as the main source. |
|
|
If this source is selected, the stream comes from the user through the write system call. |
|
6.2.3.1.1.4.3. Sự miêu tả¶
Nguồn luồng video được đặt thông qua lệnh gọi ZZ0000ZZ và có thể nhận các giá trị sau, tùy thuộc vào việc chúng ta có đang phát lại hay không từ nguồn bên trong (bộ giải mã) hoặc bên ngoài (người dùng ghi). VIDEO_SOURCE_DEMUX chọn bộ tách kênh (được cung cấp bởi frontend hoặc thiết bị DVR) làm nguồn của luồng video. Nếu VIDEO_SOURCE_MEMORY được chọn luồng xuất phát từ ứng dụng thông qua cuộc gọi hệ thống ZZ0001ZZ.
6.2.3.1.1.5. video_play_state_t¶
6.2.3.1.1.5.1. Tóm tắt¶
typedef enum {
VIDEO_STOPPED,
VIDEO_PLAYING,
VIDEO_FREEZED
} video_play_state_t;
6.2.3.1.1.5.2. Hằng số¶
|
Video is stopped. |
|
Video is currently playing. |
|
Video is frozen. |
6.2.3.1.1.5.3. Sự miêu tả¶
Giá trị này có thể được trả về bằng lệnh gọi ZZ0000ZZ đại diện cho trạng thái phát lại video.
6.2.3.1.1.6. cấu trúc video_command¶
6.2.3.1.1.6.1. Tóm tắt¶
struct video_command {
__u32 cmd;
__u32 flags;
union {
struct {
__u64 pts;
} stop;
struct {
__s32 speed;
__u32 format;
} play;
struct {
__u32 data[16];
} raw;
};
};
6.2.3.1.1.6.2. Biến¶
|
||
|
Flags for the Decoder command. |
|
|
|
MPEG PTS |
|
|
0 or 1000 specifies normal speed, |
1: specifies forward single stepping, |
||
-1: specifies backward single stepping, |
||
>1: playback at speed / 1000 of the normal speed |
||
<-1: reverse playback at ( -speed / 1000 ) of the normal speed. |
||
|
||
|
Reserved |
|
6.2.3.1.1.6.3. Sự miêu tả¶
Cấu trúc phải bằng 0 trước khi ứng dụng sử dụng. Điều này đảm bảo nó có thể được mở rộng một cách an toàn trong tương lai.
6.2.3.1.1.7. Các lệnh và cờ giải mã được xác định trước¶
6.2.3.1.1.7.1. Tóm tắt¶
#define VIDEO_CMD_PLAY (0)
#define VIDEO_CMD_STOP (1)
#define VIDEO_CMD_FREEZE (2)
#define VIDEO_CMD_CONTINUE (3)
#define VIDEO_CMD_FREEZE_TO_BLACK (1 << 0)
#define VIDEO_CMD_STOP_TO_BLACK (1 << 0)
#define VIDEO_CMD_STOP_IMMEDIATELY (1 << 1)
#define VIDEO_PLAY_FMT_NONE (0)
#define VIDEO_PLAY_FMT_GOP (1)
#define VIDEO_VSYNC_FIELD_UNKNOWN (0)
#define VIDEO_VSYNC_FIELD_ODD (1)
#define VIDEO_VSYNC_FIELD_EVEN (2)
#define VIDEO_VSYNC_FIELD_PROGRESSIVE (3)
6.2.3.1.1.7.2. Hằng số¶
Decoder command |
|
Start playback. |
|
Stop playback. |
|
|
Freeze playback. |
|
|
Continue playback after freeze. |
|
Flags for |
|
Show black picture on freeze. |
Flags for |
|
Show black picture on stop. |
|
Stop immediately, without emptying buffers. |
|
Play input formats |
|
The decoder has no special format requirements |
|
The decoder requires full GOPs |
|
Field order |
|
FIELD_UNKNOWN can be used if the hardware does not know whether the Vsync is for an odd, even or progressive (i.e. non-interlaced) field. |
|
Vsync is for an odd field. |
|
|
Vsync is for an even field. |
|
|
progressive (i.e. non-interlaced) |
6.2.3.1.1.8. video_sự kiện¶
6.2.3.1.1.8.1. Tóm tắt¶
struct video_event {
__s32 type;
#define VIDEO_EVENT_SIZE_CHANGED 1
#define VIDEO_EVENT_FRAME_RATE_CHANGED 2
#define VIDEO_EVENT_DECODER_STOPPED 3
#define VIDEO_EVENT_VSYNC 4
long timestamp;
union {
video_size_t size;
unsigned int frame_rate;
unsigned char vsync_field;
} u;
};
6.2.3.1.1.8.2. Biến¶
|
Event type. |
|
|
Size changed. |
|
|
Framerate changed. |
|
|
Decoder stopped. |
|
|
Vsync occurred. |
|
|
MPEG PTS at occurrence. |
|
|
video_size_t size |
Resolution and aspect ratio of the video. |
|
in frames per 1000sec |
|
|
unknown / odd / even / progressive
|
|
6.2.3.1.1.8.3. Sự miêu tả¶
Đây là cấu trúc của một sự kiện video khi nó được trả về bởi Cuộc gọi ZZ0000ZZ. Xem ở đó để biết thêm chi tiết.
6.2.3.1.1.9. video_status¶
6.2.3.1.1.9.1. Tóm tắt¶
Cuộc gọi ZZ0000ZZ trả về cấu trúc sau thông báo về các trạng thái khác nhau của hoạt động phát lại.
struct video_status {
int video_blank;
video_play_state_t play_state;
video_stream_source_t stream_source;
video_format_t video_format;
video_displayformat_t display_format;
};
6.2.3.1.1.9.2. Biến¶
|
Show blank video on freeze? |
|
TRUE ( != 0 ) |
Blank screen when freeze. |
|
FALSE ( == 0 ) |
Show last decoded frame. |
|
video_play_state_t |
Current state of playback. |
|
video_stream_source_t |
Current source (demux/memory). |
|
video_format_t |
Current aspect ratio of stream. |
|
video_displayformat_t |
Applied cropping mode. |
|
6.2.3.1.1.9.3. Sự miêu tả¶
Nếu ZZ0000ZZ được đặt, video ZZ0001ZZ sẽ bị xóa nếu kênh bị thay đổi hoặc nếu quá trình phát lại bị dừng. Nếu không thì hình ảnh cuối cùng sẽ được hiển thị. ZZ0002ZZ cho biết video hiện có bị đóng băng, bị dừng hoặc đang được phát lại. ZZ0003ZZ tương ứng tới nguồn đã chọn cho luồng video. Nó có thể đến từ bộ tách kênh hoặc từ bộ nhớ. ZZ0004ZZ biểu thị khía cạnh tỷ lệ (một trong 4:3 hoặc 16:9) của luồng video hiện đang phát. Cuối cùng, ZZ0005ZZ tương ứng với chế độ cắt xén được áp dụng trong trường hợp định dạng video nguồn không giống với định dạng đầu ra thiết bị.
6.2.3.1.1.10. video_tĩnh_hình ảnh¶
6.2.3.1.1.10.1. Tóm tắt¶
struct video_still_picture {
char *iFrame;
int32_t size;
};
6.2.3.1.1.10.2. Biến¶
|
Pointer to a single iframe in memory. |
|
Size of the iframe. |
6.2.3.1.1.10.3. Sự miêu tả¶
Một khung I được hiển thị qua lệnh gọi ZZ0000ZZ được chuyển tiếp bên trong cấu trúc này.
6.2.3.1.1.11. khả năng video¶
6.2.3.1.1.11.1. Tóm tắt¶
#define VIDEO_CAP_MPEG1 1
#define VIDEO_CAP_MPEG2 2
#define VIDEO_CAP_SYS 4
#define VIDEO_CAP_PROG 8
6.2.3.1.1.11.2. Hằng số¶
Định nghĩa bit cho khả năng:
|
The hardware can decode MPEG1. |
|
|
The hardware can decode MPEG2. |
|
|
The video device accepts system stream. You still have to open the video and the audio device but only send the stream to the video device. |
|
|
The video device accepts program stream. You still have to open the video and the audio device but only send the stream to the video device. |
|
6.2.3.1.1.11.3. Sự miêu tả¶
Cuộc gọi đến ZZ0000ZZ trả về một số nguyên không dấu với các bit sau được đặt theo khả năng của phần cứng.
6.2.3.1.2. Cuộc gọi chức năng video¶
6.2.3.1.2.1. VIDEO_STOP¶
6.2.3.1.2.1.1. Tóm tắt¶
-
VIDEO_STOP¶
int ioctl(fd, VIDEO_STOP, int mode)
6.2.3.1.2.1.2. Đối số¶
|
||
|
Equals |
|
|
Indicates how the screen shall be handled. |
|
TRUE ( != 0 ) |
Blank screen when stop. |
|
FALSE ( == 0 ) |
Show last decoded frame. |
|
6.2.3.1.2.1.3. Sự miêu tả¶
Chú ý
Do not use in new drivers! See: General Notes
Ioctl này chỉ dành cho các thiết bị TV kỹ thuật số. Để điều khiển bộ giải mã V4L2, hãy sử dụng thay vào đó là V4L2 ZZ0000ZZ.
Cuộc gọi ioctl này yêu cầu Thiết bị Video ngừng phát nội dung hiện tại suối. Tùy thuộc vào thông số đầu vào, màn hình có thể bị xóa trắng hoặc hiển thị khung được giải mã cuối cùng.
6.2.3.1.2.1.4. Giá trị trả về¶
Khi thành công, trả về 0, lỗi -1 và biến ZZ0001ZZ được đặt một cách thích hợp. Các mã lỗi chung được mô tả tại Chương ZZ0000ZZ.
6.2.3.1.2.2. VIDEO_PLAY¶
6.2.3.1.2.2.1. Tóm tắt¶
-
VIDEO_PLAY¶
int ioctl(fd, VIDEO_PLAY)
6.2.3.1.2.2.2. Đối số¶
|
||
|
Equals |
|
6.2.3.1.2.2.3. Sự miêu tả¶
Chú ý
Do not use in new drivers! See: General Notes
Ioctl này chỉ dành cho các thiết bị TV kỹ thuật số. Để điều khiển bộ giải mã V4L2, hãy sử dụng thay vào đó là V4L2 ZZ0000ZZ.
Cuộc gọi ioctl này yêu cầu Thiết bị video bắt đầu phát luồng video từ nguồn đã chọn.
6.2.3.1.2.2.4. Giá trị trả về¶
Khi thành công, trả về 0, lỗi -1 và biến ZZ0001ZZ được đặt một cách thích hợp. Các mã lỗi chung được mô tả tại Chương ZZ0000ZZ.
6.2.3.1.2.3. VIDEO_FREEZE¶
6.2.3.1.2.3.1. Tóm tắt¶
-
VIDEO_FREEZE¶
int ioctl(fd, VIDEO_FREEZE)
6.2.3.1.2.3.2. Đối số¶
|
||
|
Equals |
|
6.2.3.1.2.3.3. Sự miêu tả¶
Chú ý
Do not use in new drivers! See: General Notes
Ioctl này chỉ dành cho các thiết bị TV kỹ thuật số. Để điều khiển bộ giải mã V4L2, hãy sử dụng thay vào đó là V4L2 ZZ0000ZZ.
Cuộc gọi ioctl này sẽ tạm dừng luồng video trực tiếp đang được phát, nếu VIDEO_SOURCE_DEMUX được chọn. Giải mã và chơi bị đóng băng. Sau đó có thể khởi động lại quá trình giải mã và phát của luồng video bằng lệnh ZZ0000ZZ. Nếu VIDEO_SOURCE_MEMORY được chọn trong lệnh gọi ioctl ZZ0001ZZ, hệ thống con TV kỹ thuật số sẽ không giải mã nữa dữ liệu cho đến khi lệnh gọi ioctl ZZ0002ZZ hoặc ZZ0003ZZ được thực hiện.
6.2.3.1.2.3.4. Giá trị trả về¶
Khi thành công, trả về 0, lỗi -1 và biến ZZ0001ZZ được đặt một cách thích hợp. Các mã lỗi chung được mô tả tại Chương ZZ0000ZZ.
6.2.3.1.2.4. VIDEO_CONTINUE¶
6.2.3.1.2.4.1. Tóm tắt¶
-
VIDEO_CONTINUE¶
int ioctl(fd, VIDEO_CONTINUE)
6.2.3.1.2.4.2. Đối số¶
|
||
|
Equals |
|
6.2.3.1.2.4.3. Sự miêu tả¶
Chú ý
Do not use in new drivers! See: General Notes
Ioctl này chỉ dành cho các thiết bị TV kỹ thuật số. Để điều khiển bộ giải mã V4L2, hãy sử dụng thay vào đó là V4L2 ZZ0000ZZ.
Lệnh gọi ioctl này khởi động lại quá trình giải mã và phát video luồng được phát trước khi cuộc gọi tới ZZ0000ZZ được thực hiện.
6.2.3.1.2.4.4. Giá trị trả về¶
Khi thành công, trả về 0, lỗi -1 và biến ZZ0001ZZ được đặt một cách thích hợp. Các mã lỗi chung được mô tả tại Chương ZZ0000ZZ.
6.2.3.1.2.5. VIDEO_SELECT_SOURCE¶
6.2.3.1.2.5.1. Tóm tắt¶
-
VIDEO_SELECT_SOURCE¶
int ioctl(fd, VIDEO_SELECT_SOURCE, video_stream_source_t source)
6.2.3.1.2.5.2. Đối số¶
|
||
|
Equals |
|
video_stream_source_t |
Indicates which source shall be used for the Video stream. |
|
6.2.3.1.2.5.3. Sự miêu tả¶
Chú ý
Do not use in new drivers! See: General Notes
Ioctl này chỉ dành cho các thiết bị TV kỹ thuật số. Ioctl này cũng được hỗ trợ bởi trình điều khiển ivtv V4L2, nhưng trình điều khiển đó đã được thay thế bằng trình điều khiển dành riêng cho ivtv ZZ0000ZZ ioctl.
Cuộc gọi ioctl này thông báo cho thiết bị video nguồn nào sẽ được sử dụng cho dữ liệu đầu vào. Các nguồn có thể là demux hoặc bộ nhớ. Nếu bộ nhớ là được chọn, dữ liệu sẽ được đưa vào thiết bị video thông qua lệnh ghi sử dụng cấu trúc ZZ0000ZZ. Nếu demux được chọn, dữ liệu được truyền trực tiếp từ thiết bị giải mã trên bo mạch tới bộ giải mã.
Dữ liệu được cung cấp cho bộ giải mã cũng được điều khiển bởi bộ lọc PID. Lựa chọn đầu ra: ZZ0000ZZ ZZ0001ZZ.
6.2.3.1.2.5.4. Giá trị trả về¶
Khi thành công, trả về 0, lỗi -1 và biến ZZ0001ZZ được đặt một cách thích hợp. Các mã lỗi chung được mô tả tại Chương ZZ0000ZZ.
6.2.3.1.2.6. VIDEO_SET_BLANK¶
6.2.3.1.2.6.1. Tóm tắt¶
-
VIDEO_SET_BLANK¶
int ioctl(fd, VIDEO_SET_BLANK, int mode)
6.2.3.1.2.6.2. Đối số¶
|
||
|
Equals |
|
|
Indicates if the screen shall be blanked. |
|
TRUE ( != 0 ) |
Blank screen when stop. |
|
FALSE ( == 0 ) |
Show last decoded frame. |
|
6.2.3.1.2.6.3. Sự miêu tả¶
Chú ý
Do not use in new drivers! See: General Notes
Cuộc gọi ioctl này yêu cầu Thiết bị Video xóa hình ảnh.
6.2.3.1.2.6.4. Giá trị trả về¶
Khi thành công, trả về 0, lỗi -1 và biến ZZ0001ZZ được đặt một cách thích hợp. Các mã lỗi chung được mô tả tại Chương ZZ0000ZZ.
6.2.3.1.2.7. VIDEO_GET_STATUS¶
6.2.3.1.2.7.1. Tóm tắt¶
-
VIDEO_GET_STATUS¶
int ioctl(fd, int request = VIDEO_GET_STATUS,
struct video_status *status)
6.2.3.1.2.7.2. Đối số¶
|
||
|
Equals |
|
|
Returns the current status of the Video Device. |
|
6.2.3.1.2.7.3. Sự miêu tả¶
Chú ý
Do not use in new drivers! See: General Notes
Cuộc gọi ioctl này yêu cầu Thiết bị Video trả về trạng thái hiện tại của thiết bị.
6.2.3.1.2.7.4. Giá trị trả về¶
Khi thành công, trả về 0, lỗi -1 và biến ZZ0001ZZ được đặt một cách thích hợp. Các mã lỗi chung được mô tả tại Chương ZZ0000ZZ.
6.2.3.1.2.8. VIDEO_GET_EVENT¶
6.2.3.1.2.8.1. Tóm tắt¶
-
VIDEO_GET_EVENT¶
int ioctl(fd, int request = VIDEO_GET_EVENT,
struct video_event *ev)
6.2.3.1.2.8.2. Đối số¶
|
||
|
Equals |
|
|
Points to the location where the event, if any, is to be stored. |
|
6.2.3.1.2.8.3. Sự miêu tả¶
Chú ý
Do not use in new drivers! See: General Notes
Ioctl này chỉ dành cho thiết bị DVB. Để nhận các sự kiện từ bộ giải mã V4L2 thay vào đó hãy sử dụng V4L2 ZZ0000ZZ ioctl.
Cuộc gọi ioctl này trả về một sự kiện thuộc loại ZZ0001ZZ nếu có. A
một số sự kiện mới nhất nhất định sẽ được truy xuất và trả về theo thứ tự
sự xuất hiện. Các sự kiện cũ hơn có thể bị loại bỏ nếu không được tìm nạp kịp thời. Nếu
một sự kiện không có sẵn, hành vi sẽ phụ thuộc vào việc thiết bị có
ở chế độ chặn hoặc không chặn. Trong trường hợp sau, cuộc gọi không thành công
ngay lập tức với lỗi được đặt thành ZZ0000ZZ. Trong trường hợp trước,
chặn cuộc gọi cho đến khi có sự kiện. Cuộc thăm dò tiêu chuẩn của Linux()
và/hoặc các lệnh gọi hệ thống select() có thể được sử dụng với bộ mô tả tệp thiết bị
để theo dõi các sự kiện mới. Đối với select(), bộ mô tả tệp phải là
được bao gồm trong đối số ngoại trừ, và đối với cuộc thăm dò ý kiến(), POLLPRI phải là
được chỉ định làm điều kiện đánh thức. Quyền chỉ đọc là đủ
cho cuộc gọi ioctl này.
6.2.3.1.2.8.4. Giá trị trả về¶
Khi thành công, trả về 0, lỗi -1 và biến ZZ0001ZZ được đặt một cách thích hợp. Các mã lỗi chung được mô tả tại Chương ZZ0000ZZ.
|
There is no event pending, and the device is in non-blocking mode. |
|
|
Overflow in event queue - one or more events were lost. |
|
6.2.3.1.2.9. VIDEO_SET_DISPLAY_FORMAT¶
6.2.3.1.2.9.1. Tóm tắt¶
-
VIDEO_SET_DISPLAY_FORMAT¶
int ioctl(fd, int request = VIDEO_SET_DISPLAY_FORMAT,
video_display_format_t format)
6.2.3.1.2.9.2. Đối số¶
|
||
|
Equals |
|
video_displayformat_t |
Selects the video format to be used. |
|
6.2.3.1.2.9.3. Sự miêu tả¶
Chú ý
Do not use in new drivers! See: General Notes
Cuộc gọi ioctl này yêu cầu Thiết bị Video chọn định dạng video được áp dụng bởi chip MPEG trên video.
6.2.3.1.2.9.4. Giá trị trả về¶
Khi thành công, trả về 0, lỗi -1 và biến ZZ0001ZZ được đặt một cách thích hợp. Các mã lỗi chung được mô tả tại Chương ZZ0000ZZ.
6.2.3.1.2.10. VIDEO_STILLPICTURE¶
6.2.3.1.2.10.1. Tóm tắt¶
-
VIDEO_STILLPICTURE¶
int ioctl(fd, int request = VIDEO_STILLPICTURE,
struct video_still_picture *sp)
6.2.3.1.2.10.2. Đối số¶
|
||
|
Equals |
|
|
Pointer to the location where the |
|
6.2.3.1.2.10.3. Sự miêu tả¶
Chú ý
Do not use in new drivers! See: General Notes
Cuộc gọi ioctl này yêu cầu Thiết bị Video hiển thị hình ảnh tĩnh (I-khung). Dữ liệu đầu vào phải là phần của video cơ bản luồng chứa I-frame. Thông thường phần này được trích xuất từ một Ghi TS hoặc PES. Độ phân giải và codec (xem ZZ0000ZZ) phải được thiết bị hỗ trợ. Nếu con trỏ là NULL thì dòng điện hình ảnh tĩnh được hiển thị bị trống.
ví dụ. AV7110 hỗ trợ MPEG1 và MPEG2 với PAL-SD phổ biến nghị quyết.
6.2.3.1.2.10.4. Giá trị trả về¶
Khi thành công, trả về 0, lỗi -1 và biến ZZ0001ZZ được đặt một cách thích hợp. Các mã lỗi chung được mô tả tại Chương ZZ0000ZZ.
6.2.3.1.2.11. VIDEO_FAST_FORWARD¶
6.2.3.1.2.11.1. Tóm tắt¶
-
VIDEO_FAST_FORWARD¶
int ioctl(fd, int request = VIDEO_FAST_FORWARD, int nFrames)
6.2.3.1.2.11.2. Đối số¶
|
||
|
Equals |
|
|
The number of frames to skip. |
|
6.2.3.1.2.11.3. Sự miêu tả¶
Chú ý
Do not use in new drivers! See: General Notes
Cuộc gọi ioctl này yêu cầu Thiết bị Video bỏ qua việc giải mã N số I-frame. Cuộc gọi này chỉ có thể được sử dụng nếu ZZ0000ZZ đã chọn.
6.2.3.1.2.11.4. Giá trị trả về¶
Khi thành công, trả về 0, lỗi -1 và biến ZZ0001ZZ được đặt một cách thích hợp. Các mã lỗi chung được mô tả tại Chương ZZ0000ZZ.
|
Mode |
6.2.3.1.2.12. VIDEO_SLOWMOTION¶
6.2.3.1.2.12.1. Tóm tắt¶
-
VIDEO_SLOWMOTION¶
int ioctl(fd, int request = VIDEO_SLOWMOTION, int nFrames)
6.2.3.1.2.12.2. Đối số¶
|
||
|
Equals |
|
|
The number of times to repeat each frame. |
|
6.2.3.1.2.12.3. Sự miêu tả¶
Chú ý
Do not use in new drivers! See: General Notes
Cuộc gọi ioctl này yêu cầu thiết bị video lặp lại giải mã khung số N nhiều lần. Cuộc gọi này chỉ có thể được sử dụng nếu ZZ0000ZZ đã chọn.
6.2.3.1.2.12.4. Giá trị trả về¶
Khi thành công, trả về 0, lỗi -1 và biến ZZ0001ZZ được đặt một cách thích hợp. Các mã lỗi chung được mô tả tại Chương ZZ0000ZZ.
|
Mode |
6.2.3.1.2.13. VIDEO_GET_CAPABILITIES¶
6.2.3.1.2.13.1. Tóm tắt¶
-
VIDEO_GET_CAPABILITIES¶
int ioctl(fd, int request = VIDEO_GET_CAPABILITIES, unsigned int *cap)
6.2.3.1.2.13.2. Đối số¶
|
||
|
Equals |
|
|
Pointer to a location where to store the capability information. |
|
6.2.3.1.2.13.3. Sự miêu tả¶
Chú ý
Do not use in new drivers! See: General Notes
Cuộc gọi ioctl này hỏi thiết bị video về khả năng giải mã của nó. Khi thành công, nó trả về một số nguyên có các bit được đặt theo định nghĩa trong ZZ0000ZZ.
6.2.3.1.2.13.4. Giá trị trả về¶
Khi thành công, trả về 0, lỗi -1 và biến ZZ0001ZZ được đặt một cách thích hợp. Các mã lỗi chung được mô tả tại Chương ZZ0000ZZ.
6.2.3.1.2.14. VIDEO_CLEAR_BUFFER¶
6.2.3.1.2.14.1. Tóm tắt¶
-
VIDEO_CLEAR_BUFFER¶
int ioctl(fd, int request = VIDEO_CLEAR_BUFFER)
6.2.3.1.2.14.2. Đối số¶
|
||
|
Equals |
|
6.2.3.1.2.14.3. Sự miêu tả¶
Chú ý
Do not use in new drivers! See: General Notes
Cuộc gọi ioctl này sẽ xóa tất cả bộ đệm video trong trình điều khiển và trong phần cứng bộ giải mã.
6.2.3.1.2.14.4. Giá trị trả về¶
Khi thành công, trả về 0, lỗi -1 và biến ZZ0001ZZ được đặt một cách thích hợp. Các mã lỗi chung được mô tả tại Chương ZZ0000ZZ.
6.2.3.1.2.15. VIDEO_SET_STREAMTYPE¶
6.2.3.1.2.15.1. Tóm tắt¶
-
VIDEO_SET_STREAMTYPE¶
int ioctl(fd, int request = VIDEO_SET_STREAMTYPE, int type)
6.2.3.1.2.15.2. Đối số¶
|
||
|
Equals |
|
|
Stream type. |
|
6.2.3.1.2.15.3. Sự miêu tả¶
Chú ý
Do not use in new drivers! See: General Notes
Ioctl này cho trình điều khiển biết loại luồng nào sẽ được ghi đến nó. Bộ giải mã thông minh cũng có thể không hỗ trợ hoặc bỏ qua (như AV7110) cuộc gọi này và tự xác định loại luồng.
Các loại luồng hiện đang được sử dụng:
Codec |
Stream type |
|---|---|
MPEG2 |
0 |
MPEG4 h.264 |
1 |
VC1 |
3 |
MPEG4 Part2 |
4 |
VC1 SM |
5 |
MPEG1 |
6 |
HEVC h.265 |
7
DREAMBOX: 22
|
AVS |
16 |
AVS2 |
40 |
Không phải mọi bộ giải mã đều hỗ trợ tất cả các loại luồng.
6.2.3.1.2.15.4. Giá trị trả về¶
Khi thành công, trả về 0, lỗi -1 và biến ZZ0001ZZ được đặt một cách thích hợp. Các mã lỗi chung được mô tả tại Chương ZZ0000ZZ.
6.2.3.1.2.16. VIDEO_SET_FORMAT¶
6.2.3.1.2.16.1. Tóm tắt¶
-
VIDEO_SET_FORMAT¶
int ioctl(fd, int request = VIDEO_SET_FORMAT, video_format_t format)
6.2.3.1.2.16.2. Đối số¶
|
||
|
Equals |
|
video_format_t |
Video format of TV as defined in section video_format_t. |
|
6.2.3.1.2.16.3. Sự miêu tả¶
Chú ý
Do not use in new drivers! See: General Notes
Ioctl này đặt định dạng màn hình (tỷ lệ khung hình) của đầu ra được kết nối thiết bị (TV) để có thể điều chỉnh đầu ra của bộ giải mã tương ứng.
6.2.3.1.2.16.4. Giá trị trả về¶
Khi thành công, trả về 0, lỗi -1 và biến ZZ0001ZZ được đặt một cách thích hợp. Các mã lỗi chung được mô tả tại Chương ZZ0000ZZ.
6.2.3.1.2.17. VIDEO_GET_SIZE¶
6.2.3.1.2.17.1. Tóm tắt¶
-
VIDEO_GET_SIZE¶
int ioctl(int fd, int request = VIDEO_GET_SIZE, video_size_t *size)
6.2.3.1.2.17.2. Đối số¶
|
||
|
Equals |
|
video_size_t |
Returns the size and aspect ratio. |
|
6.2.3.1.2.17.3. Sự miêu tả¶
Chú ý
Do not use in new drivers! See: General Notes
Ioctl này trả về kích thước và tỷ lệ khung hình.
6.2.3.1.2.17.4. Giá trị trả về¶
Khi thành công, trả về 0, lỗi -1 và biến ZZ0001ZZ được đặt một cách thích hợp. Các mã lỗi chung được mô tả tại Chương ZZ0000ZZ.
6.2.3.1.2.18. VIDEO_GET_PTS¶
6.2.3.1.2.18.1. Synopsis¶
-
VIDEO_GET_PTS¶
int ioctl(int fd, int request = VIDEO_GET_PTS, __u64 *pts)
6.2.3.1.2.18.2. Arguments¶
|
||
|
Equals |
|
|
Returns the 33-bit timestamp as defined in ITU T-REC-H.222.0 / ISO/IEC 13818-1. The PTS should belong to the currently played frame if possible, but may also be a value close to it like the PTS of the last decoded frame or the last PTS extracted by the PES parser. |
|
6.2.3.1.2.18.3. Description¶
Chú ý
Do not use in new drivers! See: General Notes
For V4L2 decoders this ioctl has been replaced by the
V4L2_CID_MPEG_VIDEO_DEC_PTS control.
This ioctl call asks the Video Device to return the current PTS timestamp.
6.2.3.1.2.18.4. Return Value¶
On success 0 is returned, on error -1 and the errno variable is set
appropriately. The generic error codes are described at the
Generic Error Codes chapter.
6.2.3.1.2.19. VIDEO_GET_FRAME_COUNT¶
6.2.3.1.2.19.1. Tóm tắt¶
-
VIDEO_GET_FRAME_COUNT¶
int ioctl(int fd, VIDEO_GET_FRAME_COUNT, __u64 *pts)
6.2.3.1.2.19.2. Đối số¶
|
||
|
Equals |
|
|
Returns the number of frames displayed since the decoder was started. |
|
6.2.3.1.2.19.3. Sự miêu tả¶
Chú ý
Do not use in new drivers! See: General Notes
Đối với bộ giải mã V4L2, ioctl này đã được thay thế bằng Điều khiển ZZ0000ZZ.
Cuộc gọi ioctl này yêu cầu Thiết bị Video trả về số lượng hiển thị frame kể từ khi bộ giải mã được khởi động.
6.2.3.1.2.19.4. Giá trị trả về¶
Khi thành công, trả về 0, lỗi -1 và biến ZZ0001ZZ được đặt một cách thích hợp. Các mã lỗi chung được mô tả tại Chương ZZ0000ZZ.
6.2.3.1.2.20. VIDEO_COMMAND¶
6.2.3.1.2.20.1. Tóm tắt¶
-
VIDEO_COMMAND¶
int ioctl(int fd, int request = VIDEO_COMMAND,
struct video_command *cmd)
6.2.3.1.2.20.2. Đối số¶
|
||
|
Equals |
|
Commands the decoder. |
||
6.2.3.1.2.20.3. Sự miêu tả¶
Chú ý
Do not use in new drivers! See: General Notes
Đối với bộ giải mã V4L2, ioctl này đã được thay thế bằng ZZ0000ZZ ioctl.
Ioctl này ra lệnh cho bộ giải mã. ZZ0002ZZ là một tập hợp con của cấu trúc ZZ0001ZZ, vì vậy hãy tham khảo Tài liệu ZZ0000ZZ cho thêm thông tin.
6.2.3.1.2.20.4. Giá trị trả về¶
Khi thành công, trả về 0, lỗi -1 và biến ZZ0001ZZ được đặt một cách thích hợp. Các mã lỗi chung được mô tả tại Chương ZZ0000ZZ.
6.2.3.1.2.21. VIDEO_TRY_COMMAND¶
6.2.3.1.2.21.1. Tóm tắt¶
-
VIDEO_TRY_COMMAND¶
int ioctl(int fd, int request = VIDEO_TRY_COMMAND,
struct video_command *cmd)
6.2.3.1.2.21.2. Đối số¶
|
||
|
Equals |
|
Try a decoder command. |
||
6.2.3.1.2.21.3. Sự miêu tả¶
Chú ý
Do not use in new drivers! See: General Notes
Đối với bộ giải mã V4L2, ioctl này đã được thay thế bằng ZZ0000ZZ ioctl.
Ioctl này thử lệnh giải mã. ZZ0002ZZ là một tập hợp con của cấu trúc ZZ0001ZZ, vì vậy hãy tham khảo Tài liệu ZZ0000ZZ để biết thêm thông tin.
6.2.3.1.2.21.4. Giá trị trả về¶
Khi thành công, trả về 0, lỗi -1 và biến ZZ0001ZZ được đặt một cách thích hợp. Các mã lỗi chung được mô tả tại Chương ZZ0000ZZ.
6.2.3.1.2.22. mở()¶
6.2.3.1.2.22.1. Tóm tắt¶
#include <fcntl.h>
-
int open(const char *deviceName, int flags)¶
6.2.3.1.2.22.2. Đối số¶
|
Name of specific video device. |
|
|
A bit-wise OR of the following flags: |
|
|
read-only access |
|
|
read/write access |
|
|
Open in non-blocking mode
(blocking mode is the default)
|
|
6.2.3.1.2.22.3. Sự miêu tả¶
Cuộc gọi hệ thống này sẽ mở một thiết bị video có tên (ví dụ: /dev/dvb/adapter?/video?) để sử dụng sau này.
Khi lệnh gọi open() thành công, thiết bị sẽ sẵn sàng để sử dụng. các
tầm quan trọng của chế độ chặn hoặc không chặn được mô tả trong
tài liệu cho các chức năng có sự khác biệt. Nó không
ảnh hưởng đến ngữ nghĩa của chính lệnh gọi open(). Một thiết bị được mở trong
chế độ chặn sau này có thể được chuyển sang chế độ không chặn (và ngược lại)
bằng cách sử dụng lệnh F_SETFL của lệnh gọi hệ thống fcntl. Đây là một tiêu chuẩn
cuộc gọi hệ thống, được ghi lại trong trang hướng dẫn Linux cho fcntl. Chỉ có một
người dùng có thể mở Thiết bị video ở chế độ O_RDWR. Tất cả những nỗ lực khác để
mở thiết bị ở chế độ này sẽ không thành công và mã lỗi sẽ xuất hiện
đã quay trở lại. Nếu Thiết bị Video được mở ở chế độ O_RDONLY, thì chỉ
lệnh gọi ioctl có thể được sử dụng là ZZ0000ZZ. Tất cả các cuộc gọi khác sẽ
trả lại mã lỗi.
6.2.3.1.2.22.4. Giá trị trả về¶
|
Device driver not loaded/available. |
|
|
Internal error. |
|
|
Device or resource busy. |
|
|
Invalid argument. |
|
6.2.3.1.2.23. đóng()¶
6.2.3.1.2.23.1. Tóm tắt¶
-
int close(int fd)¶
6.2.3.1.2.23.2. Đối số¶
|
||
6.2.3.1.2.23.3. Sự miêu tả¶
Cuộc gọi hệ thống này sẽ đóng thiết bị video đã mở trước đó.
6.2.3.1.2.23.4. Giá trị trả về¶
|
fd is not a valid open file descriptor. |
6.2.3.1.2.24. viết()¶
6.2.3.1.2.24.1. Tóm tắt¶
-
size_t write(int fd, const void *buf, size_t count)¶
6.2.3.1.2.24.2. Đối số¶
|
||
|
Pointer to the buffer containing the PES data. |
|
|
Size of buf. |
|
6.2.3.1.2.24.3. Sự miêu tả¶
Cuộc gọi hệ thống này chỉ có thể được sử dụng nếu VIDEO_SOURCE_MEMORY được chọn trong ioctl gọi ZZ0000ZZ. Dữ liệu được cung cấp phải ở dạng Định dạng PES, trừ khi khả năng cho phép các định dạng khác. TS là định dạng phổ biến nhất để lưu trữ dữ liệu DVB, nó cũng thường được hỗ trợ. Nếu O_NONBLOCK không được chỉ định, chức năng sẽ chặn cho đến khi có dung lượng bộ đệm có sẵn. Lượng dữ liệu được truyền được ngụ ý bằng số lượng.
Lưu ý
See: DVB Data Formats
6.2.3.1.2.24.4. Giá trị trả về¶
|
Mode |
|
|
Attempted to write more data than the internal buffer can hold. |
|
|
fd is not a valid open file descriptor. |
|