Thank you but I'm working with HL1. On Thu, Mar 18, 2010 at 1:43 PM, Tony "omega" Sergi <omegal...@gmail.com>wrote:
> You actually shouldn't need to even use avikit.. since the engine has > loading of avi's AND bink videos. > preferably you would want to use bink anyway as you wouldn't need to worry > about codecs. > > loading a bink video actually returns a material anyway, and there is an > actual 'bik' shader for drawing on objects. > i've never used the shader myself though, i just know it exists. > -Tony > > > On Fri, Mar 19, 2010 at 3:19 AM, Jonas 'Sortie' Termansen < > hlcod...@maxsi.dk > > wrote: > > > I have success implementing the free software ffmpeg library in Source. > > There is nothing like watching a 720p HD xvid on an ingame surface. :D > > It's not very well implemented though and I don't have any sound > > support. I'd gladly share the source code with you. ffmpeg is very fast > > and it provides all the codecs itself and supports most formats VLC do > > (because it is used by VLC). > > > > Rodrigo 'r2d2rigo' Diaz skrev: > > > AVIkit was used in a demo MOD from the creator of the library, but > AFAIK > > he > > > didn't release the source code. I tried to add it some time ago, but > > finally > > > dropped the idea. > > > > > > 2010/3/18 kevin bowen <fragmasterbo...@gmail.com> > > > > > > > > >> Just wondering if anyone has implemented AVIkit and is willing to part > > with > > >> the code :) or if AVIkit has been used in any open source mods > (rebirth > > and > > >> arrangemod have the lib's included but don't actually call the > > functions). > > >> I'd do it myself but it would literally take years (I'm a moron), it'd > > be > > >> easier just to ask for it here just incase any devs have a dead hl1 > mod > > >> with > > >> the code already laid out :) > > >> > > >> I've scoured the internet and all I could find was this on a russian > HL > > >> coding site which seems to use the code but I'm not sure if it's an > > entire > > >> replacement for avikit.cpp or if it fits in there somehow (again I'm a > > >> moron > > >> when it comes to this) > > >> > > >> > > >> > > >> /////////////////////////////////////////////////////////////// > > >> // Only setup the avi if it's actually a video screen > > >> > > >> if (isVideoScreen && replacement[0] != '\0') { > > >> char *error_msg = NULL; > > >> long xres = 0; > > >> long yres = 0; > > >> float duration = 0.0f; > > >> > > >> movie = new AVIKit( absolute_replacement, false ); > > >> if (movie->getError( &error_msg ) != AVIKIT_NOERROR) { > > >> gEngfuncs.Con_DPrintf( "SetupAvisFromEntities: Error opening > %s: > > >> %s\n", absolute_replacement, error_msg ); > > >> delete movie; > > >> break; > > >> } > > >> movie->getVideoInfo( &xres, &yres, &duration ); > > >> gEngfuncs.Con_DPrintf( "SetupAvisFromEntities: Opened %s: %ld x %ld > > (%f > > >> secs)\n", replacement, xres, yres, duration ); > > >> gEngfuncs.Con_DPrintf( "Video screen at (%d %d %d), with extents > (%d > > %d > > >> %d)\n", > > >> (int)origin[0], (int)origin[1], (int)origin[2], > > >> (int)extents[0], (int)extents[1], (int)extents[2] ); > > >> > > >> // Create the OpenGL texture > > >> GLuint texnum; > > >> glGenTextures( 1, &texnum ); > > >> > > >> if (!AddComplexAvi( movie, texnum, origin, angles, extents, > > &error_msg > > >> )) { > > >> gEngfuncs.Con_DPrintf( "SetupAvisFromEntities: Error adding > > movie: > > >> %s\n", error_msg ); > > >> delete movie; > > >> } > > >> } else if (isVideoScreen) { > > >> gEngfuncs.Con_DPrintf( "SetupAvisFromEntities: Video screen > > didn't > > >> have a movie specified!\n" ); > > >> } > > >> > > >> //Setting up the texture: > > >> > > >> movie->getVideoInfo( &data->width, &data->height, > &data->total_length > > ); > > >> glEnable( GL_TEXTURE_2D ); > > >> glBindTexture( GL_TEXTURE_2D, data->texture_index ); > > >> glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); > > >> glTexImage2D( GL_TEXTURE_2D, 0, 3, data->width, data->height, 0, > > GL_RGB, > > >> GL_UNSIGNED_BYTE, tmpbuffer ); > > >> > > >> //Updating the texture each frame: > > >> > > >> // Calculate the frame needed > > >> int frame = i->movie->getVideoFrameNumber( i->current_time ); > > >> > > >> // If the frame has changed, re-upload it > > >> if (frame != i->current_frame) { > > >> i->current_frame = frame; > > >> i->movie->getVideoFrame( (char*)i->buffer, frame ); > > >> > > >> // If the video isn't a power of two on all sides, we need to > > resize > > >> it... <img src="images/smilies/frown.gif" border="0" alt=""> > > >> if (i->resized_buffer) { > > >> gluScaleImage( GL_RGB, i->realwidth, i->realheight, > > >> GL_UNSIGNED_BYTE, i->buffer, i->width, i->height, GL_UNSIGNED_BYTE, > > >> i->resized_buffer ); > > >> // ... and update the OpenGL texture ... > > >> glEnable(GL_TEXTURE_2D); > > >> glBindTexture( GL_TEXTURE_2D, i->texture_index ); > > >> glTexSubImage2D( GL_TEXTURE_2D, 0, 0, 0, i->width, > i->height, > > >> GL_RGB, GL_UNSIGNED_BYTE, i->resized_buffer ); > > >> } else { > > >> // ... and update the OpenGL texture ... > > >> glEnable(GL_TEXTURE_2D); > > >> glBindTexture( GL_TEXTURE_2D, i->texture_index ); > > >> glTexSubImage2D( GL_TEXTURE_2D, 0, 0, 0, i->width, > > >> i->height, GL_RGB, GL_UNSIGNED_BYTE, i->buffer ); > > >> } > > >> } > > >> > > >> // If this is a complex movie, draw the polygons > > >> if (i->texture_type == AVI_TEXTURE_USER) { > > >> > > >> glEnable( GL_TEXTURE_2D ); > > >> glBindTexture( GL_TEXTURE_2D, i->texture_index ); > > >> glDisable( GL_BLEND ); > > >> glBegin( GL_QUADS ); > > >> > > >> // Top left > > >> glColor3f( 1.0f, 1.0f, 1.0f ); > > >> glTexCoord2f( 0.0f, 1.0f ); > > >> glVertex3f( i->vertexes[0].x, i->vertexes[0].y, > > i->vertexes[0].z > > >> ); > > >> > > >> // Bottom left > > >> glColor3f( 1.0f, 1.0f, 1.0f ); > > >> glTexCoord2f( 0.0f, 0.0f ); > > >> glVertex3f( i->vertexes[1].x, i->vertexes[1].y, > > i->vertexes[1].z > > >> ); > > >> > > >> // Bottom right > > >> glColor3f( 1.0f, 1.0f, 1.0f ); > > >> glTexCoord2f( 1.0f, 0.0f ); > > >> glVertex3f( i->vertexes[2].x, i->vertexes[2].y, > > i->vertexes[2].z > > >> ); > > >> > > >> // Top right > > >> glColor3f( 1.0f, 1.0f, 1.0f ); > > >> glTexCoord2f( 1.0f, 1.0f ); > > >> glVertex3f( i->vertexes[3].x, i->vertexes[3].y, > > i->vertexes[3].z > > >> ); > > >> > > >> glEnd(); > > >> } > > >> /////////////////////////////////////////////////////////////// > > >> > > >> > > >> Regardless of this, the AVIkit mod also included fmod.dll, which I'm > > >> guessing is used for sound and I'm not sure how it pulls this from the > > AVI. > > >> > > >> Kevin > > >> _______________________________________________ > > >> To unsubscribe, edit your list preferences, or view the list archives, > > >> please visit: > > >> http://list.valvesoftware.com/mailman/listinfo/hlcoders > > >> > > >> > > >> > > > _______________________________________________ > > > To unsubscribe, edit your list preferences, or view the list archives, > > please visit: > > > http://list.valvesoftware.com/mailman/listinfo/hlcoders > > > > > > > > > _______________________________________________ > > To unsubscribe, edit your list preferences, or view the list archives, > > please visit: > > http://list.valvesoftware.com/mailman/listinfo/hlcoders > > > > > > > -- > -Tony > _______________________________________________ > To unsubscribe, edit your list preferences, or view the list archives, > please visit: > http://list.valvesoftware.com/mailman/listinfo/hlcoders > > _______________________________________________ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders