Oracle Multimediaでは、ビデオ・データの格納および管理をサポートするORDVideoオブジェクト型が記述されます。
ORDVideoオブジェクト型は、ordvspec.sqlファイルで定義されています。 インストール後、このファイルは次のOracleホーム・ディレクトリに格納されています。
<ORACLE_HOME>/ord/im/admin(LinuxおよびUNIXの場合)
<ORACLE_HOME>\ord\im\admin(Windowsの場合)
Oracle Multimediaには、ORDVideoオブジェクト型について次の情報が含まれます。
この章の例では、Product Mediaサンプル・スキーマのONLINE_MEDIA表を使用しています。ご使用のコンピュータでこれらの例を再現するには、まず、ORDVideoのコンストラクタ、およびimport( )とimportFrom( )メソッドの項に示す例を実行する必要があります。例に示すビデオ・ファイルは、実際のファイルに置き換えてください。また、ユーザーronがこの例を使用する場合、例の実行前に次の文を発行する必要があります。ここで/mydir/workは、ronがビデオ・データを検索するディレクトリです。
CONNECT /as sysdba CREATE OR REPLACE DIRECTORY FILE_DIR as '/mydir/work'; GRANT READ ON DIRECTORY FILE_DIR TO 'ron';
サンプル・スキーマの詳細は、『Oracle Databaseサンプル・スキーマ』を参照してください。
|
注意: (BLOBを直接修正するか、または外部ソースを変更して)ビデオ・データ自体を操作した場合、オブジェクト属性の同期化が保持され、更新時刻が修正されていることを確認する必要があります。そうしないと、オブジェクト属性がビデオ・データと一致しなくなります。 |
ORDSourceレベルでコールされたメソッドは、ソース・プラグインに渡されて処理され、最初の引数にctx (RAW)を取ります。これらのメソッドのいずれかをクライアントから初めてコールする場合、ctx構造体を割り当ててNULLに初期化してから、openSource( )メソッドをコールする必要があります。このとき、ソース・プラグインが、このクライアント用にコンテキストを初期化できます。処理が完了したら、クライアントからcloseSource( )メソッドをコールする必要があります。
ソース・プラグインのコールによってコールされたメソッドは、最初の引数にctx (RAW)を取ります。
ORDVideoレベルでコールされたメソッドは、フォーマット・プラグインに渡されて処理され、最初の引数にctx (RAW)を取ります。これらのメソッドのいずれかをクライアントから初めてコールする場合、ctx構造体を割り当てて、NULLに初期化する必要があります。
|
注意: 今回のリリースでは、Oracleが提供するいずれのプラグインもctx構造体を使用しません。また、すべてのソース・プラグインまたはフォーマット・プラグインがctx構造体を使用するわけではありませんが、前述の方法でコーディングすると、アプリケーションは、現行または今後のソース・プラグインまたはフォーマット・プラグインで動作します。 |
ネイティブにサポートされていないフォーマットの場合、個々のいずれかのsetメソッドを使用して、オブジェクトの属性値を設定する必要があります。ネイティブにサポートされているフォーマットの場合は、setProperties( )メソッドを使用して、オブジェクトの属性を移入するか、またはフォーマット・プラグインを記述します。
ORDVideoオブジェクト型は、ビデオ・データの格納および管理をサポートします。 このオブジェクト型の属性は、ordvspec.sqlファイルで次のように定義されています。
------------------- -- TYPE ATTRIBUTES ------------------- description VARCHAR2(4000), source ORDSource, format VARCHAR2(31), mimeType VARCHAR2(4000), comments CLOB, -- VIDEO RELATED ATTRIBUTES width INTEGER, height INTEGER, frameResolution INTEGER, frameRate INTEGER, videoDuration INTEGER, numberOfFrames INTEGER, compressionType VARCHAR2(4000), numberOfColors INTEGER, bitRate INTEGER,
属性の説明は次のとおりです。
description: ビデオ・オブジェクトの説明。
source: ビデオ・データが格納されるORDSource。
format: ビデオ・データの格納フォーマット。
mimeType: MIMEタイプについての情報。
comments: ビデオ・オブジェクトのメタデータ情報。
width: ビデオ・データの各フレームの幅。
height: ビデオ・データの各フレームの高さ。
frameResolution: ビデオ・データのフレームの解像度。
frameRate: ビデオ・データのフレーム・レート。
videoDuration: 格納されるビデオ・データの再生時間。
numberOfFrames: ビデオ・データのフレーム数。
compressionType: ビデオ・データの圧縮タイプ。
numberOfColors: ビデオ・データの色数。
bitRate: ビデオ・データのビット・レート。
|
注意: comments属性は、setCommentsパラメータがTRUEである場合、setProperties( )メソッドによって移入されます。この属性に対して直接書込みしないことをお薦めします。 |
この項では、次のOracle Multimediaコンストラクタ・ファンクションについて説明します。
構文
init( ) RETURN ORDVideo;
説明
ORDVideoオブジェクト型のインスタンスを初期化します。
パラメータ
なし
プラグマ
なし
例外
なし
使用上の注意
このコンストラクタは、すべてのORDVideo属性をNULLに初期化するスタティック・メソッドです。ただし、次の属性は例外です。
source.updateTimeは、SYSDATEに設定されます。
source.localは、1(ローカル)に設定されます。
source.localDataは、empty_blobに設定されます。
できるかぎり早い段階で、init( )メソッドを使用することをお薦めします。これによって、ORDVideoオブジェクト型(特に今後のリリースで、ORDVideo型が発展するか、または属性が追加された場合)の初期化がさらに簡単になります。この場合、(各オブジェクト属性を初期化する)デフォルト・コンストラクタを使用したために変更されずに残ったINSERT文は、エラーになります。
例
ORDVideoオブジェクト属性を初期化します。
BEGIN INSERT INTO pm.online_media (product_id, product_video) VALUES (2004, ORDSYS.ORDVideo.init()); COMMIT; END; /
構文
init(srcType IN VARCHAR2,
srcLocation IN VARCHAR2,
srcName IN VARCHAR2)
RETURN ORDVideo;
説明
ORDVideoオブジェクト型のインスタンスを初期化します。
パラメータ
ビデオ・データのソース・タイプを指定します。
ビデオ・データのソース位置を指定します。
ビデオ・データのソース名を指定します。
プラグマ
なし
例外
なし
使用上の注意
このコンストラクタは、すべてのORDVideo属性をNULLに初期化するスタティック・メソッドです。ただし、次の属性は例外です。
source.updateTimeは、SYSDATEに設定されます。
source.localは、0(ゼロ)に設定されます。
source.localDataは、empty_blobに設定されます。
source.srcTypeは、入力値に設定されます。
source.srcLocationは、入力値に設定されます。
source.srcNameは、入力値に設定されます。
できるかぎり早い段階で、init( )メソッドを使用することをお薦めします。これによって、ORDVideoオブジェクト型(特に今後のリリースで、ORDVideo型が発展するか、または属性が追加された場合)の初期化がさらに簡単になります。この場合、(各オブジェクト属性を初期化する)デフォルト・コンストラクタを使用したために変更されずに残ったINSERT文は、エラーになります。
例
ORDVideoオブジェクト属性を初期化します。
BEGIN
INSERT INTO pm.online_media (product_id, product_video)
VALUES (2030, ORDSYS.ORDVideo.init('FILE', 'FILE_DIR','speakers.rm'));
COMMIT;
END;
/
この項では、特にビデオ・データの操作に使用するOracle Multimediaのメソッドに関するリファレンス情報を示します。
ORDAudio、ORDDoc、ORDImageおよびORDVideoに共通のOracle Multimediaのメソッドに関するリファレンス情報については、第2章を参照してください。この章と第2章に示すメソッドを使用すると、属性の取得と設定およびメタデータの抽出を実行できます。
オブジェクト型およびメソッドの詳細は、『Oracle Database概要』を参照してください。
この項で説明するメソッドは、次のとおりです。
構文
checkProperties(ctx IN OUT RAW) RETURN BOOLEAN;
説明
ビデオ属性(フォーマット、幅、高さ、フレームの解像度、フレーム・レート、ビデオ再生時間、フレーム数、圧縮タイプ、色数およびビット・レート)を含む、格納されているビデオ・データのすべてのプロパティをチェックします。
パラメータ
フォーマット・プラグインのコンテキスト情報を指定します。
使用上の注意
ファイルには有効なMIMEタイプが複数含まれる場合があり、これらを詳細に定義することはできないため、checkProperties( )メソッドは、MIMEタイプをチェックしません。
プラグマ
なし
例外
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULLの場合に発生します。
ORDVideoExceptions.VIDEO_PLUGIN_EXCEPTION
この例外は、checkProperties( )メソッドをコールし、このメソッドをコールしているときに、ビデオ・プラグインに例外が発生した場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
既知のビデオ属性に対して、プロパティ情報をチェックします。
DECLARE
obj ORDSYS.ORDVideo;
ctx RAW(64) :=NULL;
BEGIN
SELECT p.product_video INTO obj FROM pm.online_media p
WHERE p.product_id = 2030;
IF(obj.checkProperties(ctx)) THEN
DBMS_OUTPUT.PUT_LINE('check Properties returned true');
ELSE
DBMS_OUTPUT.PUT_LINE('check Properties returned false');
END IF;
COMMIT;
EXCEPTION
WHEN ORDSYS.ORDVideoExceptions.VIDEO_PLUGIN_EXCEPTION THEN
DBMS_OUTPUT.PUT_LINE('ORDVideoExceptions.VIDEO_PLUGIN_EXCEPTION caught');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('EXCEPTION caught');
END;
/
構文
getAllAttributes(ctx IN OUT RAW,
attributes IN OUT NOCOPY CLOB);
説明
クライアント・アクセスを容易にするため、文字列をフォーマットして戻します。ネイティブにサポートされたフォーマットでは、文字列には、カンマ(,)で区切られたビデオ・データ属性(width、height、format、frameResolution、frameRate、videoDuration、numberOfFrames、compressionType、numberOfColorsおよびbitRate)のリストが含まれます。ユーザー定義のフォーマットの場合は、フォーマット・プラグインによって文字列が定義されます。
パラメータ
フォーマット・プラグインのコンテキスト情報を指定します。
属性を指定します。
使用上の注意
通常、これらのビデオ・データ属性は、フォーマットされたビデオ・データのヘッダーから取得可能です。
ビデオ・データ属性情報は、ビデオ・データ自体から抽出可能です。ORDVideoオブジェクトで認識されないフォーマットは、そのフォーマットをサポートしているORDPLUGINS.ORDX_<format>_VIDEOパッケージを実装することによって、サポートできます。詳細は、『Oracle Multimediaユーザーズ・ガイド』を参照してください。
プラグマ
なし
例外
ORDVideoExceptions.METHOD_NOT_SUPPORTED
この例外は、getAllAttributes( )メソッドをコールし、このメソッドをコールしているときに、ビデオ・プラグインに例外が発生した場合に発生します。
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULLの場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
データベースに格納されているビデオ・データのすべてのビデオ属性を戻します。
DECLARE
obj ORDSYS.ORDVideo;
tempLob CLOB;
ctx RAW(64) :=NULL;
BEGIN
SELECT p.product_video INTO obj FROM pm.online_media p
WHERE p.product_id = 2030;
DBMS_OUTPUT.PUT_LINE('getting comma separated list of all attributes');
DBMS_OUTPUT.PUT_LINE('---------------------------------------------');
DBMS_LOB.CREATETEMPORARY(tempLob, FALSE, DBMS_LOB.CALL);
obj.getAllAttributes(ctx,tempLob);
DBMS_OUTPUT.PUT_LINE(DBMS_LOB.substr(tempLob, DBMS_LOB.getLength(tempLob),1));
COMMIT;
EXCEPTION
WHEN ORDSYS.ORDVideoExceptions.METHOD_NOT_SUPPORTED THEN
DBMS_OUTPUT.PUT_LINE('VIDEO METHOD_NOT_SUPPORTED EXCEPTION caught');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('EXCEPTION CAUGHT');
END;
/
構文
getAttribute(ctx IN OUT RAW,
name IN VARCHAR2)
RETURN VARCHAR2;
説明
ユーザー定義フォーマットのみに対応したビデオ・データから、要求された属性値を戻します。
|
注意: このメソッドは、ユーザー定義のフォーマット・プラグインのみでサポートされます。 |
パラメータ
フォーマット・プラグインのコンテキスト情報を指定します。
属性の名前を指定します。
使用上の注意
なし
プラグマ
なし
例外
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULLの場合に発生します。
ORDVideoExceptions.VIDEO_PLUGIN_EXCEPTION
この例外は、getAttribute( )メソッドをコールし、このメソッドをコールしているときに、ビデオ・プラグインに例外が発生した場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
データベースに格納されているビデオ・データの、指定したビデオ属性情報を戻します。(この例では、ユーザー作成のプラグインではなく、サポートされたデータ・フォーマットを使用しているため、例外が発生します。)
DECLARE
obj ORDSYS.ORDVideo;
res VARCHAR2(4000);
ctx RAW(64) :=NULL;
BEGIN
SELECT p.product_video INTO obj FROM pm.online_media p
WHERE p.product_id = 2030;
DBMS_OUTPUT.PUT_LINE('getting video duration');
DBMS_OUTPUT.PUT_LINE('---------------------');
res := obj.getAttribute(ctx,'video_duration');
COMMIT;
EXCEPTION
WHEN ORDSYS.ORDVideoExceptions.VIDEO_PLUGIN_EXCEPTION THEN
DBMS_OUTPUT.PUT_LINE('VIDEO PLUGIN EXCEPTION caught');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('EXCEPTION caught');
END;
/
構文
getBitRate( ) RETURN INTEGER;
説明
ビデオ・オブジェクトのbitRate属性の値を戻します。
パラメータ
なし
使用上の注意
なし
プラグマ
PRAGMA RESTRICT_REFERENCES(getBitRate, WNDS, WNPS, RNDS, RNPS)
例外
なし
例
ビデオ・オブジェクトのbitRate属性のオブジェクト属性値を戻します。
DECLARE
obj ORDSYS.ORDVideo;
res INTEGER;
BEGIN
SELECT p.product_video INTO obj FROM pm.online_media p
WHERE p.product_id = 2030;
res := obj.getBitRate();
DBMS_OUTPUT.PUT_LINE('bit rate : ' || res );
COMMIT;
END;
/
構文
getCompressionType( ) RETURN VARCHAR2;
説明
ビデオ・オブジェクトのcompressionType属性の値を戻します。
パラメータ
なし
使用上の注意
なし
プラグマ
PRAGMA RESTRICT_REFERENCES(getCompressionType, WNDS, WNPS, RNDS, RNPS)
例外
なし
例
ビデオ・オブジェクトのcompressionType属性のオブジェクト属性値を戻します。
DECLARE
obj ORDSYS.ORDVideo;
res VARCHAR2(4000);
BEGIN
SELECT p.product_video INTO obj FROM pm.online_media p
WHERE p.product_id = 2030;
res := obj.getCompressionType();
DBMS_OUTPUT.PUT_LINE('compression type: ' ||res);
COMMIT;
END;
/
構文
getContentInLob(ctx IN OUT RAW,
dest_lob IN OUT NOCOPY BLOB,
mimeType OUT VARCHAR2,
format OUT VARCHAR2);
説明
データ・ソースのデータを、指定されたBLOBにコピーします。コピー先のBLOBは、(埋込みORDSourceオブジェクトの)source.localData属性内のBLOBとは異なる必要があります。
パラメータ
ソース・プラグインのコンテキスト情報を指定します。
データのコピー先のLOBを指定します。
データのMIMEタイプが戻されます(戻されない場合もあります)。
データのフォーマットが戻されます(戻されない場合もあります)。
使用上の注意
なし
プラグマ
なし
例外
ORDSourceExceptions.METHOD_NOT_SUPPORTED
この例外は、getContentInLob( )メソッドをコールし、使用するソース・プラグインがこのメソッドをサポートしていない場合に発生します。
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULLの場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
データ・ソースからデータを取得し、ローカル・ソースの指定したBLOBに格納します。
DECLARE
obj ORDSYS.ORDVideo;
tempBLob BLOB;
mimeType VARCHAR2(4000);
format VARCHAR2(31);
ctx RAW(64) :=NULL;
BEGIN
SELECT p.product_video INTO obj FROM pm.online_media p
WHERE p.product_id = 2030;
IF (obj.isLocal) THEN
DBMS_OUTPUT.PUT_LINE('local is true');
END IF;
DBMS_LOB.CREATETEMPORARY(tempBLob, true, 10);
obj.getContentInLob(ctx,tempBLob, mimeType,format);
DBMS_OUTPUT.PUT_LINE('Length is ' ||TO_CHAR(DBMS_LOB.getLength(tempBLob)));
COMMIT;
EXCEPTION
WHEN ORDSYS.ORDSourceExceptions.METHOD_NOT_SUPPORTED THEN
DBMS_OUTPUT.PUT_LINE('ORDSourceExceptions.METHOD_NOT_SUPPORTED caught');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('EXCEPTION caught');
END;
/
構文
getContentLength(ctx IN OUT RAW) RETURN INTEGER;
説明
ソースに格納されているビデオ・データのコンテンツ長を戻します。
パラメータ
ソース・プラグインのコンテキスト情報を指定します。
使用上の注意
なし
プラグマ
なし
例外
ORDSourceExceptions.INCOMPLETE_SOURCE_INFORMATION
この例外は、getContentLength( )メソッドをコールし、source.srcType属性の値がNULLの場合に発生します。
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULLの場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
「import( )」の例を参照してください。
構文
getDescription( ) RETURN VARCHAR2;
説明
ビデオ・データのdescription属性の値を戻します。
パラメータ
なし
使用上の注意
なし
プラグマ
PRAGMA RESTRICT_REFERENCES(getDescription, WNDS, WNPS, RNDS, RNPS)
例外
ORDVideoExceptions.DESCRIPTION_IS_NOT_SET
この例外は、getDescription( )メソッドをコールし、description属性の値が設定されていない場合に発生します。
この例外の詳細は、付録Hを参照してください。
例
「setDescription( )」の例を参照してください。
構文
getFormat( ) RETURN VARCHAR2;
説明
ビデオ・オブジェクトのformat属性の値を戻します。
パラメータ
なし
使用上の注意
なし
プラグマ
PRAGMA RESTRICT_REFERENCES(getFormat, WNDS, WNPS, RNDS, RNPS)
例外
ORDVideoExceptions.VIDEO_FORMAT_IS_NULL
この例外は、getFormat( )メソッドをコールし、format属性の値がNULLの場合に発生します。
この例外の詳細は、付録Hを参照してください。
例
格納されているビデオ・データのフォーマットを取得します。
DECLARE
obj ORDSYS.ORDVideo;
BEGIN
SELECT p.product_video INTO obj FROM pm.online_media p
WHERE p.product_id = 2030;
DBMS_OUTPUT.PUT_LINE('writing format');
DBMS_OUTPUT.PUT_LINE('--------------');
DBMS_OUTPUT.PUT_LINE(obj.getFormat());
COMMIT;
END;
/
構文
getFrameRate( ) RETURN INTEGER;
説明
ビデオ・オブジェクトのframeRate属性の値を戻します。
パラメータ
なし
使用上の注意
なし
プラグマ
PRAGMA RESTRICT_REFERENCES(getFrameRate, WNDS, WNPS, RNDS, RNPS)
例外
なし
例
データベースに格納されているビデオ・データのframeRate属性のオブジェクト属性値を戻します。
DECLARE
obj ORDSYS.ORDVideo;
res INTEGER;
BEGIN
SELECT p.product_video INTO obj FROM pm.online_media p
WHERE p.product_id = 2030;
res := obj.getFrameRate();
DBMS_OUTPUT.PUT_LINE('frame rate : ' ||res);
COMMIT;
END;
/
構文
getFrameResolution( ) RETURN INTEGER;
説明
ビデオ・オブジェクトのframeResolution属性の値を戻します。
パラメータ
なし
使用上の注意
なし
プラグマ
PRAGMA RESTRICT_REFERENCES(getFrameResolution, WNDS, WNPS, RNDS, RNPS)
例外
なし
例
ビデオ・データのフレームの解像度の値を戻します。
DECLARE
obj ORDSYS.ORDVideo;
res INTEGER;
BEGIN
SELECT p.product_video INTO obj FROM pm.online_media p
WHERE p.product_id = 2030;
res := obj.getFrameResolution();
DBMS_OUTPUT.PUT_LINE('resolution : ' ||res);
COMMIT;
END;
/
構文
getFrameSize(retWidth OUT INTEGER,
retHeight OUT INTEGER);
説明
ビデオ・オブジェクトのheightおよびwidth属性の値を戻します。
パラメータ
フレームの幅がピクセル単位で戻されます。
フレームの高さがピクセル単位で戻されます。
使用上の注意
なし
プラグマ
PRAGMA RESTRICT_REFERENCES(getFrameSize, WNDS, WNPS, RNDS, RNPS)
例外
なし
例
ビデオ・データのフレーム・サイズ(幅および高さ)を戻します。
DECLARE
obj ORDSYS.ORDVideo;
width INTEGER;
height INTEGER;
BEGIN
SELECT p.product_video INTO obj FROM pm.online_media p
WHERE p.product_id = 2030;
obj.getFrameSize(width, height);
DBMS_OUTPUT.PUT_LINE('width :' || width);
DBMS_OUTPUT.PUT_LINE('height :' || height);
COMMIT;
END;
/
構文
getNumberOfColors( ) RETURN INTEGER;
説明
ビデオ・オブジェクトのnumberOfColors属性の値を戻します。
パラメータ
なし
使用上の注意
なし
プラグマ
PRAGMA RESTRICT_REFERENCES(getNumberOfColors, WNDS, WNPS, RNDS, RNPS)
例外
なし
例
ビデオ・オブジェクトのnumberOfColors属性のオブジェクト属性値を戻します。
DECLARE
obj ORDSYS.ORDVideo;
res INTEGER;
BEGIN
SELECT p.product_video INTO obj FROM pm.online_media p
WHERE p.product_id = 2030;
res := obj.getNumberOfColors();
DBMS_OUTPUT.PUT_LINE('number of colors: ' ||res);
COMMIT;
END;
/
構文
getNumberOfFrames( ) RETURN INTEGER;
説明
ビデオ・オブジェクトのnumberOfFrames属性の値を戻します。
パラメータ
なし
使用上の注意
なし
プラグマ
PRAGMA RESTRICT_REFERENCES(getNumberOfFrames, WNDS, WNPS, RNDS, RNPS)
例外
なし
例
ビデオ・データのnumberOfFrames属性のオブジェクト属性値を戻します。
DECLARE
obj ORDSYS.ORDVideo;
res INTEGER;
BEGIN
SELECT p.product_video INTO obj FROM pm.online_media p
WHERE p.product_id = 2030;
res := obj.getNumberOfFrames();
DBMS_OUTPUT.PUT_LINE('number of frames : ' ||res);
COMMIT;
END;
/
構文
getVideoDuration( ) RETURN INTEGER;
説明
ビデオ・オブジェクトのvideoDuration属性の値を戻します。
パラメータ
なし
使用上の注意
なし
プラグマ
PRAGMA RESTRICT_REFERENCES(getVideoDuration, WNDS, WNPS, RNDS, RNPS)
例外
なし
例
ビデオ・データの合計再生時間を戻します。
DECLARE
obj ORDSYS.ORDVideo;
res INTEGER;
BEGIN
SELECT p.product_video INTO obj FROM pm.online_media p
WHERE p.product_id = 2030;
res := obj.getVideoDuration();
DBMS_OUTPUT.PUT_LINE('video duration : ' ||res);
COMMIT;
END;
/
構文
import(ctx IN OUT RAW);
説明
外部ビデオ・データ・ソースからOracle Database内のローカル・ソース(localData)にビデオ・データを転送します。
パラメータ
ソース・プラグインのコンテキスト情報を指定します。このパラメータは、常に割り当てて、NULLに初期化する必要があります。ユーザー定義のソース・プラグインを使用する場合は、openSource( )メソッドをコールします。詳細は、6.2項を参照してください。
使用上の注意
import( )メソッドをコールする前に、setSource( )メソッドを使用して、外部ビデオ・データ・ソースの(埋込みORDSourceオブジェクトの)source.srcType、source.srcLocationおよびsource.srcName属性を設定します。
外部ビデオ・データ・ソースからローカル・ソース(Oracle Database内)にデータをインポートした後も、ソース情報は変更されません(データのインポート元のソースを指したままです)。
このメソッドをコールすると、setUpdateTime( )およびsetLocal( )メソッドが暗黙的にコールされます。
このメソッドは、ORDSourceレベルでコールされます。このレベルでは、PL/SQL UTL_HTTPパッケージを使用して、HTTPデータ・ソースからメディア・データがインポートされます。環境変数を使用して、UTL_HTTPパッケージのプロキシの動作を指定できます。たとえば、LinuxおよびUNIXの場合、環境変数http_proxyをURLに設定すると、UTL_HTTPパッケージはそのURLをHTTPリクエスト用のプロキシ・サーバーとして使用します。環境変数no_proxyをドメイン名に設定すると、HTTPプロキシ・サーバーは指定したドメイン内のURLには使用されません。
UTL_HTTP PL/SQLパッケージの詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。
プラグマ
なし
例外
ORDSourceExceptions.INCOMPLETE_SOURCE_INFORMATION
この例外は、import( )メソッドをコールし、source.srcType属性の値がNULLの場合に発生します。
ORDSourceExceptions.METHOD_NOT_SUPPORTED
この例外は、import( )メソッドをコールし、使用するソース・プラグインがこのメソッドをサポートしていない場合に発生します。
ORDSourceExceptions.NULL_SOURCE
この例外は、import( )メソッドをコールし、source.localData属性の値がNULLの場合に発生します。
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULLの場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
ソースを設定し、その後にビデオ・データをインポートします。
DECLARE
obj ORDSYS.ORDVideo;
ctx RAW(64) :=NULL;
BEGIN
SELECT p.product_video INTO obj FROM pm.online_media p
WHERE p.product_id = 2030 FOR UPDATE;
DBMS_OUTPUT.PUT_LINE('setting and getting source');
DBMS_OUTPUT.PUT_LINE('--------------------------');
-- Set source to a file:
obj.setSource('file','FILE_DIR','speakers.rm');
-- Get source information:
DBMS_OUTPUT.PUT_LINE(obj.getSource());
-- Import data:
obj.import(ctx);
-- Check size:
DBMS_OUTPUT.PUT_LINE('Length is ' || TO_CHAR(obj.getContentLength(ctx)));
UPDATE pm.online_media p SET p.product_video = obj WHERE p.product_id = 2030;
COMMIT;
END;
/
構文
importFrom(ctx IN OUT RAW,
source_type IN VARCHAR2,
source_location IN VARCHAR2,
source_name IN VARCHAR2);
説明
指定された外部ビデオ・データ・ソースからOracle Database内のローカル・ソース(localData)にビデオ・データを転送します。
パラメータ
ソース・プラグインのコンテキスト情報を指定します。このパラメータは、常に割り当てて、NULLに初期化する必要があります。ユーザー定義のソース・プラグインを使用する場合は、openSource( )メソッドをコールします。詳細は、6.2項を参照してください。
ソース・ビデオ・データのタイプを指定します。
インポート元のソース・ビデオ・データの位置を指定します。
ソース・ビデオ・データの名前を指定します。
使用上の注意
このメソッドは、ソース情報を個別に指定せずにパラメータで指定すること以外は、import( )メソッドと同じです。
srcTypeがfileの場合、このメソッドを使用する前に、source_locationパラメータで指定したディレクトリが存在するか、または作成されていることを確認する必要があります。
外部ビデオ・データ・ソースからローカル・ソース(Oracle Database内)にデータをインポートすると、(データのインポート元のソースを指している)ソース情報は入力値に設定されます。
このメソッドをコールすると、setUpdateTime( )およびsetLocal( )メソッドが暗黙的にコールされます。
プラグマ
なし
例外
ORDSourceExceptions.METHOD_NOT_SUPPORTED
この例外は、importFrom( )メソッドをコールし、使用するソース・プラグインがこのメソッドをサポートしていない場合に発生します。
ORDSourceExceptions.NULL_SOURCE
この例外は、importFrom( )メソッドをコールし、source.localData属性の値がNULLの場合に発生します。
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULLの場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
指定した外部データ・ソースからローカル・ソースにビデオ・データをインポートします。
DECLARE
obj ORDSYS.ORDVideo;
ctx RAW(64) :=NULL;
BEGIN
SELECT p.product_video INTO obj FROM pm.online_media p
WHERE p.product_id = 2004 FOR UPDATE;
DBMS_OUTPUT.PUT_LINE('setting and getting source');
DBMS_OUTPUT.PUT_LINE('--------------------------');
-- Import data:
obj.importFrom(ctx,'file','FILE_DIR','speakers.rm');
-- Check size:
DBMS_OUTPUT.PUT_LINE('Length is ' ||TO_CHAR(obj.getContentLength(ctx)));
UPDATE pm.online_media p SET p.product_video = obj WHERE p.product_id = 2004;
COMMIT;
EXCEPTION
WHEN ORDSYS.ORDSourceExceptions.METHOD_NOT_SUPPORTED THEN
DBMS_OUTPUT.put_line('Source METHOD_NOT_SUPPORTED caught');
WHEN ORDSYS.ORDVideoExceptions.METHOD_NOT_SUPPORTED THEN
DBMS_OUTPUT.put_line('VIDEO METHOD_NOT_SUPPORTED EXCEPTION caught');
WHEN ORDSYS.ORDVideoExceptions.VIDEO_PLUGIN_EXCEPTION THEN
DBMS_OUTPUT.put_line('VIDEO PLUGIN EXCEPTION caught');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('EXCEPTION Caught');
END;
/
構文
processVideoCommand(ctx IN OUT RAW,
cmd IN VARCHAR2,
arguments IN VARCHAR2,
result OUT RAW)
RETURN RAW;
説明
コマンドおよびその引数を、処理のためにフォーマット・プラグインに送信します。
|
注意: このメソッドは、ユーザー定義のフォーマット・プラグインのみでサポートされます。 |
パラメータ
フォーマット・プラグインのコンテキスト情報を指定します。
フォーマット・プラグインによって認識されるコマンドを指定します。
コマンドの引数を指定します。
フォーマット・プラグインによって戻される、このメソッドのコール結果です。
使用上の注意
このメソッドを使用して、任意のビデオ・コマンドおよびその引数をフォーマット・プラグインに送信します。指定したコマンドは、このメソッドでは解釈されず、そのままフォーマット・プラグインに渡されて処理されます。
formatの値がNULLの場合、processVideoCommand( )メソッドは、デフォルトのフォーマット・プラグインを使用します。それ以外の場合は、ユーザー定義のフォーマット・プラグインを使用します。
ORDVideoオブジェクトで認識されないフォーマットは、そのフォーマットをサポートするORDPLUGINS.ORDX_<format>_VIDEOパッケージを実装することによって、サポートできます。詳細は、『Oracle Multimediaユーザーズ・ガイド』を参照してください。
プラグマ
なし
例外
ORDVideoExceptions.METHOD_NOT_SUPPORTED
この例外は、ビデオ・プラグインでメソッドがサポートされていないか、またはビデオ・プラグインが見つからない場合に発生します。
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULLの場合に発生します。
ORDVideoExceptions.VIDEO_PLUGIN_EXCEPTION
この例外は、processVideoCommand( )メソッドをコールし、ビデオ・プラグインに例外が発生した場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
なし
構文
setBitRate(knownBitRate IN INTEGER);
説明
ビデオ・オブジェクトのbitRate属性の値を設定します。
パラメータ
ビット・レートを指定します。
使用上の注意
このメソッドをコールすると、setUpdateTime( )メソッドが暗黙的にコールされます。
プラグマ
なし
例外
ORDVideoExceptions.NULL_INPUT_VALUE
この例外は、setBitRate( )メソッドをコールし、knownBitRateパラメータの値がNULLの場合に発生します。
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULLの場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
「setFrameSize( )」の例を参照してください。
構文
setCompressionType(knownCompressionType IN VARCHAR2);
説明
ビデオ・オブジェクトのcompressionType属性の値を設定します。
パラメータ
既知の圧縮タイプを指定します。
使用上の注意
このメソッドをコールすると、setUpdateTime( )メソッドが暗黙的にコールされます。
プラグマ
なし
例外
ORDVideoExceptions.NULL_INPUT_VALUE
この例外は、setCompressionType( )メソッドをコールし、knownCompressionTypeパラメータの値がNULLの場合に発生します。
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULLの場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
「setFrameSize( )」の例を参照してください。
構文
setDescription (user_description IN VARCHAR2);
説明
ビデオ・データのdescription属性の値を設定します。
パラメータ
ビデオ・データの説明を指定します。
使用上の注意
一部のクライアント・アプリケーションでは、各ビデオ・オブジェクトの説明が必要な場合があります。たとえば、Webベースのクライアントでは、ビデオの説明のリストを表示できます。ユーザーは、いずれかの説明を選択してビデオ・データにアクセスできます。
Oracle MultimediaのWebアクセス・コンポーネントおよびその他のクライアント・コンポーネントでは、このdescription属性を使用して、ユーザーにビデオ・データを提示します。
このメソッドをコールすると、setUpdateTime( )メソッドが暗黙的にコールされます。
プラグマ
なし
例外
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULLの場合に発生します。
この例外の詳細は、付録Hを参照してください。
例
ビデオ・データのdescription属性の値を設定します。
DECLARE
obj ORDSYS.ORDVideo;
BEGIN
SELECT p.product_video INTO obj FROM pm.online_media p
WHERE p.product_id = 2030 FOR UPDATE;
DBMS_OUTPUT.PUT_LINE('writing description');
DBMS_OUTPUT.PUT_LINE('-------------');
obj.setDescription('This is a video of a speaker');
DBMS_OUTPUT.PUT_LINE(obj.getDescription());
UPDATE pm.online_media p SET p.product_video = obj WHERE p.product_id = 2688;
COMMIT;
END;
/
構文
setFormat(knownFormat IN VARCHAR2);
説明
ビデオ・オブジェクトのformat属性の値を設定します。
パラメータ
ビデオ・オブジェクトに設定する、既知のビデオ・データ・フォーマットを指定します。
使用上の注意
このメソッドをコールすると、setUpdateTime( )メソッドが暗黙的にコールされます。
プラグマ
なし
例外
ORDVideoExceptions.NULL_INPUT_VALUE
この例外は、setFormat( )メソッドをコールし、knownFormatパラメータの値がNULLの場合に発生します。
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULLの場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
格納されているビデオ・データのフォーマットを設定します。
DECLARE
obj ORDSYS.ORDVideo;
BEGIN
SELECT p.product_video INTO obj FROM pm.online_media p
WHERE p.product_id = 2030 FOR UPDATE;
DBMS_OUTPUT.PUT_LINE('current format');
DBMS_OUTPUT.PUT_LINE('--------------');
DBMS_OUTPUT.PUT_LINE(obj.getFormat());
obj.setFormat('rm');
DBMS_OUTPUT.PUT_LINE('new format');
DBMS_OUTPUT.PUT_LINE('--------------');
DBMS_OUTPUT.PUT_LINE(obj.getFormat());
UPDATE pm.online_media p SET p.product_video = obj
WHERE p.product_id = 2030;
COMMIT;
EXCEPTION
WHEN ORDSYS.ORDVideoExceptions.NULL_INPUT_VALUE THEN
DBMS_OUTPUT.PUT_LINE('ORDVideoExceptions.NULL_INPUT_VALUE caught');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('EXCEPTION caught');
END;
/
構文
setFrameRate(knownFrameRate IN INTEGER);
説明
ビデオ・オブジェクトのframeRate属性の値を設定します。
パラメータ
フレーム・レートを指定します。
使用上の注意
このメソッドをコールすると、setUpdateTime( )メソッドが暗黙的にコールされます。
プラグマ
なし
例外
ORDVideoExceptions.NULL_INPUT_VALUE
この例外は、setFrameRate( )メソッドをコールし、knownFrameRateパラメータの値がNULLの場合に発生します。
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULLの場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
「setFrameSize( )」の例を参照してください。
構文
setFrameResolution(knownFrameResolution IN INTEGER);
説明
ビデオ・オブジェクトのframeResolution属性の値を設定します。
パラメータ
1インチ当たりのピクセル単位で、既知のフレームの解像度を指定します。
使用上の注意
このメソッドをコールすると、setUpdateTime( )メソッドが暗黙的にコールされます。
プラグマ
なし
例外
ORDVideoExceptions.NULL_INPUT_VALUE
この例外は、setFrameResolution( )メソッドをコールし、knownFrameResolutionパラメータの値がNULLの場合に発生します。
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULLの場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
「setFrameSize( )」の例を参照してください。
構文
setFrameSize(knownWidth IN INTEGER,
knownHeight IN INTEGER);
説明
ビデオ・オブジェクトのheightおよびwidth属性の値を設定します。
パラメータ
フレームの幅をピクセル単位で指定します。
フレームの高さをピクセル単位で指定します。
使用上の注意
このメソッドをコールすると、setUpdateTime( )メソッドが暗黙的にコールされます。
プラグマ
なし
例外
ORDVideoExceptions.NULL_INPUT_VALUE
この例外は、setFrameSize( )メソッドをコールし、knownWidthまたはknownHeightパラメータの値がNULLの場合に発生します。
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULLの場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
ビデオ・データのフレーム・サイズ(幅および高さ)を設定します。
DECLARE
obj ORDSYS.ORDVideo;
BEGIN
SELECT p.product_video INTO obj FROM pm.online_media p
WHERE p.product_id = 2030 FOR UPDATE;
obj.setFrameSize(1,2);
obj.setFrameResolution(4);
obj.setFrameRate(5);
obj.setVideoDuration(20);
obj.setNumberOfFrames(8);
obj.setCompressionType('Cinepak');
obj.setBitRate(1500);
obj.setNumberOfColors(256);
UPDATE pm.online_media p SET p.product_video = obj WHERE p.product_id = 2030;
COMMIT;
END;
/
構文
setKnownAttributes(knownFormat IN VARCHAR2,
knownWidth IN INTEGER,
knownHeight IN INTEGER,
knownFrameResolution IN INTEGER,
knownFrameRate IN INTEGER,
knownVideoDuration IN INTEGER,
knownNumberOfFrames IN INTEGER,
knownCompressionType IN VARCHAR2,
knownNumberOfColors IN INTEGER,
knownBitRate IN INTEGER);
説明
ビデオ・データに既知のビデオ属性を設定します。
パラメータ
既知のフォーマットを指定します。
既知の幅を指定します。
既知の高さを指定します。
既知のフレームの解像度を指定します。
既知のフレーム・レートを指定します。
既知のビデオ再生時間を指定します。
既知のフレーム数を指定します。
既知の圧縮タイプを指定します。
既知の色数を指定します。
既知のビット・レートを指定します。
使用上の注意
このメソッドをコールすると、setUpdateTime( )メソッドが暗黙的にコールされます。
プラグマ
なし
例外
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULLの場合に発生します。
この例外の詳細は、付録Hを参照してください。
例
ビデオ・データのすべての既知の属性に対して、プロパティ情報を設定します。
DECLARE
obj ORDSYS.ORDVideo;
width integer;
height integer;
BEGIN
SELECT p.product_video INTO obj FROM pm.online_media p
WHERE p.product_id = 2030 FOR UPDATE;
obj.setKnownAttributes('MOOV',1,2,4,5,20,8,'Cinepak', 256, 1500);
obj.getFrameSize(width, height);
DBMS_OUTPUT.PUT_LINE('width: ' || TO_CHAR(width));
DBMS_OUTPUT.PUT_LINE('height: ' || TO_CHAR(height));
DBMS_OUTPUT.PUT_LINE('format: ' || obj.getFormat());
DBMS_OUTPUT.PUT_LINE('frame resolution: ' || TO_CHAR(obj.getFrameResolution()));
DBMS_OUTPUT.PUT_LINE('frame rate: ' || TO_CHAR(obj.getFrameRate()));
DBMS_OUTPUT.PUT_LINE('video duration: ' || TO_CHAR(obj.getVideoDuration()));
DBMS_OUTPUT.PUT_LINE('number of frames: ' || TO_CHAR(obj.getNumberOfFrames()));
DBMS_OUTPUT.PUT_LINE('compression type: ' || obj.getCompressionType());
DBMS_OUTPUT.PUT_LINE('bite rate: ' || TO_CHAR(obj.getBitRate()));
DBMS_OUTPUT.PUT_LINE('number of colors: ' || TO_CHAR(obj.getNumberOfColors()));
UPDATE pm.online_media p SET p.product_video = obj
WHERE p.product_id = 2030;
COMMIT;
END;
/
構文
setNumberOfColors(knownNumberOfColors IN INTEGER);
説明
ビデオ・オブジェクトのnumberOfColors属性の値を設定します。
パラメータ
既知の色数を設定します。
使用上の注意
このメソッドをコールすると、setUpdateTime( )メソッドが暗黙的にコールされます。
プラグマ
なし
例外
ORDVideoExceptions.NULL_INPUT_VALUE
この例外は、setNumberOfColors( )メソッドをコールし、knownNumberOfColorsパラメータの値がNULLの場合に発生します。
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULLの場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
「setFrameSize( )」の例を参照してください。
構文
setNumberOfFrames(knownNumberOfFrames IN INTEGER);
説明
ビデオ・オブジェクトのnumberOfFrames属性の値を設定します。
パラメータ
既知のフレーム数を指定します。
使用上の注意
このメソッドをコールすると、setUpdateTime( )メソッドが暗黙的にコールされます。
プラグマ
なし
例外
ORDVideoExceptions.NULL_INPUT_VALUE
この例外は、setNumberOfFrames( )メソッドをコールし、knownNumberOfFramesパラメータの値がNULLの場合に発生します。
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULLの場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
「setFrameSize( )」の例を参照してください。
構文
setProperties(ctx IN OUT RAW,
setComments IN BOOLEAN);
説明
ビデオ・データを読み取ってオブジェクト属性の値を取得し、取得した値をオブジェクトに格納します。このメソッドは、値が使用可能なビデオ・データの属性のプロパティを設定します。属性には、フォーマット、高さ、幅、フレームの解像度、フレーム・レート、ビデオ再生時間、フレーム数、圧縮タイプ、色数およびビット・レートがあります。setCommentsパラメータの値がTRUEの場合、オブジェクトのコメント・フィールドに、XML形式で様々なフォーマット・プロパティおよびアプリケーション・プロパティを移入します。
パラメータ
フォーマット・プラグインのコンテキスト情報を指定します。
オブジェクトのコメント・フィールドが移入されるかどうかを示すブール値を指定します。値がTRUEの場合、オブジェクトのコメント・フィールドに、XML形式でビデオ・オブジェクトの様々なフォーマット・プロパティおよびアプリケーション・プロパティが移入されます。値がFALSEの場合、オブジェクトのコメント・フィールドは移入されません。デフォルト値はFALSEです。
使用上の注意
メディア・ソースからプロパティを抽出できない場合、それぞれの属性はNULLに設定されます。
formatの値がNULLの場合、setProperties( )メソッドは、デフォルトのフォーマット・プラグインを使用します。それ以外の場合は、ユーザー定義のフォーマット・プラグインを使用します。
プラグマ
なし
例外
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULLの場合に発生します。
ORDVideoExceptions.VIDEO_PLUGIN_EXCEPTION
この例外は、setProperties( )メソッドをコールし、このメソッドをコールしているときに、ビデオ・プラグインに例外が発生した場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
既知のビデオ属性のプロパティ情報を設定します。
DECLARE
obj ORDSYS.ORDVideo;
ctx RAW(64) :=NULL;
BEGIN
SELECT p.product_video INTO obj FROM pm.online_media p
WHERE p.product_id = 2030 FOR UPDATE;
obj.setProperties(ctx,FALSE);
UPDATE pm.online_media p SET p.product_video = obj
WHERE p.product_id = 2030;
COMMIT;
EXCEPTION
WHEN ORDSYS.ORDVideoExceptions.VIDEO_PLUGIN_EXCEPTION THEN
DBMS_OUTPUT.PUT_LINE('ORDVideoExceptions.VIDEO_PLUGIN_EXCEPTION caught');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('exception raised');
END;
/
構文
setVideoDuration(knownVideoDuration IN INTEGER);
説明
ビデオ・オブジェクトのvideoDuration属性の値を設定します。
パラメータ
既知のビデオ再生時間を指定します。
使用上の注意
このメソッドをコールすると、setUpdateTime( )メソッドが暗黙的にコールされます。
プラグマ
なし
例外
ORDVideoExceptions.NULL_INPUT_VALUE
この例外は、setVideoDuration( )メソッドをコールし、knownVideoDurationパラメータの値がNULLの場合に発生します。
ORDVideoExceptions.NULL_SOURCE
この例外は、ORDVideo.source属性の値がNULLの場合に発生します。
これらの例外の詳細は、付録Hを参照してください。
例
「setFrameSize( )」の例を参照してください。