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( )」の例を参照してください。