Vietnamese (machine translation)

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:

DVB Video Device

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ố

VIDEO_FORMAT_4_3

Select 4:3 format.

VIDEO_FORMAT_16_9

Select 16:9 format.

VIDEO_FORMAT_221_1

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ố

VIDEO_PAN_SCAN

Use pan and scan format.

VIDEO_LETTER_BOX

Use letterbox format.

VIDEO_CENTER_CUT_OUT

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

int w

Video width in pixels.

int h

Video height in pixels.

video_format_t aspect_ratio

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ố

VIDEO_SOURCE_DEMUX

Select the demux as the main source.

VIDEO_SOURCE_MEMORY

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_STOPPED

Video is stopped.

VIDEO_PLAYING

Video is currently playing.

VIDEO_FREEZED

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

__u32 cmd

Decoder command

__u32 flags

Flags for the Decoder command.

struct stop

__u64 pts

MPEG PTS

stuct play

__s32 speed

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.

__u32 format

Play input formats

__u32 data[16]

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

VIDEO_CMD_PLAY

Start playback.

VIDEO_CMD_STOP

Stop playback.

VIDEO_CMD_FREEZE

Freeze playback.

VIDEO_CMD_CONTINUE

Continue playback after freeze.

Flags for VIDEO_CMD_FREEZE

VIDEO_CMD_FREEZE_TO_BLACK

Show black picture on freeze.

Flags for VIDEO_CMD_STOP

VIDEO_CMD_STOP_TO_BLACK

Show black picture on stop.

VIDEO_CMD_STOP_IMMEDIATELY

Stop immediately, without emptying buffers.

Play input formats

VIDEO_PLAY_FMT_NONE

The decoder has no special format requirements

VIDEO_PLAY_FMT_GOP

The decoder requires full GOPs

Field order

VIDEO_VSYNC_FIELD_UNKNOWN

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.

VIDEO_VSYNC_FIELD_ODD

Vsync is for an odd field.

VIDEO_VSYNC_FIELD_EVEN

Vsync is for an even field.

VIDEO_VSYNC_FIELD_PROGRESSIVE

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

__s32 type

Event type.

VIDEO_EVENT_SIZE_CHANGED

Size changed.

VIDEO_EVENT_FRAME_RATE_CHANGED

Framerate changed.

VIDEO_EVENT_DECODER_STOPPED

Decoder stopped.

VIDEO_EVENT_VSYNC

Vsync occurred.

long timestamp

MPEG PTS at occurrence.

union u

video_size_t size

Resolution and aspect ratio of the video.

unsigned int frame_rate

in frames per 1000sec

unsigned char vsync_field

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

int video_blank

Show blank video on freeze?

TRUE ( != 0 )

Blank screen when freeze.

FALSE ( == 0 )

Show last decoded frame.

video_play_state_t play_state

Current state of playback.

video_stream_source_t stream_source

Current source (demux/memory).

video_format_t video_format

Current aspect ratio of stream.

video_displayformat_t display_format

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

char *iFrame

Pointer to a single iframe in memory.

int32_t size

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:

VIDEO_CAP_MPEG1

The hardware can decode MPEG1.

VIDEO_CAP_MPEG2

The hardware can decode MPEG2.

VIDEO_CAP_SYS

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.

VIDEO_CAP_PROG

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ố

int fd

File descriptor returned by a previous call to `open()`_.

int request

Equals VIDEO_STOP for this command.

int mode

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ố

int fd

File descriptor returned by a previous call to `open()`_.

int request

Equals VIDEO_PLAY for this command.

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ố

int fd

File descriptor returned by a previous call to `open()`_.

int request

Equals VIDEO_FREEZE for this command.

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ố

int fd

File descriptor returned by a previous call to `open()`_.

int request

Equals VIDEO_CONTINUE for this command.

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ố

int fd

File descriptor returned by a previous call to `open()`_.

int request

Equals VIDEO_SELECT_SOURCE for this command.

video_stream_source_t source

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ố

int fd

File descriptor returned by a previous call to `open()`_.

int request

Equals VIDEO_SET_BLANK for this command.

int mode

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ố

int fd

File descriptor returned by a previous call to `open()`_.

int request

Equals VIDEO_GET_STATUS for this command.

struct video_status *status

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ố

int fd

File descriptor returned by a previous call to `open()`_.

int request

Equals VIDEO_GET_EVENT for this command.

struct `video_event`_ *ev

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.

EWOULDBLOCK

There is no event pending, and the device is in non-blocking mode.

EOVERFLOW

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ố

int fd

File descriptor returned by a previous call to `open()`_.

int request

Equals VIDEO_SET_DISPLAY_FORMAT for this command.

video_displayformat_t format

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ố

int fd

File descriptor returned by a previous call to `open()`_.

int request

Equals VIDEO_STILLPICTURE for this command.

struct `video_still_picture`_ *sp

Pointer to the location where the struct with the I-frame and size is stored.

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ố

int fd

File descriptor returned by a previous call to `open()`_.

int request

Equals VIDEO_FAST_FORWARD for this command.

int nFrames

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.

EPERM

Mode VIDEO_SOURCE_MEMORY not selected.


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ố

int fd

File descriptor returned by a previous call to `open()`_.

int request

Equals VIDEO_SLOWMOTION for this command.

int nFrames

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.

EPERM

Mode VIDEO_SOURCE_MEMORY not selected.


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ố

int fd

File descriptor returned by a previous call to `open()`_.

int request

Equals VIDEO_GET_CAPABILITIES for this command.

unsigned int *cap

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ố

int fd

File descriptor returned by a previous call to `open()`_.

int request

Equals VIDEO_CLEAR_BUFFER for this command.

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ố

int fd

File descriptor returned by a previous call to `open()`_.

int request

Equals VIDEO_SET_STREAMTYPE for this command.

int type

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ố

int fd

File descriptor returned by a previous call to `open()`_.

int request

Equals VIDEO_SET_FORMAT for this command.

video_format_t format

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ố

int fd

File descriptor returned by a previous call, to `open()`_.

int request

Equals VIDEO_GET_SIZE for this command.

video_size_t *size

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

int fd

File descriptor returned by a previous call to `open()`_.

int request

Equals VIDEO_GET_PTS for this command.

__u64 *pts

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ố

int fd

File descriptor returned by a previous call to `open()`_.

int request

Equals VIDEO_GET_FRAME_COUNT for this command.

__u64 *pts

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ố

int fd

File descriptor returned by a previous call to `open()`_.

int request

Equals VIDEO_COMMAND for this command.

`struct video_command`_ *cmd

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ố

int fd

File descriptor returned by a previous call to `open()`_.

int request

Equals VIDEO_TRY_COMMAND for this command.

`struct video_command`_ *cmd

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ố

const char *deviceName

Name of specific video device.

int flags

A bit-wise OR of the following flags:

O_RDONLY

read-only access

O_RDWR

read/write access

O_NONBLOCK

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ề

ENODEV

Device driver not loaded/available.

EINTERNAL

Internal error.

EBUSY

Device or resource busy.

EINVAL

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ố

int fd

File descriptor returned by a previous call to `open()`_.

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ề

EBADF

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ố

int fd

File descriptor returned by a previous call to `open()`_.

void *buf

Pointer to the buffer containing the PES data.

size_t count

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ề

EPERM

Mode VIDEO_SOURCE_MEMORY not selected.

ENOMEM

Attempted to write more data than the internal buffer can hold.

EBADF

fd is not a valid open file descriptor.