Đồng bộ ứng dụng HbbTV

Một phần của tài liệu (Luận văn thạc sĩ) Nghiên cứu mô hình truyền hình lai ghép HbbTV và xây dựng ứng dụng minh họa (Trang 62 - 65)

4.5.1 Định nghĩa sự kiện

Khái niệm sự kiện (event) được DSM - CC đưa ra để dùng trong trường hợp cần đồng bộ giữa chương trình quảng bá và ứng dụng tương tác. Có thể xem sự kiện là một tín hiệu đặc biệt được đưa vào dòng truyền quảng bá để báo cho đầu thu thực hiện một số tác vụ cụ thể tại thời điểm xác định. Các báo hiệu được mang trong dòng thành phần riêng, và không nhất thiết phải truyền liên tục. Mỗi sự kiện khi báo hiệu có thể bao gồm dữ liệu kèm theo. Có thể tạo nhiều tín hiệu khác nhau cho từng mục đích khác nhau. Nhiều sự kiện có thể truyền song song trong dòng truyền, giữa chúng được phân biệt bằng mã nhận diện riêng.

Đối tƣợng streamevent trong OC:

Về cơ bản, DSM-CC OC đóng gói file, thư mục ứng dụng và truyền chúng theo cơ chế lặp mà đầu thu có thể dễ dàng nhận được từng thành phần dữ liệu riêng. OC bao gồm 3 đối tượng chính: ServiceGatewayMessage (cấu trúc thư mục gốc), DirectoryMessage (cấu trúc các thư mục con) và FileMessage (dữ liệu file). Ngoài ra, OC còn hỗ trợ đối tượng StreamEventMessage. Đây là đối tượng đặc biệt không lưu bất kỳ dữ liệu nào thuộc ứng dụng. Nó dùng để định nghĩa các sự kiện có trong dòng truyền, cũng như cách tham chiếu đến dòng thành phần tương ứng mang thông tin kích hoạt sự kiện. Thông tin mô tả cho mỗi sự kiện bao gồm mã nhận diện, tên sự kiện và tham chiếu dòng con được mô trả trong hình 4.3.

53

Hình 4.3: Mô hình phát lặp dữ liệu theo giao thức OC

Chuẩn DSMCC OC vốn rất phức tạp, bao gồm các cấu trúc dữ liệu đan xen, nhiều cấu trúc quan trọng trong chuẩn đã được đề cập chi tiết trong đề tài trước đây. Cấu trúc chi tiết của đối tượng StreamEventMessage được mô tả sau đây:

Bảng 4.12: Cấu trúc đối tượng BIOP::StreamEventMessage [8]

Cú pháp Số byte

Diễn giải

BIOP::StreamEventMessage(){

Magic 4 Báo hiệu bắt đầu đối tượng, có trị

“BIOP”

Biop::version 2 Phiên bản đối tượng, trị “1.0” Byte_order 1 Thứ tự mã hóa byte, mặc định 0 message_type 1 Loại đối tượng, trị 0 (đối tượng tải) message_size 4 Kích thước đối tượng (từ sau trường này) objectKey_length 1 Chiều dài objectKey_data, tối đa 4 byte

objectKey_data Chỉ danh đối tượng

objectKind_length 1 Chiều dài objectKind_data, tối đa 4 byte objectKind_data 4 Loại đối tượng StreamEvent, có trị “ste ” objectInfo_length 2 Thông tin thêm

54 eventNames_count

Liệt kê tên của những sự kiện dòng for (eventNames_count) {

eventName_len eventName_data }

}

messageBody_len Tham chiếu các dòng con mang thông tin kích hoạt sự kiện

taps_count

for (taps_count) {

id Nhận diện loại tham chiếu dòng con, trị 0

use 1 Mục đích sử dụng dòng con được tham chiếu. Trường hợp này sẽ tham chiếu đến dòng kích hoạt sự kiện (xem phần sau) có trị 0xD (STR_EVENT_USE)

association_tag Nhãn nhận diện dòng con (được gán trong PMT)

selector_len 2 Thông tin thêm, không được dùng

}

eventIds_count 2 Danh sách mã sự kiện, đồng nhất với danh sách tên sự kiện trong EventList for (eventIds_count) { 1

eventId }

}

File định dạng xml

Như vậy nếu ứng dụng được truyền qua băng rộng nhưng có định nghĩa sự kiện, thì dòng truyền phải gồm các cấu trúc dữ liên quan cho một OC chứa định nghĩa này. Tuy nhiên, ứng dụng truyền qua băng rộng cũng có thể tải kèm file định nghĩa ở dạng *.xml. File gồm những thông tin tương đương với đối tượng StreamEventMessage trong OC, file xml được định nghĩa theo lược đồ sau:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!--W3C Schema generated by XMLSpy v2006 sp2 U

(http://www.altova.com)-->

<xs:schema xmlns:xs=http://

55 targetNamespace="urn:dvb:mis:dsmcc:2009" elementFormDefault="qualified" attributeFormDefault="qualified"> <xs:complexType name="DsmccType"> <xs:sequence> <xs:element name="dsmcc_object" type="dsmcc:DsmccObjectType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType>

<xs:element name="dsmcc" type="dsmcc:DsmccType"/> <xs:complexType name="DsmccObjectType"> <xs:sequence> <xs:element name="stream_event" type="dsmcc:StreamEventType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence>

<xs:attribute name="component_tag" type="xs:string" use="required"/>

</xs:complexType>

<xs:complexType name="StreamEventType">

<xs:attribute name="stream_event_id" type="xs:string" use="required"/>

<xs:attribute name="stream_event_name" type="xs:string" use="required"/>

</xs:complexType> </xs:schema>

Một phần của tài liệu (Luận văn thạc sĩ) Nghiên cứu mô hình truyền hình lai ghép HbbTV và xây dựng ứng dụng minh họa (Trang 62 - 65)