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/.
7.7. ioctl VIDIOC_DECODER_CMD, VIDIOC_TRY_DECODER_CMD¶
7.7.1. Tên¶
VIDIOC_DECODER_CMD - VIDIOC_TRY_DECODER_CMD - Thực thi lệnh giải mã
7.7.2. Tóm tắt¶
-
VIDIOC_DECODER_CMD¶
ZZ0000ZZ
-
VIDIOC_TRY_DECODER_CMD¶
ZZ0000ZZ
7.7.3. Đối số¶
- ZZ0001ZZ
Bộ mô tả tệp được trả về bởi ZZ0000ZZ.
- ZZ0001ZZ
con trỏ tới cấu trúc ZZ0000ZZ.
7.7.4. Sự miêu tả¶
Các ioctls này điều khiển bộ giải mã âm thanh/video (thường là MPEG-). ZZ0001ZZ gửi lệnh đến bộ giải mã, ZZ0002ZZ có thể được sử dụng để thử lệnh mà không cần thực sự thực hiện nó. Để gửi lệnh, ứng dụng phải khởi tạo tất cả các trường của một cấu trúc ZZ0000ZZ và gọi ZZ0003ZZ hoặc ZZ0004ZZ với con trỏ tới cấu trúc này.
Trường ZZ0000ZZ phải chứa mã lệnh. Một số lệnh sử dụng Trường ZZ0001ZZ để biết thêm thông tin.
ZZ0000ZZ hoặc ZZ0001ZZ cuộc gọi sẽ gửi lệnh START tiềm ẩn tới bộ giải mã nếu nó chưa được thực hiện đã bắt đầu chưa. Áp dụng cho cả hai hàng đợi của bộ giải mã mem2mem.
ZZ0000ZZ hoặc ZZ0001ZZ lệnh gọi của bộ mô tả tệp phát trực tuyến sẽ gửi STOP ngay lập tức lệnh tới bộ giải mã và tất cả dữ liệu được lưu vào bộ đệm sẽ bị loại bỏ. Áp dụng cho cả hai hàng đợi của bộ giải mã mem2mem.
Về nguyên tắc, các ioctls này là tùy chọn, không phải trình điều khiển nào cũng có thể hỗ trợ chúng. Họ đã được giới thiệu trong Linux 3.3. Tuy nhiên, chúng bắt buộc đối với bộ giải mã mem2mem có trạng thái (như được ghi lại trong ZZ0000ZZ).
-
type v4l2_decoder_cmd¶
__u32 |
|
The decoder command, see Decoder Commands. |
|
__u32 |
|
Flags to go with the command. If no flags are defined for this command, drivers and applications must set this field to zero. |
|
union { |
(anonymous) |
||
struct |
|
Structure containing additional data for the
|
|
__s32 |
|
Playback speed and direction. The playback speed is defined as
|
|
__u32 |
|
Format restrictions. This field is set by the driver, not the
application. Possible values are |
|
struct |
|
Structure containing additional data for the |
|
__u64 |
|
Stop playback at this |
|
struct |
|
||
__u32 |
|
Reserved for future extensions. Drivers and applications must set the array to zero. |
|
} |
|||
|
0 |
Start the decoder. When the decoder is already running or paused,
this command will just change the playback speed. That means that
calling For a device implementing the Memory-to-Memory Stateful Video Decoder Interface, once the drain sequence
is initiated with the |
|
1 |
Stop the decoder. When the decoder is already stopped, this
command does nothing. This command has two flags: if
For a device implementing the Memory-to-Memory Stateful Video Decoder Interface, the command will initiate
the drain sequence as documented in Memory-to-Memory Stateful Video Decoder Interface. No flags or other
arguments are accepted in this case. Any attempt to invoke the command
again before the sequence completes will trigger an |
|
2 |
Pause the decoder. When the decoder has not been started yet, the
driver will return an |
|
3 |
Resume decoding after a PAUSE command. When the decoder has not
been started yet, the driver will return an |
|
4 |
Flush any held capture buffers. Only valid for stateless decoders.
This command is typically used when the application reached the
end of the stream and the last output buffer had the
|
7.7.5. 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.
- EBUSY
Trình tự thoát của thiết bị triển khai ZZ0000ZZ vẫn đang ở trạng thái tiến bộ. Không được phép đưa ra lệnh giải mã khác cho đến khi nó hoàn thành.
- EINVAL
Trường ZZ0000ZZ không hợp lệ.
- EPERM
Ứng dụng đã gửi lệnh PAUSE hoặc RESUME khi bộ giải mã được không chạy.