C_RESULT video_codec_close( video_controller_t* controller ) { video_utils_close( controller ); if( controller->blockline_cache != NULL ) vp_os_aligned_free( controller->blockline_cache ); if( controller->in_stream.bytes != NULL ) video_packetizer_close( controller ); switch( controller->codec_type ) { case UVLC_CODEC: uvlc_codec_free( controller ); break; case P263_CODEC: p263_codec_free( controller ); break; default: break; } // Cleanup caches video_controller_cleanup( controller ); return C_OK; }
static C_RESULT video_codec_close_private( video_controller_t* controller, bool_t keep_stream ) { video_utils_close( controller ); if( controller->blockline_cache != NULL ) { vp_os_aligned_free( controller->blockline_cache ); controller->blockline_cache = NULL; } if (controller->cache_mbs != NULL) { vp_os_free( controller->cache_mbs ); controller->cache_mbs = NULL; } // TODO: choix dynamique de codec, le packetizer_close n'est pas appellé lors d'un changement de codec dynamique if( keep_stream == FALSE && controller->in_stream.bytes != NULL ) video_packetizer_close( controller ); switch( controller->codec_type ) { case UVLC_CODEC: uvlc_codec_free( controller ); break; case P263_CODEC: p263_codec_free( controller ); break; case P264_CODEC: p264_codec_free( controller ); break; default: break; } // Cleanup caches video_controller_cleanup( controller ); return C_OK; }
static C_RESULT video_codec_close_private( video_controller_t* controller, bool_t keep_stream ) { video_utils_close( controller ); if( controller->blockline_cache != NULL ) { vp_os_aligned_free( controller->blockline_cache ); controller->blockline_cache = NULL; } if (controller->cache_mbs != NULL) { vp_os_free( controller->cache_mbs ); controller->cache_mbs = NULL; } if( keep_stream == FALSE && controller->in_stream.bytes != NULL ) video_packetizer_close( controller ); switch( controller->codec_type ) { case UVLC_CODEC: uvlc_codec_free( controller ); break; case P263_CODEC: p263_codec_free( controller ); break; /*case P264_CODEC: p264_codec_free( controller ); break;*/ default: break; } // Cleanup caches video_controller_cleanup( controller ); return C_OK; }