69 static MHEG5Int audioComponentTag = -1;
70 static MHEG5Int videoComponentTag = -1;
71 #ifndef MHEG5PROFILE_UK1_06 72 static MHEG5Int rtgraphicsComponentTag = -1;
87 void MHEG5streamPrint(
MHEG5Stream *stream,
char *out)
91 MHEG5ingredientPrint(&stream->
ingredient, out);
95 MHEG_PRINT(out,
":Multiplex (");
98 while (*currMultiplex)
100 switch ((*currMultiplex)->root.clazz)
103 MHEG5audioPrint((
MHEG5Audio *) (*currMultiplex), out);
106 MHEG5videoPrint((
MHEG5Video *) (*currMultiplex), out);
108 #ifndef MHEG5PROFILE_UK1_06 116 MHEG_PRINT(out,
"{");
121 MHEG_PRINT(out,
"}");
127 MHEG_PRINT(out,
")");
133 MHEG_PRINT(out,
":Storage ");
134 MHEG_PRINT(out,
"memory");
140 MHEG_PRINT(out,
":Looping ");
141 MHEG5intPrint(stream->
looping, out);
262 stream->
speed[0] = 1;
263 stream->
speed[1] = 1;
297 #ifndef MHEG5PROFILE_UK1_06 373 if (validContentHook)
638 #ifndef MHEG5_STREAM_TRICK_MODES 642 if (((s1 > 0) && (s2 < 0)) || ((s1 < 0) && (s2 > 0)))
820 if ((target->
runningStatus) && (cp < stream->counterPosition))
1010 ERROR_PRINT((
"ERROR: Illegal included content for stream from memory\n"));
1047 assert( stream->
dsmRef != NULL );
1052 assert( stream->
dsmRef == NULL );
1071 ERROR_PRINT((
"ERROR: Illegal content length %d for storage stream\n", content->
size));
1104 *multiplexRef = currentService;
1112 *multiplexRef = currentService;
1143 for (i = 0; i < 2; i++)
1159 (((
MHEG5Stream *)item)->dvbLocator.original_network_id != 0))
1167 multiplexItem = ((
MHEG5Stream *)item)->multiplex[index];
1168 if (multiplexItem == NULL)
1181 currentService = ((
MHEG5Stream *)item)->dvbLocator;
1191 currentService = ((
MHEG5Stream *)item)->dvbLocator;
1194 #ifndef MHEG5PROFILE_UK1_06 1203 currentService = ((
MHEG5Stream *)item)->streamRef.multiplex;
1236 if (item != 0 && service != 0)
1258 #ifndef MHEG5PROFILE_UK1_06 1260 rtgraphicsComponentTag = service->componentTag;
1264 ERROR_PRINT((
"ERROR: MHEG5streamSetCurrentService: Invalid object class in stream object multiplex\n"));
1266 TRACE(TSTRM, (
"srv_id=0x%x AC=%d VC=%d", currentService.
service_id, audioComponentTag, videoComponentTag))
1276 TRACE(TSTRM, (
"srv_id=0x%x AC=%d VC=%d", currentService.
service_id, audioComponentTag, videoComponentTag))
1280 audioComponentTag = -1;
1281 videoComponentTag = -1;
1282 #ifndef MHEG5PROFILE_UK1_06 1283 rtgraphicsComponentTag = -1;
1304 componentTag = ((
MHEG5Audio *)item)->componentTag;
1305 currentComponentTag = audioComponentTag;
1309 componentTag = ((
MHEG5Video *)item)->componentTag;
1310 currentComponentTag = videoComponentTag;
1312 #ifndef MHEG5PROFILE_UK1_06 1316 currentComponentTag = rtgraphicsComponentTag;
1320 ERROR_PRINT((
"ERROR: MHEG5streamGetComponentTag: ingredient is not a multiplex component\n"));
1327 if (strncmp((
char *)ref->
data,
"rec://svc/cur", ref->
len) == 0)
1329 TRACE(TSTRM, (
"srv_id=0x%x AC=%d VC=%d", currentService.
service_id, audioComponentTag, videoComponentTag))
1330 if (componentTag == -1)
1332 result = currentComponentTag;
1341 result = componentTag;
1343 TRACE(TSTRM, (
"CT=%d", result))
MHEG5Bool availabilityStatus
void MHEG5StreamerResume(MHEG5Stream *stream)
Resume IP content streaming after it was paused by MHEG5StreamerPause.
void MHEG5ingredientInit(MHEG5Ingredient *ingredient)
Initialise a ingredient object with default values.
MHEG5ErrorCode MHEG5getCounterPosition(MHEG5Root *target, MHEG5GList *params)
Implementation of the GetCounterPosition (Target, CounterPositionVar) action of the stream class...
MHEG5Int counterMaxPosition
MHEG5ErrorCode MHEG5setSpeed(MHEG5Root *target, MHEG5GList *params)
The effect of this action is to change the speed in which the stream is displayed. Implementation of the SetSpeed (Target, NewSpeed) action of the stream class. SetSpeed (NewSpeed) Change the presentation speed of a stream. Execute the following sequence of actions:
MHEG5CounterTrigger * counterTriggers
Distributor for Prepare, Destruct, Activate, Deactivate and Clone calls. Distribute the +Prepare +Des...
void MHEG5StreamerSetCounterPosition(MHEG5Stream *stream)
Set the counter position of a stream in the streamer. This function uses the counter position as set ...
MHEG5Ingredient ingredient
MHEG5Int MHEG5streamGetComponentTag(MHEG5Ingredient *item)
Get component tag for ingredient. This depends on the stream's content and the component tag of the i...
Implementation of the RTGraphics class Description Defines the attributes and behaviour of non-persis...
void MHEG5StreamerPrepare(MHEG5Stream *stream)
Prepare for retrieval of a stream from the IP connection.
U16BIT original_network_id
void MHEG5streamRemove(MHEG5Stream *stream)
Remove an MHEG-5 Stream Object from repository.
void MHEG5StreamerSetCounterEndPosition(MHEG5Stream *stream)
Set the counter end position of a stream in the streamer. This function uses the counter end position...
U16BIT transport_stream_id
Implementation of the Video class Description Defines the attributes and behaviour of an elementary v...
void MHEG5displayUpdate(void)
Update the display, redrawing any visible objects that are in the dirty rectangle.
#define CHOOK_STREAM_NORMAL
void MHEG5notifyStreamStopped(MHEG5Stream *stream)
Notify that a stream has stopped.
MHEG5GList * MHEG5resolveGenericInteger(MHEG5GList *params, MHEG5Int *value)
Implement the MHEG5 Stream Class Stream Class Defines the behaviour of a composition of continuous me...
void MHEG5streamAdd(MHEG5Stream *stream)
Add an MHEG-5 Stream Object to repository.
MHEG5ErrorCode MHEG5setCounterPosition(MHEG5Root *target, MHEG5GList *params)
The effect of this action is to set the display counter to a new position. Implementation of the SetC...
void MHEG5ingredientDestruct(MHEG5Ingredient *ingredient)
Implementation of the Destruction behaviour Execute the following sequence of actions: ...
Stream event subscription management.
MHEG5Int counterEndPosition
void MHEG5GetDefaultService(S_DVB_LOCATOR *dvb_locator)
U16BIT transport_stream_id
MHEG5String MHEG5stringCopy(MHEG5String source)
<Function description>="">
void MHEG5ingredientContentPrepare(MHEG5Ingredient *ingredient)
Implementation of the ContentPrepare behaviour COR.1 6.6: ContentPreparation Apply the following sequ...
Implement the MHEG5 Variable Class 21 Variable Class Defines a variable within the context of a Group...
void DVB_MhegServiceRemovePmtListen(S_DvbLocator dvbLocator)
Advise DVB stack to remove prioritising of PMT for the service that was set up by DVB_MhegServiceAddP...
void MHEG5streamFree(MHEG5Stream *stream)
Free off all memory associated with the specified object, including any exchanged attributes and inte...
U16BIT original_network_id
S32BIT MHEG5StreamerGetCounterPosition(MHEG5Stream *stream)
Return the current counter position (in units of 188 bytes).
MHEG5ErrorCode MHEG5getCounterMaxPosition(MHEG5Root *target, MHEG5GList *params)
Implementation of the GetCounterMaxPosition (Target, CounterPositionVar) action of the stream class...
void MHEG5videoActivate(MHEG5Video *video)
Apply the activation behaviour of the video class.
void MHEG5notifyStreamRunning(MHEG5Stream *stream)
Notify that a stream is running.
DVB Service information functions are required by MHEG5 engine. All required functions should be non-...
This file defines the profile for the MHEG engine.
void MHEG5streamDestruct(MHEG5Stream *stream)
Destruct a stream object. Execute the following sequence of actions:
void DVB_MhegServiceAddPmtListen(S_DvbLocator dvbLocator)
Advise DVB stack that PMT may be required soon in DVB_MhegVideoPlayStream() or DVB_MhegAudioPlayStrea...
void MHEG5StreamerStop(MHEG5Stream *stream)
Stop streaming IP content.
Event handling. Implementation of a combined queue for events and actions. This is the eventsystem wh...
S32BIT MHEG5StreamerGetCounterMaxPosition(MHEG5Stream *stream)
Return the counter maximum position (content length in units of 188 bytes).
#define CHOOK_STREAM_MEMORY
void MHEG5streamInit(MHEG5Stream *stream)
Debug function.
void MHEG5displayStreamPlay(MHEG5Stream *stream)
Begin playback of all active components in the specifed stream object.
MHEG5Bool initiallyStopped
void MHEG5ingredientDeactivate(MHEG5Ingredient *ingredient)
Implementation of Deactivate behaviour Inherrited from Root class.
Implement functions to retrieve MHEG5objects by GroupID and ID.
MHEG5Ingredient * multiplex[MAX_MLTPLX]
Implementation of the MHEG5 Application Class Defines a set of Ingredient objects, which are shared within an application scope. Base class: Group Subclasses: None Status: Concrete class.
Implementation of the MHEG5 Scene Class Scene Class Defines a set of Ingredient objects to be activat...
MHEG5Ingredient * itemHead
Mheg5 logging and debug printing.
void MHEG5audioActivate(MHEG5Audio *audio)
Apply the activation behaviour off the audio class. Apply the activation behaviour of the base class...
void MHEG5streamActivate(MHEG5Stream *stream)
Apply the activation behaviour of the stream class. Execute the following sequence of actions: ...
MHEG5ErrorCode MHEG5setCounterEndPosition(MHEG5Root *target, MHEG5GList *params)
Implementation of the SetCounterEndPosition (Target, NewPosition) action of the stream class...
MHEG5Scene * MHEG5getCurrentScene(void)
<Function description>="">
union sMHEG5ContentBody::@2 ref
MHEG5Bool MHEG5streamGetCurrentService(S_DVB_LOCATOR *multiplexRef)
Return the current service (i.e. the service corresponding to the currently running Video...
void MHEG5StreamerRemove(MHEG5Stream *stream)
Remove streaming IP request.
void MHEG5streamFindCurrentService(void)
Find the current service (i.e. the service corresponding to the currently running Video...
void MHEG5streamDeactivate(MHEG5Stream *stream)
Apply the deactivation behaviour of the stream class. Execute the following sequence of actions: ...
MHEG5ContentBody originalContent
void MHEG5streamContentAdapt(MHEG5Stream *stream, S_CONTENT *content)
Adapt new content for Stream objects. Content is either a DSM-CC stream object, a DVB URL or an MPEG2...
MHEG5ErrorCode MHEG5setCounterTrigger(MHEG5Root *target, MHEG5GList *params)
The effect of this action is to update the list of CounterTriggers for a Stream object SetCounterTrig...
MHEG5GList * MHEG5resolveORef(MHEG5GList *params, MHEG5Root **object)
void MHEG5StreamerSetCounterTrigger(MHEG5Stream *stream, S32BIT triggerId, S32BIT newValue)
Add, remove or update a counter trigger for the stream. If the trigger does not exist, it will be added. If it already exists it will be updated if the new value is non-negative, otherwise it will be removed.
void MHEG5ingredientFree(MHEG5Ingredient *ingredient)
Free off all memory associated with the specified object, including any exchanged attributes and inte...
Implement the MHEG5 Audio Class Audio Class Defines the attributes and behaviour of an elementary aud...
void MHEG5streamContentClear(MHEG5Stream *stream)
Clear content for Stream objects.
Implement generic MHEG5-display functions - independent from the OSD These are generic functions used...
void MHEG5StreamerPause(MHEG5Stream *stream)
Pause IP content streaming.
struct scounterTrigger * next
void MHEG5streamSetCurrentService(MHEG5Ingredient *item, S_DvbComponent *service)
Set the current service.
void MHEG5displayStreamStop(MHEG5Stream *stream)
Stops playback of all active component of the specified stream object.
void MHEG5streamClearCurrentService(void)
Clear the current service.
void MHEG5streamPrepare(MHEG5Stream *stream)
Apply the preparation behaviour of the stream class.
void MHEG5sendSync(MHEG5Root *source, MHEG5EventType event, MHEG5Int data)
Store an event in the synchronous event queue.
MHEG5Application * MHEG5getCurrentApplication(void)
<Function description>="">